Commit 1d96f59c by Chif Gergő

dashboard: Unit test for set master interface

Created a Unit test. It calls set master interface operation on an interface. Assert checks the is_master attribute is True.
parent c2cad011
Pipeline #676 passed with stage
in 0 seconds
...@@ -29,6 +29,7 @@ from common.tests.celery_mock import MockCeleryMixin ...@@ -29,6 +29,7 @@ from common.tests.celery_mock import MockCeleryMixin
from dashboard.views import VmAddInterfaceView from dashboard.views import VmAddInterfaceView
from vm.models import Instance, InstanceTemplate, Lease, Node, Trait from vm.models import Instance, InstanceTemplate, Lease, Node, Trait
from vm.operations import (WakeUpOperation, AddInterfaceOperation, from vm.operations import (WakeUpOperation, AddInterfaceOperation,
SetMasterInterfaceOperation,
AddPortOperation, RemoveInterfaceOperation, AddPortOperation, RemoveInterfaceOperation,
DeployOperation, RenameOperation) DeployOperation, RenameOperation)
from ..models import Profile from ..models import Profile
...@@ -182,6 +183,24 @@ class VmDetailTest(LoginMixin, MockCeleryMixin, TestCase): ...@@ -182,6 +183,24 @@ class VmDetailTest(LoginMixin, MockCeleryMixin, TestCase):
assert mock_method.called assert mock_method.called
self.assertEqual(inst.interface_set.count(), iface_count - 1) self.assertEqual(inst.interface_set.count(), iface_count - 1)
def test_permitted_set_master_interface(self):
c = Client()
self.login(c, "user1")
inst = Instance.objects.get(pk=1)
inst.set_level(self.u1, 'owner')
inst.add_interface(vlan=Vlan.objects.get(pk=1), user=self.us)
inst.status = 'STOPPED'
inst.save()
with patch.object(SetMasterInterfaceOperation, 'async') as mock_method:
mock_method.side_effect = inst.set_master_interface
response = c.post("/dashboard/vm/1/op/set_master_interface/",
{'interface': 1})
self.assertEqual(response.status_code, 302)
assert mock_method.called
self.assertTrue(inst.interface_set.get(pk=1).is_master)
self.assertEqual(inst.interface_set.filter(is_master=True).count(), 1)
def test_unpermitted_network_delete(self): def test_unpermitted_network_delete(self):
c = Client() c = Client()
self.login(c, "user1") self.login(c, "user1")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment