From 69057f657f60e2d4c2f8181ba4f53be24c12c01e Mon Sep 17 00:00:00 2001 From: Őry Máté <ory.mate@cloud.bme.hu> Date: Sat, 15 Mar 2014 20:16:33 +0100 Subject: [PATCH] vm: add tests --- circle/vm/models/node.py | 5 +++-- circle/vm/tests/test_models.py | 46 +++++++++++++++++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/circle/vm/models/node.py b/circle/vm/models/node.py index 78e3389..bf3d500 100644 --- a/circle/vm/models/node.py +++ b/circle/vm/models/node.py @@ -82,12 +82,13 @@ class Node(TimeStampedModel): True: {False: ('MISSING', _('missing')), True: ('ONLINE', _('online'))}} - @property - def state(self): + def get_state(self): """The state combined of online and enabled attributes. """ return self.STATES[self.enabled][self.online][0] + state = property(get_state) + def get_status_display(self): return self.STATES[self.enabled][self.online][1] diff --git a/circle/vm/tests/test_models.py b/circle/vm/tests/test_models.py index 25f9d1c..c0e94d8 100644 --- a/circle/vm/tests/test_models.py +++ b/circle/vm/tests/test_models.py @@ -1,15 +1,12 @@ +from datetime import datetime from django.test import TestCase -from mock import Mock +from django.utils.translation import ugettext_lazy as _ +from mock import Mock, MagicMock, patch -from ..models.common import ( - Lease -) -from ..models.instance import ( - find_unused_port, InstanceTemplate, Instance -) -from ..models.network import ( - Interface +from ..models import ( + Lease, Node, Interface, Instance, InstanceTemplate, ) +from ..models.instance import find_unused_port class PortFinderTestCase(TestCase): @@ -39,6 +36,26 @@ class InstanceTestCase(TestCase): inst = Mock(state='RUNNING') assert Instance.is_running.getter(inst) + def deploy_destroyed(self): + inst = Mock(destroyed_at=datetime.now()) + with self.assertRaises(Instance.InstanceDestroyedError): + Instance.deploy(inst) + + def destroy_destroyed(self): + inst = Mock(destroyed_at=datetime.now()) + Instance.destroy(inst) + self.assertFalse(inst.save.called) + + def destroy_sets_destroyed(self): + inst = MagicMock(destroyed_at=None, spec=Instance) + inst.node = MagicMock(spec=Node) + inst.disks.all.return_value = [] + with patch('vm.models.instance.instance_activity') as ia: + ia.return_value = MagicMock() + Instance.destroy(inst) + self.assertTrue(inst.destroyed_at) + inst.save.assert_called() + class InterfaceTestCase(TestCase): @@ -78,3 +95,14 @@ class LeaseTestCase(TestCase): l.suspend_interval = None assert "never" in unicode(l) + + +class NodeTestCase(TestCase): + + def test_state(self): + node = Mock(spec=Node) + node.online = True + node.enabled = True + node.STATES = Node.STATES + self.assertEqual(Node.get_state(node), "ONLINE") + assert isinstance(Node.get_status_display(node), _("").__class__) -- libgit2 0.26.0