From d66f85ac02d024d8dc8759226dc3ff442c3e12f0 Mon Sep 17 00:00:00 2001 From: Mark McClain Date: Fri, 10 Aug 2012 14:24:17 -0400 Subject: [PATCH] fixes typo in ensure_namespace bug 1035425 There was an uncheck branch in ensure_namespace that used the wrong class name. This fixes that bug and adds better tests. Change-Id: I0c22e70938305e180084de4bf9a700aebf512645 --- quantum/agent/linux/ip_lib.py | 2 +- quantum/tests/unit/test_linux_ip_lib.py | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/quantum/agent/linux/ip_lib.py b/quantum/agent/linux/ip_lib.py index 26ee281ec9..2eb254f48d 100644 --- a/quantum/agent/linux/ip_lib.py +++ b/quantum/agent/linux/ip_lib.py @@ -90,7 +90,7 @@ class IPWrapper(SubProcessBase): lo = ip.device('lo') lo.link.set_up() else: - ip = IP(self.root_helper, name) + ip = IPWrapper(self.root_helper, name) return ip def add_device_to_namespace(self, device): diff --git a/quantum/tests/unit/test_linux_ip_lib.py b/quantum/tests/unit/test_linux_ip_lib.py index 6b4fe086d0..ba6cb00e33 100644 --- a/quantum/tests/unit/test_linux_ip_lib.py +++ b/quantum/tests/unit/test_linux_ip_lib.py @@ -15,9 +15,8 @@ # License for the specific language governing permissions and limitations # under the License. -import unittest - import mock +import unittest2 as unittest from quantum.agent.linux import ip_lib from quantum.agent.linux import utils @@ -174,11 +173,21 @@ class TestIpWrapper(unittest.TestCase): def test_ensure_namespace(self): with mock.patch.object(ip_lib, 'IPDevice') as ip_dev: + ip = ip_lib.IPWrapper('sudo') + with mock.patch.object(ip.netns, 'exists') as ns_exists: + ns_exists.return_value = False + ns = ip.ensure_namespace('ns') + self.execute.assert_has_calls( + [mock.call([], 'netns', ('add', 'ns'), 'sudo', None)]) + ip_dev.assert_has_calls([mock.call('lo', 'sudo', 'ns'), + mock.call().link.set_up()]) + + def test_ensure_namespace_existing(self): + with mock.patch.object(ip_lib, 'IpNetnsCommand') as ip_ns_cmd: + ip_ns_cmd.exists.return_value = True ns = ip_lib.IPWrapper('sudo').ensure_namespace('ns') - self.execute.assert_has_calls([mock.call('o', 'netns', ('list',), - 'sudo', None)]) - ip_dev.assert_has_calls([mock.call('lo', 'sudo', 'ns'), - mock.call().link.set_up()]) + self.assertFalse(self.execute.called) + self.assertEqual(ns.namespace, 'ns') def test_add_device_to_namespace(self): dev = mock.Mock()