Merge pull request #2337 from coreos-inc/new-trigger-ux

Implement new create and manager trigger UI
This commit is contained in:
josephschorr 2017-03-02 18:15:32 -05:00 committed by GitHub
commit aa2f88d321
79 changed files with 4038 additions and 1555 deletions

Binary file not shown.

View file

@ -1301,17 +1301,17 @@ class TestBuildTriggerSources831cPublicPublicrepo(ApiTestCase):
ApiTestCase.setUp(self)
self._set_url(BuildTriggerSources, trigger_uuid="831C", repository="public/publicrepo")
def test_get_anonymous(self):
self._run_test('GET', 401, None, None)
def test_post_anonymous(self):
self._run_test('POST', 401, None, None)
def test_get_freshuser(self):
self._run_test('GET', 403, 'freshuser', None)
def test_post_freshuser(self):
self._run_test('POST', 403, 'freshuser', None)
def test_get_reader(self):
self._run_test('GET', 403, 'reader', None)
def test_post_reader(self):
self._run_test('POST', 403, 'reader', None)
def test_get_devtable(self):
self._run_test('GET', 403, 'devtable', None)
def test_post_devtable(self):
self._run_test('POST', 403, 'devtable', dict(namespace="foo"))
class TestBuildTriggerSources831cDevtableShared(ApiTestCase):
@ -1319,17 +1319,17 @@ class TestBuildTriggerSources831cDevtableShared(ApiTestCase):
ApiTestCase.setUp(self)
self._set_url(BuildTriggerSources, trigger_uuid="831C", repository="devtable/shared")
def test_get_anonymous(self):
self._run_test('GET', 401, None, None)
def test_post_anonymous(self):
self._run_test('POST', 401, None, None)
def test_get_freshuser(self):
self._run_test('GET', 403, 'freshuser', None)
def test_post_freshuser(self):
self._run_test('POST', 403, 'freshuser', None)
def test_get_reader(self):
self._run_test('GET', 403, 'reader', None)
def test_post_reader(self):
self._run_test('POST', 403, 'reader', None)
def test_get_devtable(self):
self._run_test('GET', 404, 'devtable', None)
def test_post_devtable(self):
self._run_test('POST', 404, 'devtable', dict(namespace="foo"))
class TestBuildTriggerSources831cBuynlargeOrgrepo(ApiTestCase):
@ -1337,17 +1337,17 @@ class TestBuildTriggerSources831cBuynlargeOrgrepo(ApiTestCase):
ApiTestCase.setUp(self)
self._set_url(BuildTriggerSources, trigger_uuid="831C", repository="buynlarge/orgrepo")
def test_get_anonymous(self):
self._run_test('GET', 401, None, None)
def test_post_anonymous(self):
self._run_test('POST', 401, None, None)
def test_get_freshuser(self):
self._run_test('GET', 403, 'freshuser', None)
def test_post_freshuser(self):
self._run_test('POST', 403, 'freshuser', None)
def test_get_reader(self):
self._run_test('GET', 403, 'reader', None)
def test_post_reader(self):
self._run_test('POST', 403, 'reader', None)
def test_get_devtable(self):
self._run_test('GET', 404, 'devtable', None)
def test_post_devtable(self):
self._run_test('POST', 404, 'devtable', dict(namespace="foo"))
class TestBuildTriggerSubdirs4i2yPublicPublicrepo(ApiTestCase):

View file

