From aa5f0e9ba011933b76c6f78dfb4e1eec03f91c25 Mon Sep 17 00:00:00 2001 From: ASHNA-AGGARWAL-KEYSIGHT Date: Tue, 12 Jul 2022 11:02:44 +0530 Subject: [PATCH 01/13] python logging --- openapiart/common.py | 4 ++-- openapiart/generator.py | 13 ++++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/openapiart/common.py b/openapiart/common.py index e40061f1..1ac26912 100644 --- a/openapiart/common.py +++ b/openapiart/common.py @@ -155,10 +155,10 @@ class OpenApiBase(object): YAML = "yaml" DICT = "dict" - __slots__ = () + __slots__ = ("logger") def __init__(self): - pass + self.logger = logging.getLogger(self.__module__) def serialize(self, encoding=JSON): """Serialize the current object according to a specified encoding. diff --git a/openapiart/generator.py b/openapiart/generator.py index 67a4f54d..b8a19f40 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -604,7 +604,18 @@ def _write_api_class(self, methods, factories): self._write(1, '"""') self._write() self._write(1, "def __init__(self, **kwargs):") - self._write(2, "pass") + self._write(2, "self.logger = kwargs[\"logger\"] if \"logger\" in kwargs else None") + self._write(2, "self.loglevel = kwargs[\"loglevel\"] if \"loglevel\" in kwargs else logging.INFO") + self._write(2, "if self.logger is None:") + self._write(3, "self.logger = logging.getLogger(self.__module__)") + self._write(3, "self.logger.setLevel(self.loglevel)") + self._write(3, "formatter = logging.Formatter(fmt=\"%(asctime)s [%(name)s] [%(levelname)s] %(message)s\", \ + datefmt=\"%Y-%m-%d %H:%M:%S\")") + self._write(3, "sh = logging.StreamHandler(sys.stdout)") + self._write(3, "sh.setFormatter(formatter)") + self._write(3, "if len(self.logger.handlers) > 0:") + self._write(4, "del self.logger.handlers[:]") + self._write(3, "self.logger.addHandler(sh)") for method in methods: print("generating method %s" % method["name"]) From 02b9ef6722cebe860aad8d20126ac003d15b8cab Mon Sep 17 00:00:00 2001 From: ASHNA-AGGARWAL-KEYSIGHT Date: Wed, 13 Jul 2022 11:35:29 +0530 Subject: [PATCH 02/13] Update generator.py --- openapiart/generator.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/openapiart/generator.py b/openapiart/generator.py index b8a19f40..680dfa8b 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -604,13 +604,21 @@ def _write_api_class(self, methods, factories): self._write(1, '"""') self._write() self._write(1, "def __init__(self, **kwargs):") - self._write(2, "self.logger = kwargs[\"logger\"] if \"logger\" in kwargs else None") - self._write(2, "self.loglevel = kwargs[\"loglevel\"] if \"loglevel\" in kwargs else logging.INFO") + self._write( + 2, + 'self.logger = kwargs["logger"] if "logger" in kwargs else None', + ) + self._write( + 2, + 'self.loglevel = kwargs["loglevel"] if "loglevel" in kwargs else logging.INFO', + ) self._write(2, "if self.logger is None:") self._write(3, "self.logger = logging.getLogger(self.__module__)") self._write(3, "self.logger.setLevel(self.loglevel)") - self._write(3, "formatter = logging.Formatter(fmt=\"%(asctime)s [%(name)s] [%(levelname)s] %(message)s\", \ - datefmt=\"%Y-%m-%d %H:%M:%S\")") + self._write( + 3, + 'formatter = logging.Formatter(fmt="%(asctime)s [%(name)s] [%(levelname)s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S")', + ) self._write(3, "sh = logging.StreamHandler(sys.stdout)") self._write(3, "sh.setFormatter(formatter)") self._write(3, "if len(self.logger.handlers) > 0:") From 87f6f666617f1e2a042a52e382c4d1f2aed67c5e Mon Sep 17 00:00:00 2001 From: ASHNA-AGGARWAL-KEYSIGHT Date: Thu, 14 Jul 2022 12:36:08 +0530 Subject: [PATCH 03/13] Update generator.py --- openapiart/generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapiart/generator.py b/openapiart/generator.py index 680dfa8b..dea022ce 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -613,7 +613,7 @@ def _write_api_class(self, methods, factories): 'self.loglevel = kwargs["loglevel"] if "loglevel" in kwargs else logging.INFO', ) self._write(2, "if self.logger is None:") - self._write(3, "self.logger = logging.getLogger(self.__module__)") + self._write(3, "self.logger = logging.getLogger(self.__module__)") self._write(3, "self.logger.setLevel(self.loglevel)") self._write( 3, From 513d3c04c9c4e89ab0149111e7ff171f88774583 Mon Sep 17 00:00:00 2001 From: ASHNA-AGGARWAL-KEYSIGHT Date: Fri, 15 Jul 2022 12:25:22 +0530 Subject: [PATCH 04/13] Update common.py --- openapiart/common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openapiart/common.py b/openapiart/common.py index 1ac26912..77f4a2a2 100644 --- a/openapiart/common.py +++ b/openapiart/common.py @@ -145,6 +145,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head # content types return response else: + self.logger.debug('Status code: {} ; reason: {} ; data: {}'.format(response.status_code, response.reason, response.text)) raise Exception(response.status_code, yaml.safe_load(response.text)) From 96387f5faa759e97595dda0df071f0ee113e9910 Mon Sep 17 00:00:00 2001 From: ASHNA Date: Thu, 21 Jul 2022 16:41:21 +0530 Subject: [PATCH 05/13] Create test_log.py --- openapiart/tests/test_log.py | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 openapiart/tests/test_log.py diff --git a/openapiart/tests/test_log.py b/openapiart/tests/test_log.py new file mode 100644 index 00000000..3290d90e --- /dev/null +++ b/openapiart/tests/test_log.py @@ -0,0 +1,11 @@ +import pytest +import sys +import os + +sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "art")) +import sanity + +def test_log(): + sanity_api = sanity.api() + sanity_api.logger.info("Testing logger") + sanity_api.logger.debug("Testing logger") \ No newline at end of file From 50ed55fc1ee0debbf481b25de0329072df442720 Mon Sep 17 00:00:00 2001 From: ASHNA Date: Thu, 21 Jul 2022 16:45:30 +0530 Subject: [PATCH 06/13] Update test_log.py --- openapiart/tests/test_log.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openapiart/tests/test_log.py b/openapiart/tests/test_log.py index 3290d90e..695d2a63 100644 --- a/openapiart/tests/test_log.py +++ b/openapiart/tests/test_log.py @@ -5,7 +5,8 @@ sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "art")) import sanity + def test_log(): sanity_api = sanity.api() sanity_api.logger.info("Testing logger") - sanity_api.logger.debug("Testing logger") \ No newline at end of file + sanity_api.logger.debug("Testing logger") From bb224bbd81b71fa10f95d194e4ad1924595534d6 Mon Sep 17 00:00:00 2001 From: ASHNA Date: Wed, 27 Jul 2022 15:09:49 +0530 Subject: [PATCH 07/13] review comments --- openapiart/common.py | 1 + openapiart/tests/test_log.py | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/openapiart/common.py b/openapiart/common.py index 77f4a2a2..f3b92c6d 100644 --- a/openapiart/common.py +++ b/openapiart/common.py @@ -118,6 +118,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head data = payload.serialize() else: raise Exception("Type of payload provided is unknown") + self.logger.info("method: {}; url: {}; payload: {}".format(method, url, data)) response = self._session.request( method=method, url=url, diff --git a/openapiart/tests/test_log.py b/openapiart/tests/test_log.py index 695d2a63..5bb7ec6d 100644 --- a/openapiart/tests/test_log.py +++ b/openapiart/tests/test_log.py @@ -1,12 +1,18 @@ -import pytest -import sys -import os +import logging +import sys, os sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "art")) import sanity -def test_log(): - sanity_api = sanity.api() - sanity_api.logger.info("Testing logger") - sanity_api.logger.debug("Testing logger") +def test_log(api): + config = api.prefix_config() + config.a = "asdf" + config.b = 1.1 + config.c = 1 + config.required_object.e_a = 1.1 + config.required_object.e_b = 1.2 + config.d_values = [config.A, config.B, config.C] + config.level.l1_p1.l2_p1.l3_p1 = "test" + config.level.l1_p2.l4_p1.l1_p2.l4_p1.l1_p1.l2_p1.l3_p1 = "test" + api.set_config(config) From c3f2087a7cf4a5ac2485ef08213f94d3e208232d Mon Sep 17 00:00:00 2001 From: ASHNA Date: Thu, 28 Jul 2022 10:22:42 +0530 Subject: [PATCH 08/13] addressed review comments --- openapiart/common.py | 5 +++-- openapiart/generator.py | 8 ++++++++ openapiart/tests/test_log.py | 10 ++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/openapiart/common.py b/openapiart/common.py index f3b92c6d..74aba47b 100644 --- a/openapiart/common.py +++ b/openapiart/common.py @@ -118,7 +118,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head data = payload.serialize() else: raise Exception("Type of payload provided is unknown") - self.logger.info("method: {}; url: {}; payload: {}".format(method, url, data)) + self.logger.debug("Request call: method: {} || url: {} || payload: {}".format(method.upper(), url, data)) response = self._session.request( method=method, url=url, @@ -128,6 +128,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head # TODO: add a timeout here headers=headers, ) + self.logger.debug('Response: Status code: {} || reason: {}'.format(response.status_code, response.reason)) if response.ok: if "application/json" in response.headers["content-type"]: # TODO: we might want to check for utf-8 charset and decode @@ -146,7 +147,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head # content types return response else: - self.logger.debug('Status code: {} ; reason: {} ; data: {}'.format(response.status_code, response.reason, response.text)) + self.logger.debug('Response: Status code: {} || reason: {} || data: {}'.format(response.status_code, response.reason, response.text)) raise Exception(response.status_code, yaml.safe_load(response.text)) diff --git a/openapiart/generator.py b/openapiart/generator.py index dea022ce..824c7056 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -445,6 +445,10 @@ def close(self): request_property=rpc_method.request_property, ), ) + self._write( + 2, + """self._logger.debug(f"Request data: {req_obj}")""" + ) self._write(2, "stub = self._get_stub()") self._write( 2, @@ -457,6 +461,10 @@ def close(self): self._write(2, "response = json_format.MessageToDict(") self._write(3, "res_obj, preserving_proto_field_name=True") self._write(2, ")") + self._write( + 2, + """self._logger.debug(f"Response data: {response}")""" + ) self._write( 2, 'status_code_200 = response.get("status_code_200")' ) diff --git a/openapiart/tests/test_log.py b/openapiart/tests/test_log.py index 5bb7ec6d..0df41a7e 100644 --- a/openapiart/tests/test_log.py +++ b/openapiart/tests/test_log.py @@ -1,4 +1,4 @@ -import logging +import json import sys, os sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "art")) @@ -15,4 +15,10 @@ def test_log(api): config.d_values = [config.A, config.B, config.C] config.level.l1_p1.l2_p1.l3_p1 = "test" config.level.l1_p2.l4_p1.l1_p2.l4_p1.l1_p1.l2_p1.l3_p1 = "test" - api.set_config(config) + api.set_config(config) + + +def test_grpc_log(utils, grpc_api): + with open(utils.get_test_config_path("config.json")) as f: + payload = json.load(f) + result = grpc_api.set_config(payload) From 924b93a5de056e2b9e276e12fa7db78abb85ddd6 Mon Sep 17 00:00:00 2001 From: ASHNA Date: Thu, 28 Jul 2022 10:27:35 +0530 Subject: [PATCH 09/13] lint issue fix --- openapiart/generator.py | 8 +++----- openapiart/tests/test_log.py | 7 ++++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/openapiart/generator.py b/openapiart/generator.py index 824c7056..22255137 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -446,8 +446,7 @@ def close(self): ), ) self._write( - 2, - """self._logger.debug(f"Request data: {req_obj}")""" + 2, """self._logger.debug(f"Request data: {req_obj}")""" ) self._write(2, "stub = self._get_stub()") self._write( @@ -462,9 +461,8 @@ def close(self): self._write(3, "res_obj, preserving_proto_field_name=True") self._write(2, ")") self._write( - 2, - """self._logger.debug(f"Response data: {response}")""" - ) + 2, """self._logger.debug(f"Response data: {response}")""" + ) self._write( 2, 'status_code_200 = response.get("status_code_200")' ) diff --git a/openapiart/tests/test_log.py b/openapiart/tests/test_log.py index 0df41a7e..59a88a2c 100644 --- a/openapiart/tests/test_log.py +++ b/openapiart/tests/test_log.py @@ -1,5 +1,6 @@ import json -import sys, os +import sys +import os sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "art")) import sanity @@ -15,10 +16,10 @@ def test_log(api): config.d_values = [config.A, config.B, config.C] config.level.l1_p1.l2_p1.l3_p1 = "test" config.level.l1_p2.l4_p1.l1_p2.l4_p1.l1_p1.l2_p1.l3_p1 = "test" - api.set_config(config) + api.set_config(config) def test_grpc_log(utils, grpc_api): with open(utils.get_test_config_path("config.json")) as f: payload = json.load(f) - result = grpc_api.set_config(payload) + grpc_api.set_config(payload) From 4931839e995e2c8253a6e21fb30ebe42cbc4ea10 Mon Sep 17 00:00:00 2001 From: ASHNA Date: Thu, 28 Jul 2022 10:36:33 +0530 Subject: [PATCH 10/13] fixing issues --- openapiart/generator.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openapiart/generator.py b/openapiart/generator.py index 22255137..de27af53 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -446,7 +446,8 @@ def close(self): ), ) self._write( - 2, """self._logger.debug(f"Request data: {req_obj}")""" + 2, + """self._logger.debug("Request data: {}".format(req_obj))""", ) self._write(2, "stub = self._get_stub()") self._write( @@ -461,7 +462,8 @@ def close(self): self._write(3, "res_obj, preserving_proto_field_name=True") self._write(2, ")") self._write( - 2, """self._logger.debug(f"Response data: {response}")""" + 2, + """self._logger.debug("Response data: {}".format(response))""", ) self._write( 2, 'status_code_200 = response.get("status_code_200")' From a761b6067b1327fd0ed6680889d67c87aa9358b9 Mon Sep 17 00:00:00 2001 From: ASHNA Date: Thu, 28 Jul 2022 16:20:43 +0530 Subject: [PATCH 11/13] logger commit --- openapiart/common.py | 8 ++++---- openapiart/generator.py | 37 +++++++++++++++++++++++++++++++++--- openapiart/tests/test_log.py | 15 +++++++++++++++ 3 files changed, 53 insertions(+), 7 deletions(-) diff --git a/openapiart/common.py b/openapiart/common.py index 74aba47b..097ea4dc 100644 --- a/openapiart/common.py +++ b/openapiart/common.py @@ -89,7 +89,7 @@ def __init__(self, **kwargs): self.loglevel = kwargs["loglevel"] if "loglevel" in kwargs else logging.DEBUG if self.logger is None: stdout_handler = logging.StreamHandler(sys.stdout) - formatter = logging.Formatter(fmt="%(asctime)s [%(name)s] [%(levelname)s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S") + formatter = logging.Formatter(fmt="%(asctime)-8s %(levelname)-8s %(message)s", datefmt="%Y-%m-%d %H:%M:%S") formatter.converter = time.gmtime stdout_handler.setFormatter(formatter) self.logger = logging.Logger(self.__module__, level=self.loglevel) @@ -118,7 +118,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head data = payload.serialize() else: raise Exception("Type of payload provided is unknown") - self.logger.debug("Request call: method: {} || url: {} || payload: {}".format(method.upper(), url, data)) + self.logger.debug("Request call ==> Method: {} || url: {} || payload: {}".format(method.upper(), url, data)) response = self._session.request( method=method, url=url, @@ -128,7 +128,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head # TODO: add a timeout here headers=headers, ) - self.logger.debug('Response: Status code: {} || reason: {}'.format(response.status_code, response.reason)) + self.logger.debug('Response ==> Status code: {} || Error: {}'.format(response.status_code, response.reason)) if response.ok: if "application/json" in response.headers["content-type"]: # TODO: we might want to check for utf-8 charset and decode @@ -147,7 +147,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head # content types return response else: - self.logger.debug('Response: Status code: {} || reason: {} || data: {}'.format(response.status_code, response.reason, response.text)) + self.logger.error('Response ==> Status code: {} || reason: {} || data: {}'.format(response.status_code, response.reason, response.text)) raise Exception(response.status_code, yaml.safe_load(response.text)) diff --git a/openapiart/generator.py b/openapiart/generator.py index de27af53..f413c7a7 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -363,7 +363,7 @@ def __init__(self, **kwargs): self._loglevel = kwargs["loglevel"] if "loglevel" in kwargs else logging.DEBUG if self._logger is None: stdout_handler = logging.StreamHandler(sys.stdout) - formatter = logging.Formatter(fmt="%(asctime)s [%(name)s] [%(levelname)s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S") + formatter = logging.Formatter(fmt="%(asctime)-8s %(levelname)-8s %(message)s", datefmt="%Y-%m-%d %H:%M:%S") formatter.converter = time.gmtime stdout_handler.setFormatter(formatter) self._logger = logging.Logger(self.__module__, level=self._loglevel) @@ -433,6 +433,12 @@ def close(self): self._write( 1, "def %s(self, payload):" % rpc_method.method ) + self._write( + 2, + """self._logger.debug("Calling method: {}")""".format( + rpc_method.method + ), + ) self._write(2, "pb_obj = json_format.Parse(") self._write(3, "self._serialize_payload(payload),") self._write(3, "pb2.%s()" % rpc_method.request_class) @@ -499,6 +505,16 @@ def close(self): code=rsp_code ), ) + self._write( + 3, + """resp_code = response.get("status_code_{code}")""".format( + code=rsp_code + ), + ) + self._write( + 3, + """self._logger.error("response: {}".format(resp_code))""", + ) self._write( 3, """raise Exception({code}, response.get("status_code_{code}"))""".format( @@ -578,7 +594,12 @@ def _write_http_api_class(self, methods): self._write(0) self._write(2, "Return: %s" % method["response_type"]) self._write(2, '"""') - + self._write( + 2, + """self.logger.debug("Calling method ==> {}")""".format( + method["name"] + ), + ) self._write(2, "return self._transport.send_recv(") self._write(3, '"%s",' % method["http_method"]) self._write(3, '"%s",' % method["url"]) @@ -625,7 +646,7 @@ def _write_api_class(self, methods, factories): self._write(3, "self.logger.setLevel(self.loglevel)") self._write( 3, - 'formatter = logging.Formatter(fmt="%(asctime)s [%(name)s] [%(levelname)s] %(message)s", datefmt="%Y-%m-%d %H:%M:%S")', + 'formatter = logging.Formatter(fmt="%(asctime)-8s %(levelname)-8s %(message)s", datefmt="%Y-%m-%d %H:%M:%S")', ) self._write(3, "sh = logging.StreamHandler(sys.stdout)") self._write(3, "sh.setFormatter(formatter)") @@ -1451,6 +1472,11 @@ def _write_data_properties(self, schema, classname, choice_tuples): 2, "if isinstance(choice, (%s)) is False:" % (", ".join(choices)), ) + self._write( + 3, + """self.logger.error('choice must be of type: %s')""" + % (", ".join(choices)), + ) self._write( 3, "raise TypeError('choice must be of type: %s')" @@ -1497,6 +1523,11 @@ def _write_data_properties(self, schema, classname, choice_tuples): ) self._write(3, "self.%s = %s" % (name, name)) self._write(2, "else:") + self._write( + 3, + """self.logger.error(''%s must be an instance of %s')""" + % (name, restriction), + ) self._write( 3, "raise TypeError('%s must be an instance of %s')" diff --git a/openapiart/tests/test_log.py b/openapiart/tests/test_log.py index 59a88a2c..256bdc36 100644 --- a/openapiart/tests/test_log.py +++ b/openapiart/tests/test_log.py @@ -1,11 +1,26 @@ import json import sys import os +from .server import app sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "art")) import sanity +def test_log_info(): + api = sanity.api("http://127.0.0.1:{}".format(app.PORT)) + config = api.prefix_config() + config.a = "asdf" + config.b = 1.1 + config.c = 1 + config.required_object.e_a = 1.1 + config.required_object.e_b = 1.2 + config.d_values = [config.A, config.B, config.C] + config.level.l1_p1.l2_p1.l3_p1 = "test" + config.level.l1_p2.l4_p1.l1_p2.l4_p1.l1_p1.l2_p1.l3_p1 = "test" + api.set_config(config) + + def test_log(api): config = api.prefix_config() config.a = "asdf" From f19b8896ac1740760116e8ed461d5ebdd5d6fa64 Mon Sep 17 00:00:00 2001 From: ASHNA Date: Tue, 2 Aug 2022 13:27:14 +0530 Subject: [PATCH 12/13] Update test_log.py --- openapiart/tests/test_log.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/openapiart/tests/test_log.py b/openapiart/tests/test_log.py index 256bdc36..507f567d 100644 --- a/openapiart/tests/test_log.py +++ b/openapiart/tests/test_log.py @@ -16,8 +16,6 @@ def test_log_info(): config.required_object.e_a = 1.1 config.required_object.e_b = 1.2 config.d_values = [config.A, config.B, config.C] - config.level.l1_p1.l2_p1.l3_p1 = "test" - config.level.l1_p2.l4_p1.l1_p2.l4_p1.l1_p1.l2_p1.l3_p1 = "test" api.set_config(config) @@ -29,8 +27,6 @@ def test_log(api): config.required_object.e_a = 1.1 config.required_object.e_b = 1.2 config.d_values = [config.A, config.B, config.C] - config.level.l1_p1.l2_p1.l3_p1 = "test" - config.level.l1_p2.l4_p1.l1_p2.l4_p1.l1_p1.l2_p1.l3_p1 = "test" api.set_config(config) From bc43b339876bbef0da396fd27d132be21a67e7eb Mon Sep 17 00:00:00 2001 From: ASHNA Date: Wed, 3 Aug 2022 11:11:55 +0530 Subject: [PATCH 13/13] Addressed review comments --- openapiart/common.py | 9 ++++++--- openapiart/generator.py | 10 +++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/openapiart/common.py b/openapiart/common.py index 097ea4dc..b80b21f8 100644 --- a/openapiart/common.py +++ b/openapiart/common.py @@ -118,7 +118,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head data = payload.serialize() else: raise Exception("Type of payload provided is unknown") - self.logger.debug("Request call ==> Method: {} || url: {} || payload: {}".format(method.upper(), url, data)) + self.logger.debug("Request call: Method: {} ; url: {} ; payload: {}".format(method.upper(), url, data)) response = self._session.request( method=method, url=url, @@ -128,7 +128,7 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head # TODO: add a timeout here headers=headers, ) - self.logger.debug('Response ==> Status code: {} || Error: {}'.format(response.status_code, response.reason)) + self.logger.debug('Response: Status code: {} ; Error: {}'.format(response.status_code, response.reason)) if response.ok: if "application/json" in response.headers["content-type"]: # TODO: we might want to check for utf-8 charset and decode @@ -137,17 +137,20 @@ def send_recv(self, method, relative_url, payload=None, return_object=None, head if return_object is None: # if response type is not provided, return dictionary # instead of python object + self.logger.debug("Response data: {}".format(response_dict)) return response_dict else: + self.logger.debug("Response data: {}".format(return_object.deserialize(response_dict))) return return_object.deserialize(response_dict) elif "application/octet-stream" in response.headers["content-type"]: + self.logger.debug("Response data: {}".format(io.BytesIO(response.content))) return io.BytesIO(response.content) else: # TODO: for now, return bare response object for unknown # content types return response else: - self.logger.error('Response ==> Status code: {} || reason: {} || data: {}'.format(response.status_code, response.reason, response.text)) + self.logger.error('Response: Status code: {} ; reason: {} ; data: {}'.format(response.status_code, response.reason, response.text)) raise Exception(response.status_code, yaml.safe_load(response.text)) diff --git a/openapiart/generator.py b/openapiart/generator.py index f413c7a7..56bde7d5 100644 --- a/openapiart/generator.py +++ b/openapiart/generator.py @@ -476,6 +476,10 @@ def close(self): ) self._write(2, "if status_code_200 is not None:") if return_byte: + self._write( + 3, + """self._logger.debug("Response data: {}".format(io.BytesIO(res_obj.status_code_200)))""", + ) self._write( 3, "return io.BytesIO(res_obj.status_code_200)" ) @@ -497,6 +501,10 @@ def close(self): self._write(4, "status_code_200") self._write(3, ")") else: + self._write( + 3, + """self._logger.debug("Response data: {}".format(response.get("status_code_200")))""", + ) self._write(3, 'return response.get("status_code_200")') for rsp_code in rpc_method.bad_responses: self._write( @@ -596,7 +604,7 @@ def _write_http_api_class(self, methods): self._write(2, '"""') self._write( 2, - """self.logger.debug("Calling method ==> {}")""".format( + """self.logger.debug("Calling method: {}")""".format( method["name"] ), )