Skip to content

Fails with pytest 8.0?

_________________________________________________________ test_all_tools_are_listed __________________________________________________________

    def test_all_tools_are_listed():
        # Note the ordering of this test (see: f1d744da16)
        from diffoscope.comparators import ComparatorManager
        from diffoscope.external_tools import EXTERNAL_TOOLS
        from diffoscope.tools import tool_required
    
        ComparatorManager().reload()
    
        tools = set(tool_required.all)
    
        for x in tools:
            if x not in EXTERNAL_TOOLS:
>               pytest.fail(f"{x} is not present in EXTERNAL_TOOLS")
E               Failed: nonexistent is not present in EXTERNAL_TOOLS
  • This comes from tests/comparators/test_binary.py.
  • Just need to test "tests/comparators/test_binary.py::test_with_compare_details_and_tool_not_found tests/test_tools.py::test_all_tools_are_listed", in that order.
  • Don't quite understand this, as monkeypatch is explicitly meant to be undone after the function exits.
  • Especially don't understand this as even manually removing nonexistent from the dict still causes the error (!)

Discovered via job #5372333.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information