diff options
| -rw-r--r-- | tests/unittests/test_distros/test_netconfig.py | 40 | 
1 files changed, 32 insertions, 8 deletions
| diff --git a/tests/unittests/test_distros/test_netconfig.py b/tests/unittests/test_distros/test_netconfig.py index 083ae34a..9954841b 100644 --- a/tests/unittests/test_distros/test_netconfig.py +++ b/tests/unittests/test_distros/test_netconfig.py @@ -37,7 +37,7 @@ class WriteBuffer(object):      def write(self, text):          self.buffer.write(text) -     +      def __str__(self):          return self.buffer.getvalue() @@ -63,6 +63,7 @@ class TestNetCfgDistro(MockerTestCase):          self.mocker.result(False)          write_bufs = {} +          def replace_write(filename, content, mode=0644, omode="wb"):              buf = WriteBuffer()              buf.mode = mode @@ -81,6 +82,18 @@ class TestNetCfgDistro(MockerTestCase):          self.assertEquals(str(write_buf).strip(), BASE_NET_CFG.strip())          self.assertEquals(write_buf.mode, 0644) +    def assertCfgEquals(self, blob1, blob2): +        cfg_tester = distros.rhel.QuotingConfigObj +        b1 = dict(cfg_tester(blob1.strip().splitlines())) +        b2 = dict(cfg_tester(blob2.strip().splitlines())) +        self.assertEquals(b1, b2) +        for (k, v) in b1.items(): +            self.assertIn(k, b2) +        for (k, v) in b2.items(): +            self.assertIn(k, b1) +        for (k, v) in b1.items(): +            self.assertEquals(v, b2[k]) +      def test_simple_write_rh(self):          rh_distro = self._get_distro('rhel')          write_mock = self.mocker.replace(util.write_file, @@ -91,6 +104,7 @@ class TestNetCfgDistro(MockerTestCase):                                            spec=False, passthrough=False)          write_bufs = {} +          def replace_write(filename, content, mode=0644, omode="wb"):              buf = WriteBuffer()              buf.mode = mode @@ -109,25 +123,27 @@ class TestNetCfgDistro(MockerTestCase):          for _i in range(0, 3):              write_mock(mocker.ARGS)              self.mocker.call(replace_write) +         +        write_mock(mocker.ARGS) +        self.mocker.call(replace_write)          self.mocker.replay()          rh_distro.apply_network(BASE_NET_CFG, False) -        self.assertEquals(len(write_bufs), 3) + +        self.assertEquals(len(write_bufs), 4)          self.assertIn('/etc/sysconfig/network-scripts/ifcfg-lo', write_bufs)          write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-lo']          expected_buf = ''' -# Created by cloud-init  DEVICE="lo"  ONBOOT=yes  ''' -        self.assertEquals(str(write_buf).strip(), expected_buf.strip()) +        self.assertCfgEquals(expected_buf, str(write_buf))          self.assertEquals(write_buf.mode, 0644)          self.assertIn('/etc/sysconfig/network-scripts/ifcfg-eth0', write_bufs)          write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-eth0']          expected_buf = ''' -# Created by cloud-init  DEVICE="eth0"  BOOTPROTO="static"  NETMASK="255.255.255.0" @@ -136,16 +152,24 @@ ONBOOT=yes  GATEWAY="192.168.1.254"  BROADCAST="192.168.1.0"  ''' -        self.assertEquals(str(write_buf).strip(), expected_buf.strip()) +        self.assertCfgEquals(expected_buf, str(write_buf))          self.assertEquals(write_buf.mode, 0644)          self.assertIn('/etc/sysconfig/network-scripts/ifcfg-eth1', write_bufs)          write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-eth1']          expected_buf = ''' -# Created by cloud-init  DEVICE="eth1"  BOOTPROTO="dhcp"  ONBOOT=yes  ''' -        self.assertEquals(str(write_buf).strip(), expected_buf.strip()) +        self.assertCfgEquals(expected_buf, str(write_buf)) +        self.assertEquals(write_buf.mode, 0644) + +        self.assertIn('/etc/sysconfig/network', write_bufs) +        write_buf = write_bufs['/etc/sysconfig/network'] +        expected_buf = ''' +# Created by cloud-init v. 0.7 +NETWORKING=yes +''' +        self.assertCfgEquals(expected_buf, str(write_buf))          self.assertEquals(write_buf.mode, 0644) | 
