Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

pytest approx wrong formatting return - printing all values as wrong. #12444

Copy link
Copy link
@natsala13

Description

@natsala13
Issue body actions

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 =========================================
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    topic: rewriterelated to the assertion rewrite mechanismrelated to the assertion rewrite mechanismtype: bugproblem that needs to be addressedproblem that needs to be addressed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.