From 21d811135b002f1027471d102c3dd5cab1b8227e Mon Sep 17 00:00:00 2001
From: Patrick Lannigan
Date: Sat, 11 Nov 2023 14:18:30 -0500
Subject: [PATCH] User fine grained verbosity for saferepr max size
---
src/_pytest/assertion/rewrite.py | 5 ++++-
testing/test_assertrewrite.py | 6 ++++--
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/_pytest/assertion/rewrite.py b/src/_pytest/assertion/rewrite.py
index 258ed9f9a..149101e71 100644
--- a/src/_pytest/assertion/rewrite.py
+++ b/src/_pytest/assertion/rewrite.py
@@ -426,7 +426,10 @@ def _saferepr(obj: object) -> str:
def _get_maxsize_for_saferepr(config: Optional[Config]) -> Optional[int]:
"""Get `maxsize` configuration for saferepr based on the given config object."""
- verbosity = config.getoption("verbose") if config is not None else 0
+ if config is None:
+ verbosity = 0
+ else:
+ verbosity = config.get_verbosity(Config.VERBOSITY_ASSERTIONS)
if verbosity >= 2:
return None
if verbosity >= 1:
diff --git a/testing/test_assertrewrite.py b/testing/test_assertrewrite.py
index d3cd61444..a4d48b6fe 100644
--- a/testing/test_assertrewrite.py
+++ b/testing/test_assertrewrite.py
@@ -2056,13 +2056,15 @@ class TestReprSizeVerbosity:
)
def test_get_maxsize_for_saferepr(self, verbose: int, expected_size) -> None:
class FakeConfig:
- def getoption(self, name: str) -> int:
- assert name == "verbose"
+ def get_verbosity(self, verbosity_type: Optional[str] = None) -> int:
return verbose
config = FakeConfig()
assert _get_maxsize_for_saferepr(cast(Config, config)) == expected_size
+ def test_get_maxsize_for_saferepr_no_config(self) -> None:
+ assert _get_maxsize_for_saferepr(None) == DEFAULT_REPR_MAX_SIZE
+
def create_test_file(self, pytester: Pytester, size: int) -> None:
pytester.makepyfile(
f"""