maintain list of positional arguments as tuple

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
This commit is contained in:
fenn-cs 2021-10-13 23:41:42 +01:00
parent 5803d9999d
commit 57a0f76e1f
2 changed files with 3 additions and 7 deletions

View File

@ -297,7 +297,7 @@ class LogCallDeferredTests(TestCase):
self.assertThat(
f(4), succeeded(Equals(16)))
msg = logger.messages[0]
assertContainsFields(self, msg, {"args": {'arg_0': 4}})
assertContainsFields(self, msg, {"args": (4,)})
@capture_logging(
lambda self, logger:
@ -328,5 +328,5 @@ class LogCallDeferredTests(TestCase):
return base ** exp
self.assertThat(f(10, 2, message="an exponential function"), succeeded(Equals(100)))
msg = logger.messages[0]
assertContainsFields(self, msg, {"args": {'arg_0': 10, 'arg_1': 2}})
assertContainsFields(self, msg, {"args": (10, 2)})
assertContainsFields(self, msg, {"kwargs": {"message": "an exponential function"}})

View File

@ -335,11 +335,7 @@ def log_call_deferred(action_type):
kwargs = {k: bytes_to_unicode(True, kw[k]) for k in kw}
# Remove complex (unserializable) objects from positional args to
# prevent eliot from throwing errors when it attempts serialization
args = {
"arg_" + str(pos): bytes_to_unicode(True, a[pos])
for pos in range(len(a))
if is_json_serializable(a[pos])
}
args = tuple([a[pos] for pos in range(len(a)) if is_json_serializable(a[pos])])
with start_action(action_type=action_type, args=args, kwargs=kwargs).context():
# Use addActionFinish so that the action finishes when the
# Deferred fires.