diff --git a/neutron_lib/tests/unit/utils/test_net.py b/neutron_lib/tests/unit/utils/test_net.py index 0d88e57e9..0a8c36721 100644 --- a/neutron_lib/tests/unit/utils/test_net.py +++ b/neutron_lib/tests/unit/utils/test_net.py @@ -77,6 +77,14 @@ class TestRandomMacGenerator(base.BaseTestCase): self.assertEqual(['aa:bb:00:a2:a2:a2'], list(generator)) mock_rnd.assert_called_with(8) + @mock.patch.object(random, 'getrandbits', return_value=0xa2) + def test_short_supplied_mac(self, mock_rnd): + mac_base = '12:34:56:78' + mac = mac_base.split(':') + generator = itertools.islice(net.random_mac_generator(mac), 1) + self.assertEqual(['12:34:56:78:a2:a2'], list(generator)) + mock_rnd.assert_called_with(8) + class TestPortDeviceOwner(base.BaseTestCase): diff --git a/neutron_lib/utils/net.py b/neutron_lib/utils/net.py index 9c5f36357..33870e24d 100644 --- a/neutron_lib/utils/net.py +++ b/neutron_lib/utils/net.py @@ -56,7 +56,7 @@ def random_mac_generator(base_mac): fixed = list(base_mac[0:3]) to_generate = 3 if base_mac[3] != '00': - fixed += base_mac[3] + fixed = list(base_mac[0:4]) to_generate = 2 beginning = ':'.join(fixed) + ':'