summaryrefslogtreecommitdiff
path: root/designate/tests/unit/workers/test_base_task.py
diff options
context:
space:
mode:
Diffstat (limited to 'designate/tests/unit/workers/test_base_task.py')
-rw-r--r--designate/tests/unit/workers/test_base_task.py88
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'))
+ )