fixed bug, wasn't detecting smaller subnet conflict properly added test for it

This commit is contained in:
John Tran
2011-08-04 18:01:07 -07:00
parent c796035656
commit d40d3ec3bf

View File

@@ -313,7 +313,19 @@ class CommonNetworkTestCase(test.TestCase):
self.assertTrue(exp_cidr + '/24' in cidrs)
self.assertFalse('192.168.2.0/24' in cidrs)
def test__validate_cidrs_split_cidr_smaller_subnet_in_use(self):
def test__validate_cidrs_smaller_subnet_in_use(self):
manager = self.FakeNetworkManager()
self.mox.StubOutWithMock(manager.db, 'network_get_all')
ctxt = mox.IgnoreArg()
manager.db.network_get_all(ctxt).AndReturn([{'id': 1,
'cidr': '192.168.2.9/25'}])
self.mox.ReplayAll()
# ValueError: requested cidr (192.168.2.0/24) conflicts with
# existing smaller cidr
args = [None, '192.168.2.0/24', 1, 256]
self.assertRaises(ValueError, manager._validate_cidrs, *args)
def test__validate_cidrs_split_smaller_cidr_in_use(self):
manager = self.FakeNetworkManager()
self.mox.StubOutWithMock(manager.db, 'network_get_all')
ctxt = mox.IgnoreArg()
@@ -329,6 +341,22 @@ class CommonNetworkTestCase(test.TestCase):
self.assertTrue(exp_cidr + '/24' in cidrs)
self.assertFalse('192.168.2.0/24' in cidrs)
def test__validate_cidrs_split_smaller_cidr_in_use2(self):
manager = self.FakeNetworkManager()
self.mox.StubOutWithMock(manager.db, 'network_get_all')
ctxt = mox.IgnoreArg()
manager.db.network_get_all(ctxt).AndReturn([{'id': 1,
'cidr': '192.168.2.9/29'}])
self.mox.ReplayAll()
nets = manager._validate_cidrs(None, '192.168.2.0/24', 3, 32)
self.assertEqual(3, len(nets))
cidrs = [str(net) for net in nets]
print cidrs
exp_cidrs = ['192.168.2.32', '192.168.2.64', '192.168.2.96']
for exp_cidr in exp_cidrs:
self.assertTrue(exp_cidr + '/27' in cidrs)
self.assertFalse('192.168.2.0/27' in cidrs)
def test__validate_cidrs_one_in_use(self):
manager = self.FakeNetworkManager()
args = [None, '192.168.0.0/24', 2, 256]