Skip to content

Commit 1d2e50f

Browse files
authored
Merge pull request #9799 from pytest-dev/backport-9798-to-7.1.x
2 parents 6820ab2 + 78356dc commit 1d2e50f

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

AUTHORS

+1
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ Katerina Koukiou
185185
Keri Volans
186186
Kevin Cox
187187
Kevin J. Foley
188+
Kian Eliasi
188189
Kian-Meng Ang
189190
Kodi B. Arfer
190191
Kojo Idrissa

changelog/9726.bugfix.rst

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
An unnecessary ``numpy`` import inside :func:`pytest.approx` was removed.

src/_pytest/python_api.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,6 @@ def __repr__(self) -> str:
319319

320320
def _repr_compare(self, other_side: Sequence[float]) -> List[str]:
321321
import math
322-
import numpy as np
323322

324323
if len(self.expected) != len(other_side):
325324
return [
@@ -340,7 +339,7 @@ def _repr_compare(self, other_side: Sequence[float]) -> List[str]:
340339
abs_diff = abs(approx_value.expected - other_value)
341340
max_abs_diff = max(max_abs_diff, abs_diff)
342341
if other_value == 0.0:
343-
max_rel_diff = np.inf
342+
max_rel_diff = math.inf
344343
else:
345344
max_rel_diff = max(max_rel_diff, abs_diff / abs(other_value))
346345
different_ids.append(i)

testing/python/approx.py

+17-15
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,7 @@ def do_assert(lhs, rhs, expected_message, verbosity_level=0):
9292

9393

9494
class TestApprox:
95-
def test_error_messages(self, assert_approx_raises_regex):
96-
np = pytest.importorskip("numpy")
97-
95+
def test_error_messages_native_dtypes(self, assert_approx_raises_regex):
9896
assert_approx_raises_regex(
9997
2.0,
10098
1.0,
@@ -135,6 +133,22 @@ def test_error_messages(self, assert_approx_raises_regex):
135133
],
136134
)
137135

136+
# Specific test for comparison with 0.0 (relative diff will be 'inf')
137+
assert_approx_raises_regex(
138+
[0.0],
139+
[1.0],
140+
[
141+
r" comparison failed. Mismatched elements: 1 / 1:",
142+
rf" Max absolute difference: {SOME_FLOAT}",
143+
r" Max relative difference: inf",
144+
r" Index \| Obtained\s+\| Expected ",
145+
rf"\s*0\s*\| {SOME_FLOAT} \| {SOME_FLOAT} ± {SOME_FLOAT}",
146+
],
147+
)
148+
149+
def test_error_messages_numpy_dtypes(self, assert_approx_raises_regex):
150+
np = pytest.importorskip("numpy")
151+
138152
a = np.linspace(0, 100, 20)
139153
b = np.linspace(0, 100, 20)
140154
a[10] += 0.5
@@ -175,18 +189,6 @@ def test_error_messages(self, assert_approx_raises_regex):
175189
)
176190

177191
# Specific test for comparison with 0.0 (relative diff will be 'inf')
178-
assert_approx_raises_regex(
179-
[0.0],
180-
[1.0],
181-
[
182-
r" comparison failed. Mismatched elements: 1 / 1:",
183-
rf" Max absolute difference: {SOME_FLOAT}",
184-
r" Max relative difference: inf",
185-
r" Index \| Obtained\s+\| Expected ",
186-
rf"\s*0\s*\| {SOME_FLOAT} \| {SOME_FLOAT} ± {SOME_FLOAT}",
187-
],
188-
)
189-
190192
assert_approx_raises_regex(
191193
np.array([0.0]),
192194
np.array([1.0]),

0 commit comments

Comments
 (0)