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