diff options
author | Gwenael Lambrouin <gwenael.lambrouin@orange.com> | 2022-05-31 09:42:18 +0200 |
---|---|---|
committer | Gwenael Lambrouin <gwenael.lambrouin@orange.com> | 2022-10-17 17:57:25 +0200 |
commit | e2faa91512043386aa3a11ca44792bd3c009db76 (patch) | |
tree | f4a634cde4d8be96576b81d42ba0e7cf0d090c49 | |
parent | a122713a5207a189d659d2d05d31e272b4c544f3 (diff) |
behave_tests: refactor TestAPI HTTP request
- raise a requests.exceptions.HttpError if the HTTP request returned an
unsuccessful status code
- document exceptions that can occur during the communication with
TestAPI database
Change-Id: Iea81e76ef8938cb34a06529105ac6c282e664479
Signed-off-by: Gwenael Lambrouin <gwenael.lambrouin@orange.com>
-rw-r--r-- | behave_tests/features/steps/testapi.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/behave_tests/features/steps/testapi.py b/behave_tests/features/steps/testapi.py index aff7589..15ef8b1 100644 --- a/behave_tests/features/steps/testapi.py +++ b/behave_tests/features/steps/testapi.py @@ -14,7 +14,6 @@ # under the License. # -import json import logging import requests @@ -118,19 +117,31 @@ class TestapiClient: Perform an HTTP GET request on testapi, check status code and return JSON results as dictionary. - Args: testapi_url: a complete URL to request testapi results (with base - endpoint and parameters) + Args: + testapi_url: a complete URL to request testapi results (with base + endpoint and parameters) Returns: The JSON document from testapi as a Python dictionary Raises: + * requests.exceptions.ConnectionError in case of network problem + when trying to establish a connection with the TestAPI database + (DNS failure, refused connection, ...) + + * requests.exceptions.ConnectTimeout in case of timeout during the + request. + + * requests.exception.HTTPError if the HTTP request returned an + unsuccessful status code. + * another exception derived from requests.exceptions.RequestException + in case of problem during the HTTP request. """ response = requests.get(testapi_url) - assert response.status_code == 200 # TODO: better error message - results = json.loads(response.text) - return results + # raise an HTTPError if the HTTP request returned an unsuccessful status code: + response.raise_for_status() + return response.json() def equal_test_conditions(testapi_input, nfvbench_input): |