<#17817 The `src/python/pants/core/goals/update_bu...
# github-notifications
q
#17817 The `src/python/pants/core/goals/update_build_files_test.py` `test_goal_rewrite_mode` test is flaky. Issue created by jsirois https://github.com/pantsbuild/pants/actions/runs/3700288585/jobs/6268697629#step:11:319 The failure shows dounle output similar to #17639:
Copy code
02:03:43.17 [ERROR] Completed: Run Pytest - src/python/pants/core/goals/update_build_files_test.py:tests failed (exit code 1).
============================= test session starts ==============================
collecting ... collected 31 items

src/python/pants/core/goals/update_build_files_test.py::test_goal_rewrite_mode FAILED [  3%]
src/python/pants/core/goals/update_build_files_test.py::test_goal_check_mode PASSED [  6%]
src/python/pants/core/goals/update_build_files_test.py::test_find_python_interpreter_constraints_from_lockfile PASSED [  9%]
src/python/pants/core/goals/update_build_files_test.py::test_black_fixer_fixes PASSED [ 12%]
src/python/pants/core/goals/update_build_files_test.py::test_black_fixer_noops PASSED [ 16%]
src/python/pants/core/goals/update_build_files_test.py::test_black_fixer_args PASSED [ 19%]
src/python/pants/core/goals/update_build_files_test.py::test_black_config PASSED [ 22%]
src/python/pants/core/goals/update_build_files_test.py::test_yapf_fixer_fixes PASSED [ 25%]
src/python/pants/core/goals/update_build_files_test.py::test_yapf_fixer_noops PASSED [ 29%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_noops[lines0] PASSED [ 32%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_noops[lines1] PASSED [ 35%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_noops[lines2] PASSED [ 38%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_noops[lines3] PASSED [ 41%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_noops[lines4] PASSED [ 45%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_noops[lines5] PASSED [ 48%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_rewrite[lines0-expected0] PASSED [ 51%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_rewrite[lines1-expected1] PASSED [ 54%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_rewrite[lines2-expected2] PASSED [ 58%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_target_types_rewrite[lines3-expected3] PASSED [ 61%]
src/python/pants/core/goals/update_build_files_test.py::test_determine_renamed_fields PASSED [ 64%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_noops[lines0] PASSED [ 67%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_noops[lines1] PASSED [ 70%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_noops[lines2] PASSED [ 74%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_noops[lines3] PASSED [ 77%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_noops[lines4] PASSED [ 80%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_noops[lines5] PASSED [ 83%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_noops[lines6] PASSED [ 87%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_rewrite[lines0-expected0] PASSED [ 90%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_rewrite[lines1-expected1] PASSED [ 93%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_rewrite[lines2-expected2] PASSED [ 96%]
src/python/pants/core/goals/update_build_files_test.py::test_rename_deprecated_field_types_rewrite[lines3-expected3] PASSED [100%]

=================================== FAILURES ===================================
____________________________ test_goal_rewrite_mode ____________________________

generic_goal_rule_runner = RuleRunner(build_root=/tmp/_BUILD_ROOTd37clm4k)

    def test_goal_rewrite_mode(generic_goal_rule_runner: RuleRunner) -> None:
        """Checks that we correctly write the changes and pipe fixers to each other."""
        generic_goal_rule_runner.write_files({"BUILD": "# line\n", "dir/BUILD": "# line 1\n# line 2\n"})
        result = generic_goal_rule_runner.run_goal_rule(UpdateBuildFilesGoal, args=["::"])
        assert result.exit_code == 0
>       assert result.stdout == dedent(
            """\
            Updated BUILD:
              - Add a new line
              - Reverse lines
            Updated dir/BUILD:
              - Add a new line
              - Reverse lines
            """
        )
E       AssertionError: assert equals failed
E         'Updated BUILD:\n  - Add a new   'Updated BUILD:\n  - Add a new  
E         line\n  - Reverse lines\nUpdate  line\n  - Reverse lines\nUpdate 
E         d dir/BUILD:\n  - Add a new lin  d dir/BUILD:\n  - Add a new lin 
E         e\n  - Reverse lines\nUpdated B  e\n  - Reverse lines\n'         
E         UILD:\n  - Add a new line\n  -                                   
E         Reverse lines\nUpdated dir/BUIL                                  
E         D:\n  - Add a new line\n  - Rev                                  
E         erse lines\n'

src/python/pants/core/goals/update_build_files_test.py:97: AssertionError
- generated xml file: /tmp/pants-sandbox-ofSP61/src.python.pants.core.goals.update_build_files_test.py.tests.xml -


=========================== short test summary info ============================
FAILED src/python/pants/core/goals/update_build_files_test.py::test_goal_rewrite_mode
======================== 1 failed, 30 passed in 28.27s =========================
I'm lazily suspecting there is an underlying engine issue here surrounding I/O given ... well, just the similarity to #17639. It would seem there is no way we have two higher level independent pieces of logic with a 2x bug. pantsbuild/pants