diff options
Diffstat (limited to 'ick2/workapi_tests.py')
-rw-r--r-- | ick2/workapi_tests.py | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/ick2/workapi_tests.py b/ick2/workapi_tests.py index 1c08a61..05e91a0 100644 --- a/ick2/workapi_tests.py +++ b/ick2/workapi_tests.py @@ -27,8 +27,8 @@ class WorkAPITests(unittest.TestCase): def setUp(self): self.tempdir = tempfile.mkdtemp() self.statedir = os.path.join(self.tempdir, 'state/dir') - self.state = ick2.ControllerState() - self.state.set_state_directory(self.statedir) + self.state = ick2.FilePersistentState() + self.state.set_directory(self.statedir) def tearDown(self): shutil.rmtree(self.tempdir) @@ -58,7 +58,7 @@ class WorkAPITests(unittest.TestCase): def create_worker_api(self): worker = { - 'this': 'that', + 'doing': {}, } claims = { 'aud': 'asterix', @@ -70,16 +70,16 @@ class WorkAPITests(unittest.TestCase): def create_work_api(self): return ick2.WorkAPI(self.state) - def test_worker_gets_no_work_when_no_pipeline_is_triggered(self): + def test_worker_gets_no_work_when_no_builds_have_been_triggered(self): self.create_project_api() self.create_worker_api() work = self.create_work_api() claims = {'aud': 'asterix'} self.assertEqual(work.get_work(claims=claims), {}) - def test_worker_gets_work_when_a_pipeline_is_triggered(self): + def test_worker_gets_work_when_a_build_has_been_triggered(self): projects = self.create_project_api() - projects.set_status('foo', 'triggered') + projects.trigger_project('foo') self.create_worker_api() work = self.create_work_api() expected = { @@ -105,10 +105,16 @@ class WorkAPITests(unittest.TestCase): def test_worker_manager_posts_work_updates(self): projects = self.create_project_api() - projects.set_status('foo', 'triggered') self.create_worker_api() work = self.create_work_api() + # No builds have been triggered, nothing to do. + claims = {'aud': 'asterix'} + self.assertEqual(work.get_work(claims=claims), {}) + + # Trigger a build. + projects.trigger_project('foo') + # Ask for some work. expected = { 'build_id': 'foo/1', @@ -149,8 +155,9 @@ class WorkAPITests(unittest.TestCase): work.update_work(done) # We should get the next step now. + got = work.get_work(claims=claims) expected['step'] = {'shell': 'step-1', 'where': 'host'} - self.assertEqual(work.get_work(claims=claims), expected) + self.assertEqual(got, expected) # Finish the step. done['exit_code'] = 0 @@ -167,14 +174,9 @@ class WorkAPITests(unittest.TestCase): # We now get nothing further to do. self.assertEqual(work.get_work(claims=claims), {}) - # An pipeline status has changed. - self.assertEqual( - projects.get_status('foo'), - {'status': 'idle'}) - def test_worker_manager_posts_failure(self): projects = self.create_project_api() - projects.set_status('foo', 'triggered') + projects.trigger_project('foo') self.create_worker_api() work = self.create_work_api() @@ -211,8 +213,3 @@ class WorkAPITests(unittest.TestCase): # Ask for work again. claims = {'aud': 'asterix'} self.assertEqual(work.get_work(claims=claims), {}) - - # And project status has changed. - self.assertEqual( - projects.get_status('foo'), - {'status': 'idle'}) |