tribuchet: building on jamie structuredAttrs is enabled Sourcing python-remove-tests-dir-hook Sourcing python-catch-conflicts-hook.sh Sourcing python-remove-bin-bytecode-hook.sh Sourcing pypa-build-hook Using pypaBuildPhase Sourcing python-runtime-deps-check-hook Using pythonRuntimeDepsCheckHook Sourcing pypa-install-hook Using pypaInstallPhase Sourcing python-imports-check-hook.sh Using pythonImportsCheckPhase Sourcing python-metadata-check-hook.sh Using pythonMetadataCheckPhase Sourcing python-namespaces-hook Sourcing python-catch-conflicts-hook.sh Sourcing pytest-check-hook Using pytestCheckPhase Running phase: unpackPhase unpacking source archive /nix/store/8ipw8skx7yb3pf6dw0nfj307dhff2rva-diff_cover-10.5.1.tar.gz source root is diff_cover-10.5.1 setting SOURCE_DATE_EPOCH to timestamp 315619200 of file "diff_cover-10.5.1/tests/test_violations_reporter.py" Running phase: patchPhase Running phase: updateAutotoolsGnuConfigScriptsPhase Running phase: configurePhase no configure script, doing nothing Running phase: buildPhase Executing pypaBuildPhase Creating a wheel... pypa build flags: --no-isolation --outdir dist/ --wheel * Getting build dependencies for wheel... * Building wheel... Successfully built diff_cover-10.5.1-py3-none-any.whl Finished creating a wheel... Finished executing pypaBuildPhase Running phase: pythonRuntimeDepsCheckHook Executing pythonRuntimeDepsCheck Checking runtime dependencies for diff_cover-10.5.1-py3-none-any.whl Finished executing pythonRuntimeDepsCheck Running phase: installPhase Executing pypaInstallPhase Successfully installed diff_cover-10.5.1-py3-none-any.whl Finished executing pypaInstallPhase Running phase: pythonOutputDistPhase Executing pythonOutputDistPhase Finished executing pythonOutputDistPhase Running phase: fixupPhase shrinking RPATHs of ELF executables and libraries in /nix/store/vk92wh3mqnabkdmnxwg8r1dmp2n98d4m-python3.14-diff-cover-10.5.1-dist checking for references to /build/ in /nix/store/vk92wh3mqnabkdmnxwg8r1dmp2n98d4m-python3.14-diff-cover-10.5.1-dist... patching script interpreter paths in /nix/store/vk92wh3mqnabkdmnxwg8r1dmp2n98d4m-python3.14-diff-cover-10.5.1-dist shrinking RPATHs of ELF executables and libraries in /nix/store/773jbwv4wrk93zli8vsba6m2jwgdmc0l-python3.14-diff-cover-10.5.1 checking for references to /build/ in /nix/store/773jbwv4wrk93zli8vsba6m2jwgdmc0l-python3.14-diff-cover-10.5.1... patching script interpreter paths in /nix/store/773jbwv4wrk93zli8vsba6m2jwgdmc0l-python3.14-diff-cover-10.5.1 stripping (with command strip and flags -S -p) in /nix/store/773jbwv4wrk93zli8vsba6m2jwgdmc0l-python3.14-diff-cover-10.5.1/lib /nix/store/773jbwv4wrk93zli8vsba6m2jwgdmc0l-python3.14-diff-cover-10.5.1/bin Rewriting #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.8/bin/python3.14 to #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.8 wrapping `/nix/store/773jbwv4wrk93zli8vsba6m2jwgdmc0l-python3.14-diff-cover-10.5.1/bin/diff-cover'... Rewriting #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.8/bin/python3.14 to #!/nix/store/xahxrjs30p3mw0a42bqg9ikgkikskw8m-python3-3.14.8 wrapping `/nix/store/773jbwv4wrk93zli8vsba6m2jwgdmc0l-python3.14-diff-cover-10.5.1/bin/diff-quality'... Executing pythonRemoveTestsDir Finished executing pythonRemoveTestsDir Running phase: installCheckPhase no Makefile or custom installCheckPhase, doing nothing Running phase: pythonCatchConflictsPhase Running phase: pythonRemoveBinBytecodePhase Running phase: pythonImportsCheckPhase Executing pythonImportsCheckPhase Check whether the following modules can be imported: diff_cover Running phase: pythonMetadataCheckPhase Executing pythonMetadataCheckPhase Running phase: pytestCheckPhase Executing pytestCheckPhase pytest flags: -m pytest -k not\ \(file_does_not_exist\)\ and\ not\ \(console\)\ and\ not\ \(test_html_with_external_css\)\ and\ not\ \(test_style_defs\) ============================= test session starts ============================== platform linux -- Python 3.14.8, pytest-9.1.1, pluggy-1.6.0 rootdir: /build/diff_cover-10.5.1 configfile: pyproject.toml plugins: datadir-1.8.0, mock-3.15.1, typeguard-4.6.0 collected 391 items / 25 deselected / 366 selected tests/test_clover_violations_reporter.py . [ 0%] tests/test_command_runner_missing_executable.py ...... [ 1%] tests/test_config_parser.py ...................... [ 7%] tests/test_diff_cover_main.py .. [ 8%] tests/test_diff_cover_tool.py .................. [ 13%] tests/test_diff_quality_main.py ................... [ 18%] tests/test_diff_reporter.py ......................................... [ 29%] tests/test_git_diff.py ........... [ 32%] tests/test_git_diff_file.py .... [ 33%] tests/test_git_path.py ..... [ 35%] tests/test_integration.py ............................FF.FFFF........ [ 46%] tests/test_java_violations_reporter.py .............. [ 50%] tests/test_report_generator.py ........................................ [ 61%] tests/test_snippets.py ......................... [ 68%] tests/test_util.py ...... [ 70%] tests/test_violations_reporter.py ...................................... [ 80%] ....................................................................... [100%] =================================== FAILURES =================================== _________ TestDiffQualityIntegration.test_added_file_pycodestyle_html __________ self = runbin = . at 0x7ffff43d6da0> patch_git_command = .Wrapper object at 0x7ffff4e1f380> def test_added_file_pycodestyle_html(self, runbin, patch_git_command): patch_git_command.set_stdout("git_diff_violations.txt") assert ( runbin( [ "--format", "html:dummy/diff_coverage.html", "--violations=pycodestyle", ] ) == 0 ) > compare_html("pycodestyle_violations_report.html", "dummy/diff_coverage.html") /build/diff_cover-10.5.1/tests/test_integration.py:602: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_html_path = 'pycodestyle_violations_report.html' html_report_path = 'dummy/diff_coverage.html', clear_inline_css = True def compare_html(expected_html_path, html_report_path, clear_inline_css=True): expected_file = open(expected_html_path, encoding="utf-8") html_report = open(html_report_path, encoding="utf-8") with expected_file, html_report: # The CSS is provided by pygments and changes fairly often. # Im ok with simply saying "There was css" # Perhaps I will eat these words html = clean_html(html_report.read(), clear_inline_css) expected = clean_html(expected_file.read(), clear_inline_css) > assert expected == html E assert '\n' == '\n' E E Skipping 3372 identical leading characters in diff, use -v to show E - lass="sd">"""A less messy function""" E + lass="sd">"""A less messy function""" E for char in spongebob: E if char in runbin = . at 0x7ffff43d41a0> patch_git_command = .Wrapper object at 0x7ffff4e1dfd0> def test_all_reports(self, runbin, patch_git_command): patch_git_command.set_stdout("git_diff_violations.txt") assert ( runbin( [ "--violations=pycodestyle", "--format", "html:dummy/diff_coverage.html," "json:dummy/diff_coverage.json," "markdown:dummy/diff_coverage.md", ] ) == 0 ) > compare_html("pycodestyle_violations_report.html", "dummy/diff_coverage.html") /build/diff_cover-10.5.1/tests/test_integration.py:618: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_html_path = 'pycodestyle_violations_report.html' html_report_path = 'dummy/diff_coverage.html', clear_inline_css = True def compare_html(expected_html_path, html_report_path, clear_inline_css=True): expected_file = open(expected_html_path, encoding="utf-8") html_report = open(html_report_path, encoding="utf-8") with expected_file, html_report: # The CSS is provided by pygments and changes fairly often. # Im ok with simply saying "There was css" # Perhaps I will eat these words html = clean_html(html_report.read(), clear_inline_css) expected = clean_html(expected_file.read(), clear_inline_css) > assert expected == html E assert '\n' == '\n' E E Skipping 3372 identical leading characters in diff, use -v to show E - lass="sd">"""A less messy function""" E + lass="sd">"""A less messy function""" E for char in spongebob: E if char in runbin = . at 0x7ffff4279640> patch_git_command = .Wrapper object at 0x7ffff44817f0> def test_added_file_pyflakes_html(self, runbin, patch_git_command): patch_git_command.set_stdout("git_diff_violations.txt") assert ( runbin( ["--violations=pyflakes", "--format", "html:dummy/diff_coverage.html"] ) == 0 ) > compare_html("pyflakes_violations_report.html", "dummy/diff_coverage.html") /build/diff_cover-10.5.1/tests/test_integration.py:648: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_html_path = 'pyflakes_violations_report.html' html_report_path = 'dummy/diff_coverage.html', clear_inline_css = True def compare_html(expected_html_path, html_report_path, clear_inline_css=True): expected_file = open(expected_html_path, encoding="utf-8") html_report = open(html_report_path, encoding="utf-8") with expected_file, html_report: # The CSS is provided by pygments and changes fairly often. # Im ok with simply saying "There was css" # Perhaps I will eat these words html = clean_html(html_report.read(), clear_inline_css) expected = clean_html(expected_file.read(), clear_inline_css) > assert expected == html E assert '\n' == '\n' E E Skipping 1654 identical leading characters in diff, use -v to show E - lass="sd">"""A less messy function""" E + lass="sd">"""A less messy function""" E for char in spongebob: E if char in runbin = . at 0x7ffff4279220> patch_git_command = .Wrapper object at 0x7ffff44834d0> def test_added_file_pylint_html(self, runbin, patch_git_command): patch_git_command.set_stdout("git_diff_violations.txt") assert ( runbin(["--violations=pylint", "--format", "html:dummy/diff_coverage.html"]) == 0 ) > compare_html("pylint_violations_report.html", "dummy/diff_coverage.html") /build/diff_cover-10.5.1/tests/test_integration.py:656: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_html_path = 'pylint_violations_report.html' html_report_path = 'dummy/diff_coverage.html', clear_inline_css = True def compare_html(expected_html_path, html_report_path, clear_inline_css=True): expected_file = open(expected_html_path, encoding="utf-8") html_report = open(html_report_path, encoding="utf-8") with expected_file, html_report: # The CSS is provided by pygments and changes fairly often. # Im ok with simply saying "There was css" # Perhaps I will eat these words html = clean_html(html_report.read(), clear_inline_css) expected = clean_html(expected_file.read(), clear_inline_css) > assert expected == html E assert '\n' == '\n' E E Skipping 3315 identical leading characters in diff, use -v to show E - lass="sd">"""A less messy function""" E + lass="sd">"""A less messy function""" E for char in spongebob: E if char in runbin = . at 0x7ffff427b530> patch_git_command = .Wrapper object at 0x7ffff44806e0> def test_fail_under_html(self, runbin, patch_git_command): patch_git_command.set_stdout("git_diff_violations.txt") assert ( runbin( [ "--violations=pylint", "--fail-under=80", "--format", "html:dummy/diff_coverage.html", ] ) == 1 ) > compare_html("pylint_violations_report.html", "dummy/diff_coverage.html") /build/diff_cover-10.5.1/tests/test_integration.py:671: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_html_path = 'pylint_violations_report.html' html_report_path = 'dummy/diff_coverage.html', clear_inline_css = True def compare_html(expected_html_path, html_report_path, clear_inline_css=True): expected_file = open(expected_html_path, encoding="utf-8") html_report = open(html_report_path, encoding="utf-8") with expected_file, html_report: # The CSS is provided by pygments and changes fairly often. # Im ok with simply saying "There was css" # Perhaps I will eat these words html = clean_html(html_report.read(), clear_inline_css) expected = clean_html(expected_file.read(), clear_inline_css) > assert expected == html E assert '\n' == '\n' E E Skipping 3315 identical leading characters in diff, use -v to show E - lass="sd">"""A less messy function""" E + lass="sd">"""A less messy function""" E for char in spongebob: E if char in runbin = . at 0x7ffff4279c70> patch_git_command = .Wrapper object at 0x7ffff4480830> def test_fail_under_pass_html(self, runbin, patch_git_command): patch_git_command.set_stdout("git_diff_violations.txt") assert ( runbin( [ "--violations=pylint", "--fail-under=40", "--format", "html:dummy/diff_coverage.html", ] ) == 0 ) > compare_html("pylint_violations_report.html", "dummy/diff_coverage.html") /build/diff_cover-10.5.1/tests/test_integration.py:686: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ expected_html_path = 'pylint_violations_report.html' html_report_path = 'dummy/diff_coverage.html', clear_inline_css = True def compare_html(expected_html_path, html_report_path, clear_inline_css=True): expected_file = open(expected_html_path, encoding="utf-8") html_report = open(html_report_path, encoding="utf-8") with expected_file, html_report: # The CSS is provided by pygments and changes fairly often. # Im ok with simply saying "There was css" # Perhaps I will eat these words html = clean_html(html_report.read(), clear_inline_css) expected = clean_html(expected_file.read(), clear_inline_css) > assert expected == html E assert '\n' == '\n' E E Skipping 3315 identical leading characters in diff, use -v to show E - lass="sd">"""A less messy function""" E + lass="sd">"""A less messy function""" E for char in spongebob: E if char in