You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
deftest_approx_dict_equal(): # This tests passes!assert {'a': 1, 'c': 3} ==pytest.approx({'a': 1, 'c': 3})
deftest_approx_dict_ordered(): # This tests fails as expected and return CORRECT outputassert {'a': 1, 'c': 5} ==pytest.approx({'a': 1, 'c': 3})
deftest_approx_dict_unordered(): # This tests fails as expected and return WRONG outputassert {'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 =========================================
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
and the output I get from the two failing tests is: