This commit is contained in:
Patrick Kenny 2024-07-03 15:37:52 +02:00 committed by GitHub
commit 8c3c72167f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 8 additions and 1 deletions

View File

@ -318,6 +318,7 @@ Ondřej Súkup
Oscar Benjamin
Parth Patel
Patrick Hayes
Patrick Kenny
Patrick Lannigan
Paul Müller
Paul Reece

View File

@ -0,0 +1 @@
Fixes issue where nested data structures of different types did not raise an error with ``approx``.

View File

@ -376,7 +376,9 @@ class ApproxSequenceLike(ApproxBase):
def _check_type(self) -> None:
__tracebackhide__ = True
for index, x in enumerate(self.expected):
if isinstance(x, type(self.expected)):
if (isinstance(x, Collection) or isinstance(x, Mapping)) and not isinstance(
x, str
):
msg = "pytest.approx() does not support nested data structures: {!r} at index {}\n full sequence: {}"
raise TypeError(msg.format(x, index, pprint.pformat(self.expected)))

View File

@ -841,6 +841,9 @@ class TestApprox:
"x, name",
[
pytest.param([[1]], "data structures", id="nested-list"),
pytest.param([(1,)], "data structures", id="nested-list-tuple"),
pytest.param([{1}], "data structures", id="nested-list-set"),
pytest.param([{"key": 1}], "data structures", id="nested-list-dict"),
pytest.param({"key": {"key": 1}}, "dictionaries", id="nested-dict"),
],
)