From 72a7cbeaea05f08d15c2b1d5a5519c5b0a2f0f2e Mon Sep 17 00:00:00 2001 From: Stanislav Zmiev Date: Sun, 12 Nov 2023 17:37:53 +0400 Subject: [PATCH] Fix custom_repr in mock.call objects --- devtools/pytest_plugin.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/devtools/pytest_plugin.py b/devtools/pytest_plugin.py index f80efd3..12ee75b 100644 --- a/devtools/pytest_plugin.py +++ b/devtools/pytest_plugin.py @@ -175,11 +175,12 @@ def pytest_terminal_summary() -> None: def custom_repr(value: Any) -> Any: - if isinstance(value, (list, tuple, set, frozenset)): + # This hack helps us handle mock.call objects + if type(value) in (list, tuple, set, frozenset): return value.__class__(map(custom_repr, value)) elif isinstance(value, dict): return value.__class__((custom_repr(k), custom_repr(v)) for k, v in value.items()) - if isinstance(value, Enum): + elif isinstance(value, Enum): return PlainRepr(f'{value.__class__.__name__}.{value.name}') else: return PlainRepr(repr(value))