diff --git a/changelog/10589.feature.rst b/changelog/10589.feature.rst new file mode 100644 index 000000000..b4828f1e0 --- /dev/null +++ b/changelog/10589.feature.rst @@ -0,0 +1,2 @@ +Allow users to override repr maxsize value (240) by defining +:envvar:`PYTEST_DEFAULT_REPR_MAX_SIZE` environment variable. diff --git a/doc/en/reference/reference.rst b/doc/en/reference/reference.rst index 7c7b99d81..3a00c0264 100644 --- a/doc/en/reference/reference.rst +++ b/doc/en/reference/reference.rst @@ -1145,6 +1145,11 @@ processes can inspect it, see :ref:`pytest current test env` for more informatio When set, pytest will print tracing and debug information. +.. envvar:: PYTEST_DEFAULT_REPR_MAX_SIZE + +Setting this would override the implicit 240 chars limit used for truncating +longer error messages. + .. envvar:: PYTEST_DISABLE_PLUGIN_AUTOLOAD When set, disables plugin auto-loading through :std:doc:`entry point packaging diff --git a/src/_pytest/_io/saferepr.py b/src/_pytest/_io/saferepr.py index 9f33fced6..c2560a1e8 100644 --- a/src/_pytest/_io/saferepr.py +++ b/src/_pytest/_io/saferepr.py @@ -1,3 +1,4 @@ +import os import pprint import reprlib from typing import Optional @@ -93,7 +94,7 @@ def safeformat(obj: object) -> str: # Maximum size of overall repr of objects to display during assertion errors. -DEFAULT_REPR_MAX_SIZE = 240 +DEFAULT_REPR_MAX_SIZE = int(os.environ.get("PYTEST_DEFAULT_REPR_MAX_SIZE", 240)) def saferepr(