=============================================================================================== FAILURES ===============================================================================================
______________________________________________________________________________ test_type_checking_pyrefly_result_snapshot ______________________________________________________________________________
def test_type_checking_pyrefly_result_snapshot():
> assert run_mutmut_on_project("type_checking") == snapshot(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
{
"mutants/src/type_checking/__init__.py.meta": {
"type_checking.x_hello__mutmut_1": 37,
"type_checking.x_hello__mutmut_2": 1,
"type_checking.x_hello__mutmut_3": 1,
"type_checking.x_hello__mutmut_4": 1,
"type_checking.x_a_hello_wrapper__mutmut_1": 37,
"type_checking.x_a_hello_wrapper__mutmut_2": 0,
"type_checking.xǁPersonǁset_name__mutmut_1": 37,
"type_checking.xǁPersonǁcreate__mutmut_1": 37,
"type_checking.xǁPersonǁcreate__mutmut_2": 37,
"type_checking.xǁEmployeeǁ__init____mutmut_1": 0,
"type_checking.xǁEmployeeǁ__init____mutmut_2": 0,
"type_checking.xǁEmployeeǁ__init____mutmut_3": 0,
"type_checking.xǁEmployeeǁ__init____mutmut_4": 37,
"type_checking.xǁEmployeeǁset_number__mutmut_1": 37,
"type_checking.xǁEmployeeǁnew__mutmut_1": 37,
"type_checking.xǁEmployeeǁnew__mutmut_2": 37,
"type_checking.xǁColorǁis_primary__mutmut_1": 33,
"type_checking.xǁColorǁdarken__mutmut_1": 37,
"type_checking.xǁColorǁdarken__mutmut_2": 0,
"type_checking.xǁColorǁdarken__mutmut_3": 37,
"type_checking.xǁColorǁdarken__mutmut_4": 0,
"type_checking.xǁColorǁget_next_color__mutmut_1": 37,
"type_checking.xǁColorǁget_next_color__mutmut_2": 0,
"type_checking.xǁColorǁget_next_color__mutmut_3": 37,
"type_checking.xǁColorǁget_next_color__mutmut_4": 37,
"type_checking.xǁColorǁget_next_color__mutmut_5": 0,
"type_checking.xǁColorǁget_next_color__mutmut_6": 0,
"type_checking.xǁColorǁto_index__mutmut_1": 37,
"type_checking.xǁColorǁto_index__mutmut_2": 37,
"type_checking.xǁColorǁto_index__mutmut_3": 37,
"type_checking.xǁColorǁto_index__mutmut_4": 0,
"type_checking.xǁColorǁto_index__mutmut_5": 0,
"type_checking.xǁColorǁto_index__mutmut_6": 0,
"type_checking.xǁColorǁfrom_index__mutmut_1": 0,
"type_checking.xǁColorǁfrom_index__mutmut_2": 0,
"type_checking.xǁColorǁcreate__mutmut_1": 1,
"type_checking.x_mutate_me__mutmut_1": 37,
"type_checking.x_mutate_me__mutmut_2": 37,
"type_checking.x_mutate_me__mutmut_3": 1,
"type_checking.x_mutate_me__mutmut_4": 1,
"type_checking.x_mutate_me__mutmut_5": 37,
}
}
)
tests/e2e/test_e2e_type_checking.py:7:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/e2e/e2e_utils.py:69: in run_mutmut_on_project
_run([], None)
../stage/usr/local/lib/python3.12/site-packages/mutmut/__main__.py:1031: in _run
mutants_caught_by_type_checker = filter_mutants_with_type_checker()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def filter_mutants_with_type_checker() -> dict[str, FailedTypeCheckMutant]:
with change_cwd(Path("mutants")):
errors = run_type_checker(Config.get().type_check_command)
errors_by_path = group_by_path(errors)
mutants_to_skip: dict[str, FailedTypeCheckMutant] = {}
for path, errors_of_file in errors_by_path.items():
with open(path, encoding="utf-8") as file:
source = file.read()
wrapper = cst.MetadataWrapper(cst.parse_module(source))
visitor = MutatedMethodsCollector(path)
wrapper.visit(visitor)
mutated_methods = visitor.found_mutants
for error in errors_of_file:
assert error.file_path == visitor.file
mutant = next(
(m for m in mutated_methods if m.line_number_start <= error.line_number <= m.line_number_end), None
)
if mutant is None:
> raise Exception(
f"Could not find mutant for type error {error.file_path}:{error.line_number} ({error.error_description}). \n"
"Probably, a code mutation influenced types in unexpected locations. \n"
"If your project normally has no type errors and uses mypy/pyrefly, please file an issue with steps to reproduce on github.\n"
)
E Exception: Could not find mutant for type error /usr/ports/devel/py-mutmut/work-py312/mutmut-3.6.0/e2e_projects/type_checking/mutants/src/type_checking/__init__.py:217 (Returned type `Color` is not assignable to declared return type `Self@Color`).
E Probably, a code mutation influenced types in unexpected locations.
E If your project normally has no type errors and uses mypy/pyrefly, please file an issue with steps to reproduce on github.
../stage/usr/local/lib/python3.12/site-packages/mutmut/mutation/file_mutation.py:494: Exception
----------------------------------------------------------------------------------------- Captured stdout call -----------------------------------------------------------------------------------------
⠋ Generating mutants
also copying tests
also copying test
also copying setup.cfg
also copying pyproject.toml
src/type_checking/__init__.py
done in 157ms (1 files mutated, 0 ignored, 0 unmodified)
⠙ Filtering mutations with type checker
=========================================================================================== warnings summary ===========================================================================================
Version: 3.6.0
Python-3.12
FreeBSD 15.1 STABLE