diff options
Diffstat (limited to 'tests/vid/resources/simulators/SO.py')
-rw-r--r-- | tests/vid/resources/simulators/SO.py | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/tests/vid/resources/simulators/SO.py b/tests/vid/resources/simulators/SO.py index 12fd7763..fb4c66d6 100644 --- a/tests/vid/resources/simulators/SO.py +++ b/tests/vid/resources/simulators/SO.py @@ -47,18 +47,8 @@ class SOHandler(BaseHTTPRequestHandler): return def do_GET(self): - print(self._known_endpoints) if self._does_path_exist_as_endpoint(): - expected_response = self._get_response_by_path() - if expected_response: - self.send_response(expected_response["responseCode"]) - self._set_headers() - self.wfile.write(json.dumps(expected_response["body"]).encode("utf-8")) - else: - response_body = "{\"message:\" \"no response for endpoint\"}" - self.send_response(400) - self._set_headers() - self.wfile.write(json.dumps(response_body).encode("utf-8")) + self.rest_method("GET") else: logging.info('GET called. Expected GET REQUEST: ' + json.dumps(self._expected_requests["get"]) @@ -69,16 +59,31 @@ class SOHandler(BaseHTTPRequestHandler): self.wfile.write(json.dumps(self._expected_responses["get"]).encode("utf-8")) def do_PUT(self): - request_body_json = self._get_request_body() - if request_body_json is not None: - self._apply_expected_data(request_body_json) - logging.info("EXPECTED RESPONSES: " + str(self._expected_responses)) - logging.info("EXPECTED REQUESTS: " + str(self._expected_requests)) - response_status = 200 + if self._does_path_exist_as_endpoint(): + self.rest_method("PUT") else: - response_status = 400 - self.send_response(response_status) - self._set_headers() + request_body_json = self._get_request_body() + if request_body_json is not None: + self._apply_expected_data(request_body_json) + logging.info("EXPECTED RESPONSES: " + str(self._expected_responses)) + logging.info("EXPECTED REQUESTS: " + str(self._expected_requests)) + response_status = 200 + else: + response_status = 400 + self.send_response(response_status) + self._set_headers() + + def rest_method(self,method): + expected_response = self._get_response_by_endpoint(self.path,method) + if expected_response: + self.send_response(expected_response["responseCode"]) + self._set_headers() + self.wfile.write(json.dumps(expected_response["body"]).encode("utf-8")) + else: + response_body = "{\"message:\" \"no response for endpoint\"}" + self.send_response(400) + self._set_headers() + self.wfile.write(json.dumps(response_body).encode("utf-8")) def _get_request_body(self): content_len = int(self.headers['Content-Length'], 0) @@ -103,9 +108,9 @@ class SOHandler(BaseHTTPRequestHandler): self.send_header('Content-Type', 'application/json') self.end_headers() - def _get_response_by_path(self): + def _get_response_by_endpoint(self, endpoint, method): for response in self._responses: - if response["path"] == self.path: + if response["path"] == endpoint and response["method"] == method: return response def _does_path_exist_as_endpoint(self): |