The pyrefly test fails
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
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của boxed/mutmut
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
`run` with a `name__mutmut_*` pattern runs the whole test suite in the clean-test checkCó thể đã có người làm @Ishaan400 đã nhận 8 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
Invalid unary plus generated in match statementCó thể đã có người làm @GhostCoder6969 đã nhận 17 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
What do the emoji's mean?Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
aws-samples/sample-per-model-bedrock#295 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 76/100
pyrevitlabs/pyRevit#3792 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
zephyrproject-rtos/reqmgmt#177 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
polarsource/polar#15580 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[开源推荐] Windows 系统维护工具箱,支持后台任务队列Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
521xueweihan/HelloGitHub#4011 ·