From 49cb5809d7638e4eb525deded3762c9e92e7f156 Mon Sep 17 00:00:00 2001 From: dkholodo <37401605+dkholodo@users.noreply.github.com> Date: Tue, 23 Oct 2018 05:33:23 +0300 Subject: [PATCH] [1LP][RFR] Fixed timing issues for Openstack test_networks tests (#7691) * Changed to "not ..." instead of "... is False" * test_instances was corrupted by mistake. returned to correct data * Was updated test_add_interface_to_router --- cfme/tests/openstack/cloud/test_networks.py | 45 ++++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/cfme/tests/openstack/cloud/test_networks.py b/cfme/tests/openstack/cloud/test_networks.py index 6003f18c2f..6f4c5b92dc 100644 --- a/cfme/tests/openstack/cloud/test_networks.py +++ b/cfme/tests/openstack/cloud/test_networks.py @@ -6,7 +6,7 @@ from cfme.cloud.provider.openstack import OpenStackProvider from cfme.utils.appliance.implementations.ui import navigate_to from cfme.utils.log import logger -from cfme.utils.wait import wait_for +from cfme.utils.wait import wait_for, TimedOutError pytestmark = [ @@ -122,7 +122,8 @@ def test_edit_network(network): network.edit(name=fauxfactory.gen_alpha()) wait_for(network.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, delay=10) - network.browser.refresh() + wait_for(lambda: network.exists, + delay=15, timeout=600, fail_func=network.browser.refresh) assert network.exists @@ -131,6 +132,8 @@ def test_delete_network(network): network.delete() wait_for(network.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, delay=10) + wait_for(lambda: not network.exists, + delay=15, timeout=600, fail_func=network.browser.refresh) assert not network.exists @@ -149,15 +152,17 @@ def test_edit_subnet(subnet): subnet.edit(new_name=fauxfactory.gen_alpha()) wait_for(subnet.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, delay=10) + wait_for(lambda: subnet.exists, delay=15, timeout=600, fail_func=subnet.browser.refresh) assert subnet.exists def test_delete_subnet(subnet): """Deletes private subnet""" subnet.delete() - wait_for(subnet.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, - delay=10) - subnet.browser.refresh() + wait_for(subnet.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=20), timeout=800, + delay=30) + wait_for(lambda: not subnet.exists, + delay=30, timeout=800, fail_func=subnet.browser.refresh) assert not subnet.exists @@ -179,16 +184,19 @@ def test_edit_router(router): router.edit(name=fauxfactory.gen_alpha()) wait_for(router.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, delay=10) - router.browser.refresh() + wait_for(lambda: router.exists, + delay=15, timeout=600, fail_func=router.browser.refresh) assert router.exists def test_delete_router(router, appliance): """Deletes router""" router.delete() - wait_for(router.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, - delay=10) + wait_for(router.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=20), timeout=800, + delay=30) navigate_to(appliance.collections.network_routers, 'All') + wait_for(lambda: not router.exists, + delay=30, timeout=800, fail_func=router.browser.refresh) assert not router.exists @@ -199,6 +207,8 @@ def test_clear_router_gateway(router_with_gw): timeout=600, delay=10) router_with_gw.browser.refresh() view = navigate_to(router_with_gw, 'Details') + wait_for(lambda: 'Cloud Network' not in view.entities.relationships.fields, + delay=15, timeout=600, fail_func=router_with_gw.browser.refresh) assert 'Cloud Network' not in view.entities.relationships.fields @@ -208,20 +218,25 @@ def test_add_gateway_to_router(router, ext_subnet): ext_network_subnet=ext_subnet.name) wait_for(router.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, delay=10) - router.browser.refresh() + wait_for(lambda: router.cloud_network == ext_subnet.network, + delay=15, timeout=600, fail_func=router.browser.refresh) assert router.cloud_network == ext_subnet.network def test_add_interface_to_router(router, subnet): """Adds interface (subnet) to router""" + view = navigate_to(router, 'Details') + subnets_count_before_adding = int(view.entities.relationships.get_text_of('Cloud Subnets')) router.add_interface(subnet.name) - wait_for(router.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=10), timeout=600, - delay=10) - router.browser.refresh() + wait_for(router.provider_obj.is_refreshed, func_kwargs=dict(refresh_delta=20), timeout=800, + delay=30) # TODO: verify the exact entities' names and relationships, not only count - view = navigate_to(router, 'Details') - subnets_count = int(view.entities.relationships.get_text_of('Cloud Subnets')) - assert subnets_count == 1 # Compare to '1' because clean router was used initially + try: + wait_for(lambda: int(view.entities.relationships.get_text_of('Cloud Subnets')) == + (subnets_count_before_adding + 1), + delay=30, timeout=800, fail_func=router.browser.refresh) + except TimedOutError: + assert False, "After waiting an interface to the router is still not added" def test_list_networks(provider, appliance):