From b9f5714f02460120b6141244ce0896173ef8a43d Mon Sep 17 00:00:00 2001 From: Grzes Furga Date: Tue, 7 Aug 2018 14:06:14 +0200 Subject: [PATCH] Keeping the log record args as tuples. Fixes #313 --- googleads/util.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/googleads/util.py b/googleads/util.py index 83158969..5b8cff77 100644 --- a/googleads/util.py +++ b/googleads/util.py @@ -217,16 +217,19 @@ def filter(self, record): d = dict(arg.value) if self._DEVELOPER_TOKEN in d: d[self._DEVELOPER_TOKEN] = self._REDACTED - record.args = list(record.args) - record.args[i] = suds.mx.Content(tag=self._REQUEST_HEADER, value=d) + args = list(record.args) + args[i] = suds.mx.Content(tag=self._REQUEST_HEADER, value=d) + record.args = tuple(args) + break if arg.tag == self._DEVELOPER_TOKEN: # Rather than modifying the argument directly, sets args to a modified # copy so that we don't overwrite the headers to be sent in the actual # request. - record.args = list(record.args) - record.args[i] = suds.mx.Content( + args = list(record.args) + args[i] = suds.mx.Content( tag=self._DEVELOPER_TOKEN, value=self._REDACTED) + record.args = tuple(args) break elif isinstance(arg, suds.sax.element.Element): if arg.name == self._REQUEST_HEADER: @@ -250,8 +253,9 @@ def filter(self, record): # Rather than modifying the argument directly, sets args to a # modified copy so that we don't overwrite the headers to be sent in # the actual request. - record.args = list(record.args) - record.args[i] = request_header + args = list(record.args) + args[i] = request_header + record.args = tuple(args) break return True @@ -275,16 +279,18 @@ def filter(self, record): d = dict(arg.value) if self._DEVELOPER_TOKEN in d: d[self._DEVELOPER_TOKEN] = self._REDACTED - record.args = list(record.args) - record.args[i] = suds.mx.Content(tag=self._REQUEST_HEADER, value=d) + args = list(record.args) + args[i] = suds.mx.Content(tag=self._REQUEST_HEADER, value=d) + record.args = tuple(args) break if arg.tag == self._DEVELOPER_TOKEN: # Rather than modifying the argument directly, sets args to a modified # copy so that we don't overwrite the headers to be sent in the actual # request. - record.args = list(record.args) - record.args[i] = suds.mx.Content(tag=self._DEVELOPER_TOKEN, + args = list(record.args) + args[i] = suds.mx.Content(tag=self._DEVELOPER_TOKEN, value=self._REDACTED) + record.args = tuple(args) break return True