From 4632df37a6e00b7b1b059e8f3f5cc9b4147b20ac Mon Sep 17 00:00:00 2001 From: Alex Adamson Date: Wed, 21 Nov 2018 14:29:08 -0500 Subject: [PATCH] Check that we can serialize the warning detail attr --- xdist/remote.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/xdist/remote.py b/xdist/remote.py index b0092e0..1faf3b2 100644 --- a/xdist/remote.py +++ b/xdist/remote.py @@ -218,7 +218,15 @@ def serialize_warning_message(warning_message): for attr_name in warning_message._WARNING_DETAILS: if attr_name in ("message", "category"): continue - result[attr_name] = getattr(warning_message, attr_name) + attr = getattr(warning_message, attr_name) + # Check if we can serialize the warning detail, marking `None` otherwise + # Note that we need to define the attr (even as `None`) to allow deserializing + try: + dumps(attr) + except DumpError: + result[attr_name] = None + else: + result[attr_name] = attr return result