aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGwenael Lambrouin <gwenael.lambrouin@orange.com>2022-05-31 09:42:18 +0200
committerGwenael Lambrouin <gwenael.lambrouin@orange.com>2022-10-17 17:57:25 +0200
commite2faa91512043386aa3a11ca44792bd3c009db76 (patch)
treef4a634cde4d8be96576b81d42ba0e7cf0d090c49
parenta122713a5207a189d659d2d05d31e272b4c544f3 (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.py23
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):