Antoni Segura Puimedon has uploaded a new change for review.
Change subject: Network functional tests assertion improvements ......................................................................
Network functional tests assertion improvements
This change allows for more fine grained assertion errors. It allows , among other things, to differentiate if what failed is making a net or putting it into the running configuration.
Change-Id: Icca9a552272818039bc677c6adebfed3d5664454 Signed-off-by: Antoni S. Puimedon asegurap@redhat.com --- M tests/functional/networkTests.py M tests/functional/utils.py 2 files changed, 162 insertions(+), 160 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/23/20123/1
diff --git a/tests/functional/networkTests.py b/tests/functional/networkTests.py index b85c3d5..304a01d 100644 --- a/tests/functional/networkTests.py +++ b/tests/functional/networkTests.py @@ -163,10 +163,10 @@ {}) self.assertEqual(status, SUCCESS, msg) for vlan_net in network_names: - self.assertTrue(self.vdsm_net.networkExists(vlan_net, bridged)) - self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics)) - self.assertTrue(self.vdsm_net.vlanExists(BONDING_NAME + '.' + - networks[vlan_net]['vlan'])) + self.vdsm_net.assertNetworkExists(vlan_net, bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics) + self.vdsm_net.assertVlanExists(BONDING_NAME + '.' + + networks[vlan_net]['vlan'])
with self.vdsm_net.pinger(): for vlan_net in network_names: @@ -174,11 +174,9 @@ {vlan_net: {'remove': True}}, {BONDING_NAME: {'remove': True}}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertFalse(self.vdsm_net.networkExists(vlan_net, - bridged)) - self.assertFalse( - self.vdsm_net.vlanExists(BONDING_NAME + '.' + - networks[vlan_net]['vlan'])) + self.vdsm_net.assertNetworkDoesntExist(vlan_net) + self.vdsm_net.assertVlanDoesntExist( + BONDING_NAME + '.' + networks[vlan_net]['vlan'])
@cleanupNet @permutations([[True], [False]]) @@ -192,15 +190,15 @@ {'bonding': BONDING_NAME, 'bridged': bridged}}, {BONDING_NAME: {'nics': nics, 'options': 'mode=2'}}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged)) - self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
with self.vdsm_net.pinger(): status, msg = self.vdsm_net.setupNetworks( {NETWORK_NAME: {'remove': True}}, {BONDING_NAME: {'remove': True}}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME)
@cleanupNet @permutations([[True], [False]]) @@ -214,7 +212,7 @@ {BONDING_NAME: {'nics': nics}}, {'connectivityCheck': False}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics)) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
with nonChangingOperstate(BONDING_NAME): status, msg = self.vdsm_net.setupNetworks( @@ -223,19 +221,32 @@ 'vlan': VLAN_ID}}, {}, {'connectivityCheck': False}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged)
status, msg = self.vdsm_net.setupNetworks( {NETWORK_NAME: {'remove': True}, NETWORK_NAME + '0': {'remove': True}}, {}, {'connectivityCheck': False}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics)) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
status, msg = self.vdsm_net.setupNetworks( {}, {BONDING_NAME: {'remove': True}}, {'connectivityCheck': False}) self.assertEqual(status, SUCCESS, msg) + + def assertNetworkExists(self, networkName, bridged=None): + self.assert_(networkName in self.vdsm_net.netinfo.networks) + if bridged: + self.assertEqual( + bridged, + self.vdsm_net.netinfo.networks[networkName]['bridged']) + if self.vdsm_net.config is not None: + self.assert_(networkName in self.vdsm_net.config.networks) + if bridged: + self.assertEqual( + self.vdsm_net.config.networks[networkName].get('bridged'), + bridged)
@cleanupNet @permutations([[True], [False]]) @@ -249,12 +260,12 @@ opts={'bridged': bridged}) self.assertEqual(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged)) - self.assertTrue(self.vdsm_net.bondExists(BONDING_NAME, nics)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
status, msg = self.vdsm_net.delNetwork(NETWORK_NAME) self.assertEqual(status, SUCCESS, msg) - self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME)
@cleanupNet @permutations([[True], [False]]) @@ -266,13 +277,13 @@ nics=nics, opts={'bridged': bridged}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME)
status, msg = self.vdsm_net.delNetwork(NETWORK_NAME, nics=nics, opts={'bridged': bridged}) self.assertEqual(status, SUCCESS, msg) - self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME)
@cleanupNet @permutations([[True], [False]]) @@ -356,10 +367,8 @@ self.assertEquals(status, SUCCESS, msg)
for netVlan, vlanId in NET_VLANS: - self.assertTrue(self.vdsm_net.networkExists(netVlan, - bridged=bridged)) - self.assertTrue(self.vdsm_net.vlanExists(nics[0] + '.' + - str(vlanId))) + self.vdsm_net.assertNetworkExists(netVlan, bridged=bridged) + self.vdsm_net.assertVlanExists(nics[0] + '.' + str(vlanId))
self.vdsm_net.delNetwork(netVlan) self.assertEquals(status, SUCCESS, msg) @@ -376,9 +385,8 @@ 'STP': 'off'}) self.assertEquals(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, - bridged=bridged)) - self.assertTrue(self.vdsm_net.vlanExists(nics[0] + '.' + VLAN_ID)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=bridged) + self.vdsm_net.assertVlanExists(nics[0] + '.' + VLAN_ID)
self.vdsm_net.delNetwork(NETWORK_NAME) self.assertEquals(status, SUCCESS, msg) @@ -405,12 +413,10 @@ nics=nics, opts=opts) self.assertEquals(status, SUCCESS, msg) - self.assertTrue( - self.vdsm_net.networkExists(netVlan, bridged=bridged)) + self.vdsm_net.assertNetworkExists(netVlan, bridged=bridged) for _, vlanId in NET_VLANS: - msg = "vlan %s doesn't exist" % vlanId vlanName = '%s.%s' % (BONDING_NAME, vlanId) - self.assertTrue(self.vdsm_net.vlanExists(vlanName), msg) + self.vdsm_net.assertVlanExists(vlanName)
for netVlan, vlanId in NET_VLANS: status, msg = self.vdsm_net.delNetwork(netVlan, vlan=vlanId, @@ -431,8 +437,7 @@ nics=nics, opts={'bridged': bridged}) self.assertEquals(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, - bridged=bridged)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=bridged) status, msg = self.vdsm_net.delNetwork(NETWORK_NAME, vlan=vlan_id, bond=BONDING_NAME, nics=nics) @@ -534,9 +539,8 @@ attrs}, {}, {})
self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME)) - self.assertTrue(self.vdsm_net.vlanExists('%s.%s' % - (nic, VLAN_ID))) + self.vdsm_net.assertNetworkExists(NETWORK_NAME) + self.vdsm_net.assertVlanExists('%s.%s' % (nic, VLAN_ID))
status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: dict(remove=True)}, @@ -556,7 +560,7 @@ status, msg = self.vdsm_net.setupNetworks(networks, {}, opts) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged)
with dummyIf(1) as nics: setupNetworkBridged(nics[0], True) @@ -589,9 +593,8 @@ self.assertEqual(status, SUCCESS, msg)
for vlan_net, tag in NET_VLANS: - self.assertTrue(self.vdsm_net.networkExists(vlan_net, - bridged)) - self.assertTrue(self.vdsm_net.vlanExists(nic + '.' + tag)) + self.vdsm_net.assertNetworkExists(vlan_net, bridged) + self.vdsm_net.assertVlanExists(nic + '.' + tag)
networks = dict((vlan_net, {'remove': True}) for vlan_net, _ in NET_VLANS) @@ -600,10 +603,8 @@ self.assertEqual(status, SUCCESS, msg)
for vlan_net, tag in NET_VLANS: - self.assertFalse(self.vdsm_net.networkExists(vlan_net, - bridged)) - self.assertFalse( - self.vdsm_net.vlanExists(nic + '.' + tag)) + self.vdsm_net.assertNetworkDoesntExist(vlan_net) + self.vdsm_net.assertVlanDoesntExist(nic + '.' + tag)
@cleanupNet @RequireDummyMod @@ -618,8 +619,7 @@ dict(nics=nics)}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, - bridged=True)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=True)
# Try to add additional bridgeless network, should fail netNameBridgeless = NETWORK_NAME + '-2' @@ -651,13 +651,10 @@ networks}, {}, {}) self.assertTrue(status != SUCCESS, msg)
- self.assertFalse(self.vdsm_net.networkExists( - netNameBridgeless)) - self.assertFalse(self.vdsm_net.networkExists(netNameBridged)) - self.assertFalse(self.vdsm_net.networkExists( - netNameVlanBridgeless)) - self.assertFalse(self.vdsm_net.networkExists( - netNameVlanBridged)) + self.vdsm_net.assertNetworkDoesntExist(netNameBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameBridged) + self.vdsm_net.assertNetworkDoesntExist(netNameVlanBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameVlanBridged)
# Clean all status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: @@ -667,9 +664,8 @@ {}) self.assertEquals(status, SUCCESS, msg)
- self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) - self.assertFalse(self.vdsm_net.bondExists( - BONDING_NAME, nics=nics)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME) + self.vdsm_net.assertBondDoesntExist(BONDING_NAME, nics)
@cleanupNet @RequireDummyMod @@ -685,8 +681,7 @@ dict(nics=nics)}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, - bridged=False)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=False)
# Try to add additional bridgeless network, should fail netNameBridgeless = NETWORK_NAME + '-2' @@ -717,14 +712,11 @@ d}, {}, {}) self.assertEqual(status, SUCCESS, msg)
- self.assertFalse(self.vdsm_net.networkExists( - netNameBridgeless)) - self.assertFalse(self.vdsm_net.networkExists(netNameBridged)) + self.vdsm_net.assertNetworkDoesntExist(netNameBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameBridged)
- self.assertTrue(self.vdsm_net.networkExists( - netNameVlanBridgeless)) - self.assertTrue(self.vdsm_net.networkExists( - netNameVlanBridged)) + self.vdsm_net.assertNetworkExists(netNameVlanBridgeless) + self.vdsm_net.assertNetworkExists(netNameVlanBridged)
# Clean all r = dict(remove=True) @@ -737,12 +729,10 @@
self.assertEqual(status, SUCCESS, msg)
- self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) - self.assertFalse(self.vdsm_net.networkExists( - netNameVlanBridgeless)) - self.assertFalse(self.vdsm_net.networkExists( - netNameVlanBridged)) - self.assertFalse(self.vdsm_net.bondExists(BONDING_NAME, nics)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME) + self.vdsm_net.assertNetworkDoesntExist(netNameVlanBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameVlanBridged) + self.vdsm_net.assertBondDoesntExist(BONDING_NAME, nics)
@cleanupNet @RequireDummyMod @@ -756,8 +746,7 @@ status, msg = self.vdsm_net.setupNetworks(networks, {}, {})
self.assertEquals(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists( - NETWORK_NAME, bridged=True)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=True)
# Try to add additional bridgeless network, should fail netNameBridgeless = NETWORK_NAME + '-2' @@ -789,21 +778,17 @@
self.assertTrue(status != SUCCESS, msg)
- self.assertFalse(self.vdsm_net.networkExists( - netNameBridgeless)) - self.assertFalse(self.vdsm_net.networkExists( - netNameBridged, bridged=True)) - self.assertFalse(self.vdsm_net.networkExists( - netNameVlanBridgeless)) - self.assertFalse(self.vdsm_net.networkExists( - netNameBridged, bridged=True)) + self.vdsm_net.assertNetworkDoesntExist(netNameBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameBridged) + self.vdsm_net.assertNetworkDoesntExist(netNameVlanBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameBridged)
# Clean all status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: dict(remove=True)}, {}, {}) self.assertEquals(status, SUCCESS, msg) - self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME)
@cleanupNet @RequireDummyMod @@ -818,8 +803,7 @@ status, msg = self.vdsm_net.setupNetworks(networks, {}, {})
self.assertEquals(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, - bridged=False)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=False)
# Try to add additional bridgeless network, should fail netNameBridgeless = NETWORK_NAME + '-2' @@ -852,13 +836,11 @@
self.assertEquals(status, SUCCESS, msg)
- self.assertFalse(self.vdsm_net.networkExists( - netNameBridgeless)) - self.assertFalse(self.vdsm_net.networkExists(netNameBridged)) - self.assertTrue(self.vdsm_net.networkExists( - netNameVlanBridgeless)) - self.assertTrue(self.vdsm_net.networkExists(netNameVlanBridged, - bridged=True)) + self.vdsm_net.assertNetworkDoesntExist(netNameBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameBridged) + self.vdsm_net.assertNetworkExists(netNameVlanBridgeless) + self.vdsm_net.assertNetworkExists(netNameVlanBridged, + bridged=True)
# Clean all networks = {NETWORK_NAME: dict(remove=True), @@ -868,11 +850,9 @@
self.assertEqual(status, SUCCESS, msg)
- self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME)) - self.assertFalse(self.vdsm_net.networkExists( - netNameVlanBridgeless)) - self.assertFalse(self.vdsm_net.networkExists( - netNameVlanBridged, bridged=True)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME) + self.vdsm_net.assertNetworkDoesntExist(netNameVlanBridgeless) + self.vdsm_net.assertNetworkDoesntExist(netNameVlanBridged)
@cleanupNet @permutations([[True], [False]]) @@ -890,10 +870,9 @@
self.assertEquals(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.networkExists( - NETWORK_NAME, bridged=bridged)) - self.assertTrue(self.vdsm_net.bondExists( - BONDING_NAME, nics)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, + bridged=bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
# Reduce bond size and create Network on detached NIC with nonChangingOperstate(BONDING_NAME): @@ -906,12 +885,10 @@
self.assertEquals(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.networkExists( - NETWORK_NAME, bridged=bridged)) - self.assertTrue(self.vdsm_net.networkExists( - netName, bridged=bridged)) - self.assertTrue(self.vdsm_net.bondExists( - BONDING_NAME, nics[1:3])) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, + bridged=bridged) + self.vdsm_net.assertNetworkExists(netName, bridged=bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics[1:3])
# Clean up networks = {NETWORK_NAME: dict(remove=True), @@ -958,8 +935,8 @@
self.assertEquals(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME + '3', - bridged=bridged)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME + '3', + bridged=bridged) assertMtu(JUMBO, NETWORK_NAME + '3', BONDING_NAME, nics[0], nics[1])
@@ -1012,10 +989,9 @@ {}) self.assertEquals(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.networkExists( - NETWORK_NAME, bridged=bridged)) - self.assertTrue(self.vdsm_net.bondExists( - BONDING_NAME, nics)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, + bridged=bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
# Break the bond and create Network on detached NIC networks = {NETWORK_NAME: dict(nic=nics[0], bridged=bridged)} @@ -1025,10 +1001,9 @@ {}) self.assertEquals(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.networkExists( - NETWORK_NAME, bridged=bridged)) - self.assertFalse(self.vdsm_net.bondExists( - BONDING_NAME, nics)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, + bridged=bridged) + self.vdsm_net.assertBondDoesntExist(BONDING_NAME, nics)
status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: dict(remove=True)}, @@ -1049,8 +1024,9 @@ bondings, {}) self.assertEquals(status, SUCCESS, msg)
- self.vdsm_net.networkExists(NETWORK_NAME, bridged=bridged) - self.vdsm_net.bondExists(BONDING_NAME, nics[:2]) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, + bridged=bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics[:2])
# Increase bond size with nonChangingOperstate(BONDING_NAME): @@ -1059,8 +1035,9 @@
self.assertEquals(status, SUCCESS, msg)
- self.vdsm_net.networkExists(NETWORK_NAME, bridged=bridged) - self.vdsm_net.bondExists(BONDING_NAME, nics) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, + bridged=bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
status, msg = self.vdsm_net.setupNetworks({NETWORK_NAME: dict(remove=True)}, @@ -1082,8 +1059,8 @@ {BONDING_NAME: bondDict}, {}) self.assertEquals(status, SUCCESS, msg) - self.vdsm_net.networkExists(netName, bridged=bridged) - self.vdsm_net.bondExists(BONDING_NAME, bondDict['nics']) + self.vdsm_net.assertNetworkExists(netName, bridged=bridged) + self.vdsm_net.assertBondExists(BONDING_NAME, bondDict['nics'])
with dummyIf(3) as nics: with self.vdsm_net.pinger(): @@ -1141,13 +1118,13 @@
self.assertEqual(status, SUCCESS, msg)
- self.assertTrue(self.vdsm_net.bondExists(bigBond, nics)) + self.vdsm_net.assertBondExists(bigBond, nics)
status, msg = self.vdsm_net.delNetwork(NETWORK_NAME)
self.assertEqual(status, SUCCESS, msg)
- self.assertFalse(self.vdsm_net.bondExists(bigBond, nics)) + self.vdsm_net.assertBondDoesntExist(bigBond, nics)
@cleanupNet @permutations([[True], [False]]) @@ -1162,7 +1139,7 @@
self.assertEquals(status, SUCCESS, msg)
- self.vdsm_net.bondExists(BONDING_NAME, nics=nics[:1]) + self.vdsm_net.assertBondExists(BONDING_NAME, nics=nics[:1])
# Increase bond size bondings[BONDING_NAME]['nics'] = nics @@ -1170,7 +1147,7 @@
self.assertEquals(status, SUCCESS, msg)
- self.vdsm_net.bondExists(BONDING_NAME, nics) + self.vdsm_net.assertBondExists(BONDING_NAME, nics)
# Reduce bond size REQMODE_BROADCAST = '3' @@ -1181,7 +1158,7 @@
self.assertEquals(status, SUCCESS, msg)
- self.vdsm_net.bondExists(BONDING_NAME, nics[:2]) + self.vdsm_net.assertBondExists(BONDING_NAME, nics[:2]) self.assertEquals(self.vdsm_net.getBondMode(BONDING_NAME), REQMODE_BROADCAST)
@@ -1231,13 +1208,13 @@ opts={'bridged': bridged}) self.assertEquals(status, SUCCESS, msg)
- self.vdsm_net.networkExists(NETWORK_NAME, bridged=bridged) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=bridged)
self.vdsm_net.save_config()
self.vdsm_net.restoreNetConfig()
- self.vdsm_net.networkExists(NETWORK_NAME, bridged=bridged) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=bridged)
status, msg = self.vdsm_net.delNetwork(NETWORK_NAME) self.assertEquals(status, SUCCESS, msg) @@ -1258,12 +1235,11 @@ bridged}) self.assertEquals(status, SUCCESS, msg)
- self.vdsm_net.networkExists(NETWORK_NAME, bridged=bridged) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged=bridged)
self.vdsm_net.restoreNetConfig()
- self.assertFalse(self.vdsm_net.networkExists(NETWORK_NAME, - bridged=bridged)) + self.vdsm_net.assertNetworkDoesntExist(NETWORK_NAME)
@cleanupRules @RequireDummyMod @@ -1322,7 +1298,7 @@ 'gateway': IP_GATEWAY}}, {}, {'connectivityCheck': False}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME, bridged)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME, bridged)
deviceName = NETWORK_NAME if bridged else nics[0]
@@ -1370,7 +1346,7 @@ status, msg = self.vdsm_net.setupNetworks( {NETWORK_NAME: networks[NETWORK_NAME]}, {}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME) status, msg, info = self.vdsm_net.getVdsCapabilities() self.assertTrue('BOOTPROTO' in info['nics'][nic]['cfg']) bootproto = info['nics'][nic]['cfg']['BOOTPROTO'] @@ -1379,7 +1355,7 @@ status, msg = self.vdsm_net.setupNetworks( {vlan_name: networks[vlan_name]}, {}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(vlan_name)) + self.vdsm_net.assertNetworkExists(vlan_name) status, msg, info = self.vdsm_net.getVdsCapabilities() self.assertTrue('BOOTPROTO' in info['nics'][nic]['cfg']) bootproto = info['nics'][nic]['cfg']['BOOTPROTO'] @@ -1416,8 +1392,8 @@ with self.vdsm_net.pinger(): status, msg = self.vdsm_net.setupNetworks(networks, {}, {}) self.assertEqual(status, SUCCESS, msg) - self.assertTrue(self.vdsm_net.networkExists(NETWORK_NAME)) - self.assertTrue(self.vdsm_net.networkExists(vlan_name)) + self.vdsm_net.assertNetworkExists(NETWORK_NAME) + self.vdsm_net.assertNetworkExists(vlan_name) status, msg, info = self.vdsm_net.getVdsCapabilities() self.assertTrue('BOOTPROTO' in info['nics'][nic]['cfg']) bootproto = info['nics'][nic]['cfg']['BOOTPROTO'] diff --git a/tests/functional/utils.py b/tests/functional/utils.py index 726d124..5a40721 100644 --- a/tests/functional/utils.py +++ b/tests/functional/utils.py @@ -19,15 +19,20 @@ from collections import namedtuple from contextlib import contextmanager from functools import wraps +import imp import time import threading
from vdsm.config import config +from vdsm import constants from vdsm import ipwrapper from vdsm import netinfo from vdsm import vdscli from vdsm.netconfpersistence import RunningConfig from vdsm.tool.restore_nets import restore + +vdsmRestoreNetConfig = imp.load_source( + 'vdsmRestoreNetConfig', constants.P_VDSM + 'vdsm-restore-net-config')
SUCCESS = 0 @@ -119,7 +124,7 @@
@netinfo_altering def restoreNetConfig(self): - restore(sudo=True) + vdsmRestoreNetConfig.restore()
@netinfo_altering def addNetwork(self, bridge, vlan=None, bond=None, nics=None, opts=None): @@ -148,22 +153,50 @@ result = self.vdscli.setupNetworks(networks, bonds, options) return result['status']['code'], result['status']['message']
- def networkExists(self, network_name, bridged=None): - return network_name in self.netinfo.networks and \ - (bridged is None or - self.netinfo.networks[network_name]['bridged'] == bridged) and \ - (self.config is None or - (network_name in self.config.networks and - (bridged is None or ( - self.config.networks[network_name].get('bridged') == bridged)))) + def assertNetworkExists(self, networkName, bridged=None): + assert networkName in self.netinfo.networks + if bridged: + assert bridged == self.netinfo.networks[networkName]['bridged'] + if self.config is not None: + assert networkName in self.config.networks + if bridged is not None: + assert (bridged == + self.config.networks[networkName].get('bridged'))
- def bondExists(self, bond_name, nics=None): - return bond_name in self.netinfo.bondings and \ - (not nics or set(nics) == - set(self.netinfo.bondings[bond_name]['slaves'])) and \ - (self.config is None or - (bond_name in self.config.bonds and - self.config.bonds[bond_name].get('nics') == nics)) + def assertNetworkDoesntExist(self, networkName): + assert networkName not in self.netinfo.networks + if self.config is not None: + assert networkName not in self.config.networks + + def assertBondExists(self, bondName, nics=None): + assert bondName in self.netinfo.bondings + if nics is not None: + assert (set(nics) == + set(self.netinfo.bondings[bondName]['slaves'])) + if self.config is not None: + assert bondName in self.config.bonds + assert (set(nics) == set(self.config.bonds[bondName].get('nics'))) + + def assertBondDoesntExist(self, bondName, nics=None): + assert (bondName not in self.netinfo.bondings or (set(nics) == + set(self.netinfo.bondings[bondName]['slaves']))) + if self.config is not None: + assert (bondName not in self.config.bonds or (set(nics) == + set(self.config.bonds[bondName].get('nics')))) + + def assertVlanExists(self, vlanName): + devName, vlanId = vlanName.split('.') + assert vlanName in self.netinfo.vlans + if devName: + assert devName == self.netinfo.vlans[vlanName]['iface'] + if self.config is not None: + assert self._vlanInRunningConfig(devName, vlanId) + + def assertVlanDoesntExist(self, vlanName): + devName, vlanId = vlanName.split('.') + assert vlanName not in self.netinfo.vlans + if devName and self.config is not None: + assert not self._vlanInRunningConfig(devName, vlanId)
def _vlanInRunningConfig(self, devName, vlanId): for net, attrs in self.config.networks.iteritems(): @@ -172,13 +205,6 @@ attrs.get('nic') == devName)): return True return False - - def vlanExists(self, vlanName): - devName, vlanId = vlanName.split('.') - return vlanName in self.netinfo.vlans and \ - (not devName or devName == - self.netinfo.vlans[vlanName]['iface']) and \ - (self.config is None or self._vlanInRunningConfig(devName, vlanId))
def getMtu(self, name): if name in self.netinfo.networks:
Dan Kenigsberg has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 1: Code-Review-1
(3 comments)
.................................................... File tests/functional/networkTests.py Line 234: {}, Line 235: {BONDING_NAME: {'remove': True}}, {'connectivityCheck': False}) Line 236: self.assertEqual(status, SUCCESS, msg) Line 237: Line 238: def assertNetworkExists(self, networkName, bridged=None): do we need this defined both here and in utils? I prefer to have it here due to the delicate differences between self.assertTrue and the 'assert' statement that you use in utils. Line 239: self.assert_(networkName in self.vdsm_net.netinfo.networks) Line 240: if bridged: Line 241: self.assertEqual( Line 242: bridged,
Line 235: {BONDING_NAME: {'remove': True}}, {'connectivityCheck': False}) Line 236: self.assertEqual(status, SUCCESS, msg) Line 237: Line 238: def assertNetworkExists(self, networkName, bridged=None): Line 239: self.assert_(networkName in self.vdsm_net.netinfo.networks) isn't assert_ an undocumented assertTrue? Do you find it nicer? Line 240: if bridged: Line 241: self.assertEqual( Line 242: bridged, Line 243: self.vdsm_net.netinfo.networks[networkName]['bridged'])
Line 236: self.assertEqual(status, SUCCESS, msg) Line 237: Line 238: def assertNetworkExists(self, networkName, bridged=None): Line 239: self.assert_(networkName in self.vdsm_net.netinfo.networks) Line 240: if bridged: if bridge is not None Line 241: self.assertEqual( Line 242: bridged, Line 243: self.vdsm_net.netinfo.networks[networkName]['bridged']) Line 244: if self.vdsm_net.config is not None:
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 1: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/4940/ : FAILURE
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4054/ : FAILURE
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/4864/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/684/ : FAILURE
Antoni Segura Puimedon has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 1:
(1 comment)
.................................................... File tests/functional/networkTests.py Line 234: {}, Line 235: {BONDING_NAME: {'remove': True}}, {'connectivityCheck': False}) Line 236: self.assertEqual(status, SUCCESS, msg) Line 237: Line 238: def assertNetworkExists(self, networkName, bridged=None): In fact my original code was the new asserts in networkTests. But since we originally didn't want this module to access self.vdsm_net.netinfo nor config I moved it there.
This method is not used and it is a glitch of my git cherry-picking. Line 239: self.assert_(networkName in self.vdsm_net.netinfo.networks) Line 240: if bridged: Line 241: self.assertEqual( Line 242: bridged,
Dan Kenigsberg has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 2: Code-Review+1
(2 comments)
.................................................... Commit Message Line 6: Line 7: Network functional tests assertion improvements Line 8: Line 9: This change allows for more fine grained assertion errors. It allows Line 10: , among other things, to differentiate if what failed is making a English style: no leading comma please. Line 11: net or putting it into the running configuration. Line 12: Line 13: Change-Id: Icca9a552272818039bc677c6adebfed3d5664454
.................................................... File tests/functional/networkTests.py Line 146: Line 147: def assertNetworkExists(self, networkName, bridged=None): Line 148: netinfo = self.vdsm_net.netinfo Line 149: config = self.vdsm_net.config Line 150: self.assertTrue(networkName in netinfo.networks) using assertIn() (after pulling it to python 2.6) would provide clearer outputs in case of assertion. Ancient Ruth had it. Line 151: if bridged is not None: Line 152: self.assertEqual(bridged, netinfo.networks[networkName]['bridged']) Line 153: if config is not None: Line 154: self.assertTrue(networkName in config.networks)
Antoni Segura Puimedon has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 2:
(1 comment)
.................................................... File tests/functional/networkTests.py Line 146: Line 147: def assertNetworkExists(self, networkName, bridged=None): Line 148: netinfo = self.vdsm_net.netinfo Line 149: config = self.vdsm_net.config Line 150: self.assertTrue(networkName in netinfo.networks) Yeah. I had assertIn until I figured it wasn't on 2.7. I guess I could backport it to testrunner. Line 151: if bridged is not None: Line 152: self.assertEqual(bridged, netinfo.networks[networkName]['bridged']) Line 153: if config is not None: Line 154: self.assertTrue(networkName in config.networks)
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 2: Code-Review-1 Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/4941/ : ABORTED
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4055/ : FAILURE
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/4865/ : UNSTABLE
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/685/ : FAILURE
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 3: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/4942/ : ABORTED
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4056/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/4866/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/686/ : FAILURE
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 4: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/4944/ : ABORTED
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4058/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/4868/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/688/ : FAILURE
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 5: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/5029/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4225/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/5103/ : ABORTED
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/717/ : FAILURE
Antoni Segura Puimedon has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 6: Verified+1
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 6: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/5048/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4244/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/5122/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/729/ : FAILURE
Antoni Segura Puimedon has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 7: Verified+1
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 7: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/5050/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4246/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/5124/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/731/ : FAILURE
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 8: Verified-1
Build Failed
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/5065/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit_el/4261/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_unit_tests_gerrit/5139/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/737/ : FAILURE
Dan Kenigsberg has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 8: Code-Review+1
Toni, do you understand why this fails on el6?
oVirt Jenkins CI Server has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 8: -Verified
Build Successful
http://jenkins.ovirt.org/job/vdsm_pep8_gerrit/5065/ : SUCCESS
http://jenkins.ovirt.org/job/vdsm_network_functional_tests/756/ : SUCCESS
Antoni Segura Puimedon has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 8: Verified+1
Dan Kenigsberg has posted comments on this change.
Change subject: Network functional tests assertion improvements ......................................................................
Patch Set 8: Code-Review+2
Dan Kenigsberg has submitted this change and it was merged.
Change subject: Network functional tests assertion improvements ......................................................................
Network functional tests assertion improvements
This change allows for more fine grained assertion errors. It allows , among other things, to differentiate if what failed is making a net or putting it into the running configuration.
Change-Id: Icca9a552272818039bc677c6adebfed3d5664454 Signed-off-by: Antoni S. Puimedon asegurap@redhat.com Reviewed-on: http://gerrit.ovirt.org/20123 Reviewed-by: Dan Kenigsberg danken@redhat.com --- M tests/functional/networkTests.py M tests/functional/utils.py M tests/testrunner.py 3 files changed, 196 insertions(+), 167 deletions(-)
Approvals: Antoni Segura Puimedon: Verified Dan Kenigsberg: Looks good to me, approved
vdsm-patches@lists.fedorahosted.org