github.com/nginxinc/kubernetes-ingress@v1.12.5/tests/suite/nginx_api_utils.py (about) 1 """Describe the methods to work with nginx api""" 2 import pytest 3 import requests 4 import ast 5 6 from settings import NGINX_API_VERSION 7 8 from suite.resources_utils import wait_before_test 9 10 11 def get_nginx_generation_value(host) -> int: 12 """ 13 Send request to /api/api_version/nginx and parse the response. 14 15 :param host: 16 :return: 'generation' value 17 """ 18 resp = ast.literal_eval(requests.get(f"{host}/api/{NGINX_API_VERSION}/nginx").text) 19 return resp['generation'] 20 21 22 def wait_for_empty_array(request_url) -> None: 23 """ 24 Wait while the response from the API contains non-empty array. 25 26 :param request_url: 27 :return: 28 """ 29 response = requests.get(f"{request_url}") 30 counter = 0 31 while response.text != "[]": 32 wait_before_test(1) 33 response = requests.get(f"{request_url}") 34 if counter == 10: 35 pytest.fail(f"After 10 seconds array is not empty, request_url: {request_url}") 36 counter = counter + 1 37 38 39 def wait_for_non_empty_array(request_url) -> None: 40 """ 41 Wait while the response from the API contains empty array. 42 43 :param request_url: 44 :return: 45 """ 46 response = requests.get(f"{request_url}") 47 counter = 0 48 while response.text == "[]": 49 wait_before_test(1) 50 response = requests.get(f"{request_url}") 51 if counter == 10: 52 pytest.fail(f"After 10 seconds array is empty, request_url: {request_url}") 53 counter = counter + 1