From 075f152223abb3bfe6f380f9873e687bf348b9a8 Mon Sep 17 00:00:00 2001 From: Assaf Muller Date: Fri, 20 Nov 2015 16:42:38 -0500 Subject: [PATCH] Make fullstack test_connectivity tests more forgiving Change assert_ping to block_until_ping. Closes-Bug: #1518466 Change-Id: I233cb40e701ef462e9d570d9677da1cbcc2c91c8 --- neutron/tests/common/machine_fixtures.py | 14 ++++++++++++++ neutron/tests/fullstack/test_connectivity.py | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/neutron/tests/common/machine_fixtures.py b/neutron/tests/common/machine_fixtures.py index e61ece189..c812e5e5d 100644 --- a/neutron/tests/common/machine_fixtures.py +++ b/neutron/tests/common/machine_fixtures.py @@ -13,9 +13,12 @@ # under the License. # +import functools + import fixtures from neutron.agent.linux import ip_lib +from neutron.agent.linux import utils from neutron.tests.common import net_helpers @@ -48,6 +51,17 @@ class FakeMachineBase(fixtures.Fixture): ns_ip_wrapper = ip_lib.IPWrapper(self.namespace) return ns_ip_wrapper.netns.execute(*args, **kwargs) + def ping_predicate(self, dst_ip): + try: + self.assert_ping(dst_ip) + except RuntimeError: + return False + return True + + def block_until_ping(self, dst_ip): + predicate = functools.partial(self.ping_predicate, dst_ip) + utils.wait_until_true(predicate) + def assert_ping(self, dst_ip): net_helpers.assert_ping(self.namespace, dst_ip) diff --git a/neutron/tests/fullstack/test_connectivity.py b/neutron/tests/fullstack/test_connectivity.py index 9915af571..57ff43560 100644 --- a/neutron/tests/fullstack/test_connectivity.py +++ b/neutron/tests/fullstack/test_connectivity.py @@ -67,4 +67,4 @@ class TestConnectivitySameNetwork(base.BaseFullStackTestCase): for vm in vms: vm.block_until_boot() - vms[0].assert_ping(vms[1].ip) + vms[0].block_until_ping(vms[1].ip) -- 2.45.2