diff --git a/xdist/remote.py b/xdist/remote.py index 091bde8..bee3471 100644 --- a/xdist/remote.py +++ b/xdist/remote.py @@ -182,7 +182,7 @@ def serialize_warning_message(warning_message): message_module = type(warning_message.message).__module__ message_class_name = type(warning_message.message).__name__ message_args = warning_message.message.args - message_str = None + message_str = str(warning_message.message) else: message_str = warning_message.message message_module = None diff --git a/xdist/workermanage.py b/xdist/workermanage.py index b607d4e..d6224a2 100644 --- a/xdist/workermanage.py +++ b/xdist/workermanage.py @@ -426,7 +426,10 @@ def unserialize_warning_message(data): if data["message_module"]: mod = importlib.import_module(data["message_module"]) cls = getattr(mod, data["message_class_name"]) - message = cls(*data["message_args"]) + try: + message = cls(*data["message_args"]) + except TypeError: + message = Warning(data["message_str"]) else: message = data["message_str"]