-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Open
Labels
topic: rewriterelated to the assertion rewrite mechanismrelated to the assertion rewrite mechanismtype: bugproblem that needs to be addressedproblem that needs to be addressed
Description
Hey! Thanks for this great library!
I am using pytest.approx to compare between 2 dicts (which are not in the same order), whenever the 2 dicts are equal the asserts passes. but if only 1 element is wrong the assert fails (as expected) but the output message shows as if all values were different instead of printing only the wrong one.
pytest == 8.2.0
python == 3.11.7
Ubuntu == 20.04
def test_approx_dict_equal(): # This tests passes!
assert {'a': 1, 'c': 3} == pytest.approx({'a': 1, 'c': 3})
def test_approx_dict_ordered(): # This tests fails as expected and return CORRECT output
assert {'a': 1, 'c': 5} == pytest.approx({'a': 1, 'c': 3})
def test_approx_dict_unordered(): # This tests fails as expected and return WRONG output
assert {'c': 5, 'a': 1} == pytest.approx({'a': 1, 'c': 3})and the output I get from the two failing tests is:
================================================= short test summary info ==================================================
FAILED tests/test_debug_pytest.py::test_approx_dict_ordered - AssertionError: assert {'a': 1, 'c': 5} == approx({'a': 1 ± 1.0e-06, 'c': 3 ± 3.0e-06})
comparison failed. Mismatched elements: 1 / 2:
Max absolute difference: 2
Max relative difference: 0.6666666666666666
Index | Obtained | Expected
c | 5 | 3 ± 3.0e-06
FAILED tests/test_debug_pytest.py::test_approx_dict_unordered - AssertionError: assert {'c': 5, 'a': 1} == approx({'a': 1 ± 1.0e-06, 'c': 3 ± 3.0e-06})
comparison failed. Mismatched elements: 2 / 2:
Max absolute difference: 4
Max relative difference: 4.0
Index | Obtained | Expected
a | 1 | 1 ± 1.0e-06
c | 5 | 3 ± 3.0e-06
======================================== 2 failed, 1 passed, 4 deselected in 0.37s =========================================Metadata
Metadata
Assignees
Labels
topic: rewriterelated to the assertion rewrite mechanismrelated to the assertion rewrite mechanismtype: bugproblem that needs to be addressedproblem that needs to be addressed