tests: various fixes for networking tests

- Update feature name for enabling network-manager.
- Fix error reporting
This commit is contained in:
Marek Marczykowski-Górecki 2017-09-28 03:41:37 +02:00
parent fdf780aad0
commit f9da1f2dd7
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -142,7 +142,7 @@ class VmNetworkingMixin(object):
self.proxy.provides_network = True self.proxy.provides_network = True
self.loop.run_until_complete(self.proxy.create_on_disk()) self.loop.run_until_complete(self.proxy.create_on_disk())
self.proxy.netvm = self.testnetvm self.proxy.netvm = self.testnetvm
self.proxy.features['network-manager'] = True self.proxy.features['service.network-manager'] = True
self.testvm1.netvm = self.proxy self.testvm1.netvm = self.proxy
self.app.save() self.app.save()
@ -173,7 +173,7 @@ class VmNetworkingMixin(object):
self.assertEqual(subprocess.call([ self.assertEqual(subprocess.call([
'xdotool', 'search', '--class', '{}:nm-applet'.format( 'xdotool', 'search', '--class', '{}:nm-applet'.format(
self.proxy.name)], self.proxy.name)],
stdout=open('/dev/null', 'w')), 0, "nm-applet window not found") stdout=subprocess.DEVNULL), 0, "nm-applet window not found")
self.assertEqual(self.run_cmd(self.testvm1, self.ping_ip), 0, self.assertEqual(self.run_cmd(self.testvm1, self.ping_ip), 0,
"Ping by IP failed (after NM reconnection") "Ping by IP failed (after NM reconnection")
self.assertEqual(self.run_cmd(self.testvm1, self.ping_name), 0, self.assertEqual(self.run_cmd(self.testvm1, self.ping_name), 0,
@ -326,11 +326,11 @@ class VmNetworkingMixin(object):
self.loop.run_until_complete(self.testvm1.start()) self.loop.run_until_complete(self.testvm1.start())
self.assertEqual(self.run_cmd(self.testvm1, self.ping_ip), 0) self.assertEqual(self.run_cmd(self.testvm1, self.ping_ip), 0)
self.loop.run_until_complete(self.testvm1.run_for_stdio(''' self.loop.run_until_complete(self.testvm1.run_for_stdio(
ip addr flush dev eth0 && 'ip addr flush dev eth0 && '
ip addr add 10.137.1.128/24 dev eth0 && 'ip addr add 10.137.1.128/24 dev eth0 && '
ip route add default dev eth0 && 'ip route add default dev eth0',
''', user='root')) user='root'))
self.assertNotEqual(self.run_cmd(self.testvm1, self.ping_ip), 0, self.assertNotEqual(self.run_cmd(self.testvm1, self.ping_ip), 0,
"Spoofed ping should be blocked") "Spoofed ping should be blocked")
@ -476,16 +476,17 @@ class VmNetworkingMixin(object):
self.loop.run_until_complete(self.testvm2.start()) self.loop.run_until_complete(self.testvm2.start())
try: try:
cmd = 'iptables -I FORWARD -s {} -d {} -j ACCEPT'.format(
self.testvm2.ip, self.testvm1.ip)
self.loop.run_until_complete(self.proxy.run_for_stdio( self.loop.run_until_complete(self.proxy.run_for_stdio(
'iptables -I FORWARD -s {} -d {} -j ACCEPT'.format( cmd, user='root'))
self.testvm2.ip, self.testvm1.ip), user='root'))
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
self.fail('{} failed with: {}'.format(cmd, e.returncode)) self.fail('{} failed with: {}'.format(cmd, e.returncode))
try: try:
cmd = 'iptables -I INPUT -s {} -j ACCEPT'.format(self.testvm2.ip)
self.loop.run_until_complete(self.proxy.run_for_stdio( self.loop.run_until_complete(self.proxy.run_for_stdio(
'iptables -I INPUT -s {} -j ACCEPT'.format( cmd, user='root'))
self.testvm2.ip), user='root'))
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
self.fail('{} failed with: {}'.format(cmd, e.returncode)) self.fail('{} failed with: {}'.format(cmd, e.returncode))
@ -493,10 +494,9 @@ class VmNetworkingMixin(object):
self.ping_cmd.format(target=self.testvm1.ip)), 0) self.ping_cmd.format(target=self.testvm1.ip)), 0)
try: try:
cmd = 'iptables -nvxL INPUT | grep {}'.format(self.testvm2.ip)
(stdout, _) = self.loop.run_until_complete( (stdout, _) = self.loop.run_until_complete(
self.testvm1.run_for_stdio( self.testvm1.run_for_stdio(cmd, user='root'))
'iptables -nvxL INPUT | grep {}'.format(self.testvm2.ip),
user='root'))
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
self.fail( self.fail(
'{} failed with {}'.format(cmd, e.returncode)) '{} failed with {}'.format(cmd, e.returncode))