Mock ipv6_utils.is_enabled_and_bind_by_default method

We test DHCP agent DeviceManager without mocking method
ipv6_utils.is_enabled_and_bind_by_default(). Because of that
it fails all the time on hosts without IPv6 support.
This patch adds mock to prevent those failures.

Change-Id: Icb4854892839a20619e92852c8b1a317d71231da
Closes-Bug: #1747437
This commit is contained in:
Maciej Józefczyk
2018-02-05 15:14:43 +01:00
committed by Maciej Jozefczyk
parent c7e144e9b4
commit 9bef065bd0

View File

@@ -1463,7 +1463,13 @@ class TestDeviceManager(base.BaseTestCase):
"IPWrapper")
self.mock_ip_wrapper = self.mock_ip_wrapper_p.start()
def _test_setup_helper(self, device_is_ready, net=None, port=None):
self.mock_ipv6_enabled_p = mock.patch('neutron.common.ipv6_utils.'
'is_enabled_and_bind_by_default')
self.mock_ipv6_enabled = self.mock_ipv6_enabled_p.start()
self.mock_ipv6_enabled.return_value = True
def _test_setup_helper(self, device_is_ready, ipv6_enabled=True,
net=None, port=None):
net = net or fake_network
port = port or fake_port1
plugin = mock.Mock()
@@ -1491,24 +1497,26 @@ class TestDeviceManager(base.BaseTestCase):
'169.254.169.254/16']
else:
expected_ips = ['172.9.9.9/24', '169.254.169.254/16']
expected = [
mock.call.get_device_name(port),
mock.call.configure_ipv6_ra(net.namespace, 'default', 0),
mock.call.init_l3(
'tap12345678-12',
expected_ips,
namespace=net.namespace)]
expected = [mock.call.get_device_name(port)]
if ipv6_enabled:
expected.append(
mock.call.configure_ipv6_ra(net.namespace, 'default', 0))
if not device_is_ready:
expected.insert(2,
mock.call.plug(net.id,
expected.append(mock.call.plug(net.id,
port.id,
'tap12345678-12',
'aa:bb:cc:dd:ee:ff',
namespace=net.namespace,
mtu=None))
self.mock_driver.assert_has_calls(expected)
expected.append(mock.call.init_l3(
'tap12345678-12',
expected_ips,
namespace=net.namespace))
self.mock_driver.assert_has_calls(expected)
dh._set_default_route.assert_called_once_with(net, 'tap12345678-12')
def test_setup(self):
@@ -1517,6 +1525,12 @@ class TestDeviceManager(base.BaseTestCase):
cfg.CONF.set_override('enable_metadata_network', True)
self._test_setup_helper(False)
def test_setup_without_ipv6_enabled(self):
# NOTE(mjozefcz): This test checks if IPv6 RA is *not*
# configured when host doesn't support IPv6.
self.mock_ipv6_enabled.return_value = False
self._test_setup_helper(False, ipv6_enabled=False)
def test_setup_calls_fill_dhcp_udp_checksums(self):
self._test_setup_helper(False)
rule = ('-p udp -m udp --dport %d -j CHECKSUM --checksum-fill'