From f11a8ecd409f280759af7227db52b1e87e389092 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 19 Apr 2018 22:31:01 +0300 Subject: Change: trigger a project, build all pipelines in the project --- ick2/projectapi_tests.py | 107 +++++++++++++---------------------------------- 1 file changed, 30 insertions(+), 77 deletions(-) (limited to 'ick2/projectapi_tests.py') diff --git a/ick2/projectapi_tests.py b/ick2/projectapi_tests.py index 96242ef..2ef1dbe 100644 --- a/ick2/projectapi_tests.py +++ b/ick2/projectapi_tests.py @@ -19,6 +19,9 @@ import tempfile import unittest +import yaml + + import ick2 @@ -44,15 +47,6 @@ class ProjectAPITests(unittest.TestCase): self.assertEqual(api.list(), {'projects': []}) def test_creates_project(self): - pipeline = { - 'pipeline': 'build', - 'actions': [ - {'shell': 'step-1'}, - ], - } - pipeapi = self.create_pipeline_api() - pipeapi.create(pipeline) - project = { 'project': 'foo', 'pipelines': ['build'], @@ -61,32 +55,19 @@ class ProjectAPITests(unittest.TestCase): }, } api = self.create_api() - new = api.create(project) project['next_build_id'] = None self.assertEqual(new, project) self.assertEqual(api.list(), {'projects': [new]}) - self.assertEqual(api.get_pipeline('foo', 'build'), {'status': 'idle'}) - self.assertEqual(api.get_pipeline('foo', 'build'), {'status': 'idle'}) + dirname = os.path.join(self.statedir, 'projects') + filename = os.listdir(dirname)[0] + obj = yaml.safe_load(open(os.path.join(dirname, filename))) + self.assertEqual(api.get_status('foo'), {'status': 'idle'}) - def test_raises_error_when_getting_missing_pipeline(self): - project = { - 'project': 'foo', - 'pipelines': [ - { - 'pipeline': 'build', - 'actions': [ - { - 'shell': 'step-1', - }, - ], - }, - ], - } + def test_raises_error_when_getting_missing_project_status(self): api = self.create_api() - api.create(project) with self.assertRaises(ick2.NotFound): - api.get_pipeline('foo', 'does-not-exist') + api.get_status('does-not-exist') def test_loads_projects_from_state_directory(self): project = { @@ -141,61 +122,33 @@ class ProjectAPITests(unittest.TestCase): with self.assertRaises(ick2.NotFound): api.delete('foo') - def test_updates_pipeline_status(self): - pipeline = { - 'pipeline': 'build', - 'actions': [ - {'shell': 'step-1'}, - ], - } - pipeapi = self.create_pipeline_api() - pipeapi.create(pipeline) - + def test_updates_project_status(self): project = { 'project': 'foo', - 'pipelines': ['build'], } api = self.create_api() api.create(project) - self.assertEqual(api.get_pipeline('foo', 'build'), {'status': 'idle'}) - self.assertEqual(pipeapi.show('build'), pipeline) - - with self.assertRaises(ick2.WrongPipelineStatus): - api.set_pipeline('building', 'foo', 'build') - - api.set_pipeline('triggered', 'foo', 'build') - self.assertEqual(pipeapi.show('build'), pipeline) - self.assertEqual( - api.get_pipeline('foo', 'build'), - {'status': 'triggered'} - ) - - with self.assertRaises(ick2.WrongPipelineStatus): - api.set_pipeline('idle', 'foo', 'build') - - api.set_pipeline('building', 'foo', 'build') - self.assertEqual(pipeapi.show('build'), pipeline) - self.assertEqual( - api.get_pipeline('foo', 'build'), - {'status': 'building'} - ) - - with self.assertRaises(ick2.WrongPipelineStatus): - api.set_pipeline('triggered', 'foo', 'build') - - api.set_pipeline('idle', 'foo', 'build') - self.assertEqual(pipeapi.show('build'), pipeline) - self.assertEqual( - api.get_pipeline('foo', 'build'), - {'status': 'idle'} - ) + self.assertEqual(api.get_status('foo'), {'status': 'idle'}) + + with self.assertRaises(ick2.WrongProjectStatus): + api.set_status('foo', 'build') + + api.set_status('foo', 'triggered') + self.assertEqual(api.get_status('foo'), {'status': 'triggered'}) + + with self.assertRaises(ick2.WrongProjectStatus): + api.set_status('foo', 'idle') + + api.set_status('foo', 'building') + self.assertEqual(api.get_status('foo'), {'status': 'building'}) + + with self.assertRaises(ick2.WrongProjectStatus): + api.set_status('foo', 'triggered') + + api.set_status('foo', 'idle') + self.assertEqual(api.get_status('foo'), {'status': 'idle'}) def test_raises_error_updating_status_of_missing_pipeline(self): - project = { - 'project': 'foo', - 'pipelines': [], - } api = self.create_api() - api.create(project) with self.assertRaises(ick2.NotFound): - api.set_pipeline('idle', 'foo', 'build') + api.set_status('does-not-exist', 'triggered') -- cgit v1.2.1