~lutostag/ubuntu/trusty/maas/1.5.2+packagefix

« back to all changes in this revision

Viewing changes to src/maasserver/tests/test_dhcp.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez
  • Date: 2014-03-28 10:43:53 UTC
  • mto: This revision was merged to the branch mainline in revision 57.
  • Revision ID: package-import@ubuntu.com-20140328104353-ekpolg0pm5xnvq2s
Tags: upstream-1.5+bzr2204
ImportĀ upstreamĀ versionĀ 1.5+bzr2204

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
from maasserver.testing.testcase import MAASServerTestCase
34
34
from maasserver.utils import map_enum
35
35
from maastesting.celery import CeleryFixture
 
36
from mock import ANY
36
37
from netaddr import (
37
38
    IPAddress,
38
39
    IPNetwork,
59
60
            list(nodegroup.nodegroupinterface_set.all()),
60
61
            managed_interfaces)
61
62
 
62
 
    def test_get_interfaces_managed_by_obeys_DHCP_CONNECT(self):
63
 
        self.patch(settings, "DHCP_CONNECT", False)
64
 
        nodegroup = factory.make_node_group(status=NODEGROUP_STATUS.ACCEPTED)
65
 
        self.assertEqual([], get_interfaces_managed_by(nodegroup))
66
 
 
67
 
    def test_get_interfaces_managed_by_returns_empty_if_not_accepted(self):
68
 
        self.patch(settings, "DHCP_CONNECT", True)
 
63
    def test_get_interfaces_managed_by_returns_None_if_not_accepted(self):
69
64
        unaccepted_statuses = set(map_enum(NODEGROUP_STATUS).values())
70
65
        unaccepted_statuses.remove(NODEGROUP_STATUS.ACCEPTED)
71
66
        managed_interfaces = {
74
69
            for status in unaccepted_statuses
75
70
            }
76
71
        self.assertEqual(
77
 
            {status: [] for status in unaccepted_statuses},
 
72
            {status: None for status in unaccepted_statuses},
78
73
            managed_interfaces)
79
74
 
 
75
    def test_configure_dhcp_obeys_DHCP_CONNECT(self):
 
76
        self.patch(settings, "DHCP_CONNECT", False)
 
77
        self.patch(dhcp, 'write_dhcp_config')
 
78
        factory.make_node_group(status=NODEGROUP_STATUS.ACCEPTED)
 
79
        self.assertEqual(0, dhcp.write_dhcp_config.apply_async.call_count)
 
80
 
80
81
    def test_configure_dhcp_writes_dhcp_config(self):
81
82
        mocked_task = self.patch(dhcp, 'write_dhcp_config')
82
83
        self.patch(
204
205
        args, kwargs = task.subtask.call_args
205
206
        self.assertEqual(nodegroup.work_queue, kwargs['options']['queue'])
206
207
 
 
208
    def test_write_dhcp_config_called_when_no_managed_interfaces(self):
 
209
        nodegroup = factory.make_node_group(
 
210
            status=NODEGROUP_STATUS.ACCEPTED,
 
211
            management=NODEGROUPINTERFACE_MANAGEMENT.DHCP)
 
212
        [interface] = nodegroup.nodegroupinterface_set.all()
 
213
        self.patch(settings, "DHCP_CONNECT", True)
 
214
        self.patch(tasks, 'sudo_write_file')
 
215
        self.patch(dhcp, 'write_dhcp_config')
 
216
        interface.management = NODEGROUPINTERFACE_MANAGEMENT.UNMANAGED
 
217
        interface.save()
 
218
        dhcp.write_dhcp_config.apply_async.assert_called_once_with(
 
219
            queue=nodegroup.work_queue, kwargs=ANY)
 
220
 
207
221
    def test_dhcp_config_gets_written_when_interface_IP_changes(self):
208
222
        nodegroup = factory.make_node_group(status=NODEGROUP_STATUS.ACCEPTED)
209
223
        [interface] = nodegroup.nodegroupinterface_set.all()