@ -40,7 +40,8 @@ from endpoints.api.robot import (UserRobotList, OrgRobot, OrgRobotList, UserRobo
RegenerateUserRobot, RegenerateOrgRobot)
from endpoints.api.trigger import (BuildTriggerActivate, BuildTriggerSources, BuildTriggerSubdirs,
TriggerBuildList, ActivateBuildTrigger, BuildTrigger,
BuildTriggerList, BuildTriggerAnalyze, BuildTriggerFieldValues)
BuildTriggerList, BuildTriggerAnalyze, BuildTriggerFieldValues,
BuildTriggerSourceNamespaces)
from endpoints.api.repoemail import RepositoryAuthorizedEmail
from endpoints.api.repositorynotification import (RepositoryNotification,
RepositoryNotificationList,
@ -3758,8 +3759,23 @@ class FakeBuildTrigger(BuildTriggerHandler):
def service_name(cls):
return 'fakeservice'
def list_build_sources(self):
return [{'first': 'source'}, {'second': self.auth_token}]
def list_build_source_namespaces(self):
return [
{'name': 'first', 'id': 'first'},
{'name': 'second', 'id': 'second'},
]
def list_build_sources_for_namespace(self, namespace):
if namespace == "first":
return [{
'name': 'source',
}]
elif namespace == "second":
return [{
'name': self.auth_token,
}]
else:
return []
def list_build_subdirs(self):
return [self.auth_token, 'foo', 'bar', self.config['somevalue']]
@ -3882,8 +3898,9 @@ class TestBuildTriggers(ApiTestCase):
trigger_uuid=trigger.uuid),
data={'config': trigger_config})
self.assertEquals('error', analyze_json['status'])
self.assertEquals('Could not read the Dockerfile for the trigger', analyze_json['message'])
self.assertEquals('warning', analyze_json['status'])
self.assertEquals('Specified Dockerfile path for the trigger was not ' +
'found on the main branch. This trigger may fail.', analyze_json['message'])
# Analyze the trigger's dockerfile: Second, missing FROM in dockerfile.
trigger_config = {'dockerfile': 'MAINTAINER me'}
@ -3943,10 +3960,9 @@ class TestBuildTriggers(ApiTestCase):
trigger_uuid=trigger.uuid),
data={'config': trigger_config})
self.assertEquals('analyzed', analyze_json['status'])
self.assertEquals('requiresrobot', analyze_json['status'])
self.assertEquals('devtable', analyze_json['namespace'])
self.assertEquals('complex', analyze_json['name'])
self.assertEquals(False, analyze_json['is_public'])
self.assertEquals(ADMIN_ACCESS_USER + '+dtrobot', analyze_json['robots'][0]['name'])
@ -3968,11 +3984,18 @@ class TestBuildTriggers(ApiTestCase):
self.assertEquals(trigger.service.name, json['triggers'][0]['service'])
self.assertEquals(False, json['triggers'][0]['is_active'])
# List the trigger's sources.
source_json = self.getJsonResponse(BuildTriggerSources,
# List the trigger's source namespaces.
namespace_json = self.getJsonResponse(BuildTriggerSourceNamespaces,
params=dict(repository=ADMIN_ACCESS_USER + '/simple',
trigger_uuid=trigger.uuid))
self.assertEquals([{'id': 'first', 'name': 'first'}, {'id': 'second', 'name': 'second'}], namespace_json['namespaces'])
source_json = self.postJsonResponse(BuildTriggerSources,
params=dict(repository=ADMIN_ACCESS_USER + '/simple',
trigger_uuid=trigger.uuid))
self.assertEquals([{'first': 'source'}, {'second': 'sometoken'}], source_json['sources'])
trigger_uuid=trigger.uuid),
data=dict(namespace='first'))
self.assertEquals([{'name': 'source'}], source_json['sources'])
# List the trigger's subdirs.
subdir_json = self.postJsonResponse(BuildTriggerSubdirs,
@ -3980,7 +4003,7 @@ class TestBuildTriggers(ApiTestCase):
trigger_uuid=trigger.uuid),
data={'somevalue': 'meh'})
self.assertEquals({'status': 'success', 'subdir': ['sometoken', 'foo', 'bar', 'meh']},
self.assertEquals({'status': 'success', 'subdir': ['/sometoken', '/foo', '/bar', '/meh']},
subdir_json)
# Activate the trigger.