Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

The pyrefly test fails

Đang mở
#533 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Ít trao đổi
Công nghệ
python
Lĩnh vực
testing-qa

Hướng nghiên cứu

Bắt đầu với tests/e2e/test_e2e_type_checking.py và tests/e2e/e2e_utils.py, sau đó kiểm tra filter_mutants_with_type_checker tại vị trí traceback báo cáo mutant bị thiếu. Chạy end-to-end test đang thất bại với Python 3.12 và pyrefly; được xem là hoàn tất khi lần chạy kiểm tra kiểu liên kết lỗi được báo cáo với một mutant và snapshot test chạy thành công.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

=============================================================================================== 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

Ngôn ngữ chính
Python
Star
1.5k
Fork
181
Merge trung bình
2 ngày 7 giờ
Pull request đã merge (30 ngày)
1

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của boxed/mutmut

Tất cả issue của boxed/mutmut

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.