summaryrefslogtreecommitdiff
path: root/ick2/workapi_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'ick2/workapi_tests.py')
-rw-r--r--ick2/workapi_tests.py35
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'})