From: Assaf Muller Date: Fri, 20 Nov 2015 21:42:38 +0000 (-0500) Subject: Make fullstack test_connectivity tests more forgiving X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=075f152223abb3bfe6f380f9873e687bf348b9a8;p=openstack-build%2Fneutron-build.git Make fullstack test_connectivity tests more forgiving Change assert_ping to block_until_ping. Closes-Bug: #1518466 Change-Id: I233cb40e701ef462e9d570d9677da1cbcc2c91c8 --- 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)