Skip to content

Commit 0dff58c

Browse files
committed
Add delay as some tests are flaky in aws cloud
Adjust measurement error
1 parent f7a7931 commit 0dff58c

File tree

5 files changed

+32
-11
lines changed

5 files changed

+32
-11
lines changed

tests/suite/fixtures.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,11 +326,12 @@ def virtual_server_setup(request, kube_apis, crd_ingress_controller, ingress_con
326326
:return: VirtualServerSetup
327327
"""
328328
print("------------------------- Deploy Virtual Server Example -----------------------------------")
329+
vs_source = f"{TEST_DATA}/{request.param['example']}/standard/virtual-server.yaml"
329330
vs_name = create_virtual_server_from_yaml(kube_apis.custom_objects,
330-
f"{TEST_DATA}/{request.param['example']}/standard/virtual-server.yaml",
331+
vs_source,
331332
test_namespace)
332-
vs_host = get_first_vs_host_from_yaml(f"{TEST_DATA}/{request.param['example']}/standard/virtual-server.yaml")
333-
vs_paths = get_paths_from_vs_yaml(f"{TEST_DATA}/{request.param['example']}/standard/virtual-server.yaml")
333+
vs_host = get_first_vs_host_from_yaml(vs_source)
334+
vs_paths = get_paths_from_vs_yaml(vs_source)
334335
common_app = create_example_app(kube_apis, request.param['app_type'], test_namespace)
335336
wait_until_all_pods_are_ready(kube_apis.v1, test_namespace)
336337

tests/suite/resources_utils.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -850,7 +850,7 @@ def ensure_connection(request_url) -> None:
850850
:param request_url: url to request
851851
:return:
852852
"""
853-
for _ in range(0, 4):
853+
for _ in range(4):
854854
try:
855855
resp = requests.get(request_url, verify=False)
856856
if resp.status_code == 404:
@@ -914,3 +914,19 @@ def get_events(v1: CoreV1Api, namespace) -> []:
914914
print(f"Get the events in the namespace: {namespace}")
915915
res = v1.list_namespaced_event(namespace)
916916
return res.items
917+
918+
919+
def ensure_response_from_backend(req_url, host) -> None:
920+
"""
921+
Wait for 502 to disappear.
922+
923+
:param req_url: url to request
924+
:param host:
925+
:return:
926+
"""
927+
for _ in range(5):
928+
resp = requests.get(req_url, headers={"host": host}, verify=False)
929+
if resp.status_code != 502:
930+
return
931+
time.sleep(2)
932+
pytest.fail(f"Keep getting 502 from {req_url} after 10 seconds. Exiting...")

tests/suite/test_smoke.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
import pytest
33

44
from suite.fixtures import PublicEndpoint
5-
from suite.resources_utils import create_secret_from_yaml, delete_secret, ensure_connection_to_public_endpoint
6-
from suite.resources_utils import create_items_from_yaml, delete_items_from_yaml, create_common_app, delete_common_app
7-
from suite.resources_utils import wait_until_all_pods_are_ready
5+
from suite.resources_utils import create_secret_from_yaml, delete_secret, \
6+
ensure_connection_to_public_endpoint, create_items_from_yaml, \
7+
delete_items_from_yaml, create_common_app, delete_common_app, \
8+
wait_until_all_pods_are_ready, wait_before_test, ensure_response_from_backend
89
from suite.yaml_utils import get_first_ingress_host_from_yaml
910
from settings import TEST_DATA
1011

@@ -53,6 +54,7 @@ class TestSmoke:
5354
@pytest.mark.parametrize("path", paths)
5455
def test_response_code_200_and_server_name(self, smoke_setup, path):
5556
req_url = f"https://{smoke_setup.public_endpoint.public_ip}:{smoke_setup.public_endpoint.port_ssl}/{path}"
57+
ensure_response_from_backend(req_url, smoke_setup.ingress_host)
5658
resp = requests.get(req_url, headers={"host": smoke_setup.ingress_host}, verify=False)
5759
assert resp.status_code == 200
5860
assert f"Server name: {path}" in resp.text

tests/suite/test_virtual_server_advanced_routing.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from settings import TEST_DATA
66
from suite.custom_resources_utils import patch_virtual_server_from_yaml
7-
from suite.resources_utils import wait_before_test
7+
from suite.resources_utils import wait_before_test, ensure_response_from_backend
88

99

1010
def execute_assertions(resp_1, resp_2, resp_3):
@@ -22,6 +22,8 @@ def execute_assertions(resp_1, resp_2, resp_3):
2222
indirect=True)
2323
class TestAdvancedRouting:
2424
def test_flow_with_header(self, kube_apis, crd_ingress_controller, virtual_server_setup):
25+
ensure_response_from_backend(virtual_server_setup.backend_1_url, virtual_server_setup.vs_host)
26+
2527
resp_1 = requests.get(virtual_server_setup.backend_1_url,
2628
headers={"host": virtual_server_setup.vs_host, "x-version": "future"})
2729
resp_2 = requests.get(virtual_server_setup.backend_1_url,

tests/suite/test_virtual_server_split_traffic.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def test_several_requests(self, kube_apis, crd_ingress_controller, virtual_serve
5252
ratios = [round(i/sum_weights, 1) for i in weights]
5353

5454
counter_v1, counter_v2 = 0, 0
55-
for _ in range(0, 100):
55+
for _ in range(100):
5656
resp = requests.get(virtual_server_setup.backend_1_url,
5757
headers={"host": virtual_server_setup.vs_host})
5858
if upstreams[0] in resp.text in resp.text:
@@ -62,5 +62,5 @@ def test_several_requests(self, kube_apis, crd_ingress_controller, virtual_serve
6262
else:
6363
pytest.fail(f"An unexpected backend in response: {resp.text}")
6464

65-
assert round(counter_v1/(counter_v1 + counter_v2), 1) == ratios[0]
66-
assert round(counter_v2/(counter_v1 + counter_v2), 1) == ratios[1]
65+
assert abs(round(counter_v1/(counter_v1 + counter_v2), 1) - ratios[0]) <= 0.2
66+
assert abs(round(counter_v2/(counter_v1 + counter_v2), 1) - ratios[1]) <= 0.2

0 commit comments

Comments
 (0)