from unittest import main, TestCase from pytest_caching_utils import _merged_lastfailed_content class TestPytestCachingUtils(TestCase): def test_merged_lastfailed_content_with_overlap(self) -> None: last_failed_source = { "tools/tests/test_foo.py::test_num1": True, "tools/tests/test_foo.py::test_num2": True, "tools/tests/test_bar.py::test_num1": True, } last_failed_dest = { "tools/tests/test_foo.py::test_num1": True, "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } last_failed_merged = { "tools/tests/test_foo.py::test_num1": True, "tools/tests/test_foo.py::test_num2": True, "tools/tests/test_bar.py::test_num1": True, "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } merged = _merged_lastfailed_content(last_failed_source, last_failed_dest) self.assertEqual(merged, last_failed_merged) def test_merged_lastfailed_content_without_overlap(self) -> None: last_failed_source = { "tools/tests/test_foo.py::test_num1": True, "tools/tests/test_foo.py::test_num2": True, "tools/tests/test_bar.py::test_num1": True, } last_failed_dest = { "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } last_failed_merged = { "tools/tests/test_foo.py::test_num1": True, "tools/tests/test_foo.py::test_num2": True, "tools/tests/test_bar.py::test_num1": True, "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } merged = _merged_lastfailed_content(last_failed_source, last_failed_dest) self.assertEqual(merged, last_failed_merged) def test_merged_lastfailed_content_with_empty_source(self) -> None: last_failed_source = { "": True, } last_failed_dest = { "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } last_failed_merged = { "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } merged = _merged_lastfailed_content(last_failed_source, last_failed_dest) self.assertEqual(merged, last_failed_merged) def test_merged_lastfailed_content_with_empty_dest(self) -> None: last_failed_source = { "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } last_failed_dest = { "": True, } last_failed_merged = { "tools/tests/test_car.py::test_num1": True, "tools/tests/test_car.py::test_num2": True, } merged = _merged_lastfailed_content(last_failed_source, last_failed_dest) self.assertEqual(merged, last_failed_merged) if __name__ == "__main__": main()