diff options
Diffstat (limited to 'designate/tests/unit/workers/test_base_task.py')
-rw-r--r-- | designate/tests/unit/workers/test_base_task.py | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/designate/tests/unit/workers/test_base_task.py b/designate/tests/unit/workers/test_base_task.py index 9b37b52e..f419f4f4 100644 --- a/designate/tests/unit/workers/test_base_task.py +++ b/designate/tests/unit/workers/test_base_task.py @@ -14,17 +14,105 @@ # License for the specific language governing permissions and limitations # under the License.mport threading import oslotest.base +from unittest import mock +from designate import exceptions +from designate import objects from designate.worker.tasks import base class TestTask(oslotest.base.BaseTestCase): def setUp(self): super(TestTask, self).setUp() + self.context = mock.Mock() self.task = base.Task(None) + self.storage = self.task._storage = mock.Mock() def test_constructor(self): self.assertTrue(self.task) def test_call(self): self.assertRaises(NotImplementedError, self.task) + + def test_current_action_is_valid(self): + self.storage.get_zone = mock.Mock( + return_value=objects.Zone(action='UPDATE') + ) + self.assertTrue( + self.task.is_current_action_valid( + self.context, 'UPDATE', objects.Zone(action='UPDATE')) + ) + + self.storage.get_zone = mock.Mock( + return_value=objects.Zone(action='CREATE') + ) + self.assertTrue( + self.task.is_current_action_valid( + self.context, 'CREATE', objects.Zone(action='CREATE')) + ) + + self.storage.get_zone = mock.Mock( + return_value=objects.Zone(action='UPDATE') + ) + self.assertTrue( + self.task.is_current_action_valid( + self.context, 'CREATE', objects.Zone(action='CREATE')) + ) + + self.storage.get_zone = mock.Mock( + return_value=objects.Zone(action='DELETE') + ) + self.assertTrue( + self.task.is_current_action_valid( + self.context, 'DELETE', objects.Zone(action='DELETE')) + ) + + def test_current_action_delete_always_valid(self): + self.assertTrue( + self.task.is_current_action_valid( + self.context, 'DELETE', None) + ) + + def test_current_action_bad_storage_always_valid(self): + self.storage.get_zone = mock.Mock( + side_effect=exceptions.DesignateException() + ) + self.assertTrue( + self.task.is_current_action_valid( + self.context, 'CREATE', objects.Zone(action='CREATE')) + ) + + def test_current_action_is_not_valid_none(self): + self.storage.get_zone = mock.Mock( + return_value=objects.Zone(action='NONE') + ) + self.assertFalse( + self.task.is_current_action_valid( + self.context, 'UPDATE', objects.Zone(action='UPDATE')) + ) + + def test_current_action_is_not_valid_deleted(self): + self.storage.get_zone = mock.Mock( + return_value=objects.Zone(action='DELETE') + ) + self.assertFalse( + self.task.is_current_action_valid( + self.context, 'UPDATE', objects.Zone(action='UPDATE')) + ) + + def test_current_action_is_not_found(self): + self.storage.get_zone = mock.Mock( + side_effect=exceptions.ZoneNotFound() + ) + self.assertTrue( + self.task.is_current_action_valid( + self.context, 'CREATE', objects.Zone(action='CREATE')) + ) + + self.storage.get_zone = mock.Mock( + side_effect=exceptions.ZoneNotFound() + ) + self.assertFalse( + self.task.is_current_action_valid( + self.context, 'UPDATE', objects.Zone(action='UPDATE')) + ) |