summaryrefslogtreecommitdiff
path: root/taskflow/tests/unit/test_storage.py
diff options
context:
space:
mode:
authorJoshua Harlow <harlowja@yahoo-inc.com>2015-06-17 11:28:57 -0700
committerJoshua Harlow <harlowja@yahoo-inc.com>2015-07-10 18:12:48 -0700
commita3fe3eb698e7bfa20b0b7fddd91c37a44c092f2c (patch)
treeac21cb738503b555f75e756397539c043524d799 /taskflow/tests/unit/test_storage.py
parent5fb62f3864e4a35d6b5e9401e9aa2b94b28d7c58 (diff)
downloadtaskflow-a3fe3eb698e7bfa20b0b7fddd91c37a44c092f2c.tar.gz
Retain atom 'revert' result (or failure)
When a atom is reverted it can be useful to retain the result of that 'revert' method being called, so that it can be later analyzed (or used for various purposes) so adjust the storage, and actions to enable it to be stored. Change-Id: I38a9a5f3bf7550e924468bb4a86652cb8beb306c
Diffstat (limited to 'taskflow/tests/unit/test_storage.py')
-rw-r--r--taskflow/tests/unit/test_storage.py36
1 files changed, 28 insertions, 8 deletions
diff --git a/taskflow/tests/unit/test_storage.py b/taskflow/tests/unit/test_storage.py
index 958d5a5..0e1c47f 100644
--- a/taskflow/tests/unit/test_storage.py
+++ b/taskflow/tests/unit/test_storage.py
@@ -118,13 +118,6 @@ class StorageTestMixin(object):
self.assertEqual(s.fetch_all(), {})
self.assertEqual(s.get_atom_state('my task'), states.SUCCESS)
- def test_save_and_get_other_state(self):
- s = self._get_storage()
- s.ensure_atom(test_utils.NoopTask('my task'))
- s.save('my task', 5, states.FAILURE)
- self.assertEqual(s.get('my task'), 5)
- self.assertEqual(s.get_atom_state('my task'), states.FAILURE)
-
def test_save_and_get_cached_failure(self):
a_failure = failure.Failure.from_exception(RuntimeError('Woot!'))
s = self._get_storage()
@@ -141,7 +134,7 @@ class StorageTestMixin(object):
s.ensure_atom(test_utils.NoopTask('my task'))
s.save('my task', a_failure, states.FAILURE)
self.assertEqual(s.get('my task'), a_failure)
- s._failures['my task'] = None
+ s._failures['my task'] = {}
self.assertTrue(a_failure.matches(s.get('my task')))
def test_get_failure_from_reverted_task(self):
@@ -564,6 +557,33 @@ class StorageTestMixin(object):
args = s.fetch_mapped_args(t.rebind, atom_name=t.name)
self.assertEqual(3, args['x'])
+ def test_save_fetch(self):
+ t = test_utils.GiveBackRevert('my task')
+ s = self._get_storage()
+ s.ensure_atom(t)
+ s.save('my task', 2)
+ self.assertEqual(2, s.get('my task'))
+ self.assertRaises(exceptions.NotFound,
+ s.get_revert_result, 'my task')
+
+ def test_save_fetch_revert(self):
+ t = test_utils.GiveBackRevert('my task')
+ s = self._get_storage()
+ s.ensure_atom(t)
+ s.set_atom_intention('my task', states.REVERT)
+ s.save('my task', 2, state=states.REVERTED)
+ self.assertRaises(exceptions.NotFound, s.get, 'my task')
+ self.assertEqual(2, s.get_revert_result('my task'))
+
+ def test_save_fail_fetch_revert(self):
+ t = test_utils.GiveBackRevert('my task')
+ s = self._get_storage()
+ s.ensure_atom(t)
+ s.set_atom_intention('my task', states.REVERT)
+ a_failure = failure.Failure.from_exception(RuntimeError('Woot!'))
+ s.save('my task', a_failure, state=states.REVERT_FAILURE)
+ self.assertEqual(a_failure, s.get_revert_result('my task'))
+
class StorageMemoryTest(StorageTestMixin, test.TestCase):
def setUp(self):