From 0394ebffee0b711c78fb81e4e057f6190a111250 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Sun, 14 Jul 2019 21:50:59 +0300 Subject: [PATCH] saferepr: Use an __init__ instead of setting attributes after construction This will be easier to type-check, and also somewhat clearer. --- src/_pytest/_io/saferepr.py | 13 +++++++------ testing/io/test_saferepr.py | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/_pytest/_io/saferepr.py b/src/_pytest/_io/saferepr.py index b5387d205..5a4c76b4b 100644 --- a/src/_pytest/_io/saferepr.py +++ b/src/_pytest/_io/saferepr.py @@ -22,6 +22,12 @@ class SafeRepr(reprlib.Repr): and includes information on exceptions raised during the call. """ + def __init__(self, maxsize): + super().__init__() + self.maxstring = maxsize + self.maxsize = maxsize + self.maxother = 160 + def repr(self, x): return self._callhelper(reprlib.Repr.repr, self, x) @@ -52,9 +58,4 @@ def saferepr(obj, maxsize=240): care to never raise exceptions itself. This function is a wrapper around the Repr/reprlib functionality of the standard 2.6 lib. """ - # review exception handling - srepr = SafeRepr() - srepr.maxstring = maxsize - srepr.maxsize = maxsize - srepr.maxother = 160 - return srepr.repr(obj) + return SafeRepr(maxsize).repr(obj) diff --git a/testing/io/test_saferepr.py b/testing/io/test_saferepr.py index f6abfe322..f005f0cc4 100644 --- a/testing/io/test_saferepr.py +++ b/testing/io/test_saferepr.py @@ -48,7 +48,7 @@ def test_exceptions(): def test_big_repr(): from _pytest._io.saferepr import SafeRepr - assert len(saferepr(range(1000))) <= len("[" + SafeRepr().maxlist * "1000" + "]") + assert len(saferepr(range(1000))) <= len("[" + SafeRepr(0).maxlist * "1000" + "]") def test_repr_on_newstyle():