Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 919571 Details for
Bug 950013
dev-util/diff-cover-9.2.0 fails test - [gcc-15] E assert <!DOCTYPE html PUBLIC -/.../DTD HTML 4.01/.../EN http:/.../strict.dtd>\n<html>\n <head>\n <meta http-equiv=\Conte
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
dev-util:diff-cover-9.2.0:20250220-161844.log
dev-util:diff-cover-9.2.0:20250220-161844.log (text/plain), 94.24 KB, created by
Toralf Förster
on 2025-02-20 18:57:03 UTC
(
hide
)
Description:
dev-util:diff-cover-9.2.0:20250220-161844.log
Filename:
MIME Type:
Creator:
Toralf Förster
Created:
2025-02-20 18:57:03 UTC
Size:
94.24 KB
patch
obsolete
> * Package: dev-util/diff-cover-9.2.0:0 > * Repository: gentoo > * Maintainer: williamh@gentoo.org > * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_12 test > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox > >>>> Unpacking source... >>>> Unpacking diff-cover-9.2.0.gh.tar.gz to /var/tmp/portage/dev-util/diff-cover-9.2.0/work >>>> Source unpacked in /var/tmp/portage/dev-util/diff-cover-9.2.0/work >>>> Preparing source in /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0 ... > * Build system packages: > * dev-python/gpep517 : 16 > * dev-python/installer : 0.7.0 > * dev-python/poetry-core : 2.1.1 >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0 ... > * python3_12: running distutils-r1_run_phase distutils-r1_python_compile > * Building the wheel for diff_cover-9.2.0 via poetry.core.masonry.api >python3.12 -m gpep517 build-wheel --prefix=/usr --backend poetry.core.masonry.api --output-fd 3 --wheel-dir /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/wheel >2025-02-20 16:19:37,862 gpep517 INFO Building wheel via backend poetry.core.masonry.api >2025-02-20 16:19:37,984 poetry.core.factory WARNING The "poetry.dev-dependencies" section is deprecated and will be removed in a future version. Use "poetry.group.dev.dependencies" instead. >2025-02-20 16:19:38,121 poetry.core.masonry.builders.wheel INFO Building wheel >2025-02-20 16:19:38,185 poetry.core.masonry.builders.wheel INFO Built diff_cover-9.2.0-py3-none-any.whl >2025-02-20 16:19:38,185 gpep517 INFO The backend produced /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/wheel/diff_cover-9.2.0-py3-none-any.whl > * Installing diff_cover-9.2.0-py3-none-any.whl to /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/install >python3.12 -m gpep517 install-wheel --destdir=/var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/install --interpreter=/usr/bin/python3.12 --prefix=/usr --optimize=all /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/wheel/diff_cover-9.2.0-py3-none-any.whl >2025-02-20 16:19:38,417 gpep517 INFO Installing /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/wheel/diff_cover-9.2.0-py3-none-any.whl into /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/install >2025-02-20 16:19:38,537 gpep517 INFO Installation complete >>>> Source compiled. >>>> Test phase: dev-util/diff-cover-9.2.0 > * python3_12: running distutils-r1_run_phase python_test >python3.12 -m pytest -vv -ra -l -Wdefault -Werror::pytest.PytestUnhandledCoroutineWarning --color=no -o console_output_style=count -o tmp_path_retention_count=0 -o tmp_path_retention_policy=failed -p no:cov -p no:flake8 -p no:flakes -p no:pylint -p no:markdown -p no:sugar -p no:xvfb -p no:pytest-describe -p no:plus -p no:tavern -p no:salt-factories >/usr/lib/python3.12/site-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. >The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" > > warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) >============================= test session starts ============================== >platform linux -- Python 3.12.9, pytest-8.3.4, pluggy-1.5.0 -- /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0-python3_12/install/usr/bin/python3.12 >cachedir: .pytest_cache >tempdir: /var/tmp/portage/dev-util/diff-cover-9.2.0/temp/diff_cover-9.2.0 >hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0/.hypothesis/examples')) >rootdir: /var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0 >configfile: pyproject.toml >plugins: mock-3.14.0, xdist-3.6.1, pkgcore-0.12.29, flexmock-0.12.2, anyio-4.8.0, respx-0.22.0, tempdir-2019.10.12, forked-1.6.0, hypothesis-6.125.3, datadir-1.6.1, subtests-0.14.1, httpx-0.35.0, pytest_httpserver-1.1.1, asyncio-0.25.3, betamax-0.9.0, Faker-36.1.1, xprocess-1.0.2, httpbin-2.1.0, flaky-3.8.1, lazy-fixtures-1.1.2, expect-1.1.0, subprocess-1.5.3, jaraco.test-5.5.1, regressions-2.7.0, snapshottest-0.6.0, home-0.6.0, pytest_codeblocks-0.17.0 >asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None >collecting ... collected 299 items > >tests/test_clover_violations_reporter.py::test_get_src_path_clover PASSED [ 1/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_no_toml_file[Tool.DIFF_COVER] PASSED [ 2/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_no_toml_file[Tool.DIFF_QUALITY] PASSED [ 3/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_but_no_tomli_installed[Tool.DIFF_COVER] PASSED [ 4/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_but_no_tomli_installed[Tool.DIFF_QUALITY] PASSED [ 5/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_but_no_data[Tool.DIFF_COVER-] PASSED [ 6/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_but_no_data[Tool.DIFF_COVER-[tool.diff_quality]] PASSED [ 7/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_but_no_data[Tool.DIFF_QUALITY-] PASSED [ 8/299] >tests/test_config_parser.py::TestTOMLParser::test_parse_but_no_data[Tool.DIFF_COVER-[tool.diff_cover]] PASSED [ 9/299] >tests/test_config_parser.py::TestTOMLParser::test_parse[Tool.DIFF_COVER-[tool.diff_cover]\nquiet=true-expected0] PASSED [ 10/299] >tests/test_config_parser.py::TestTOMLParser::test_parse[Tool.DIFF_QUALITY-[tool.diff_quality]\nquiet=true-expected1] PASSED [ 11/299] >tests/test_config_parser.py::test_get_config_unrecognized_file[Tool.DIFF_COVER] PASSED [ 12/299] >tests/test_config_parser.py::test_get_config_unrecognized_file[Tool.DIFF_QUALITY] PASSED [ 13/299] >tests/test_config_parser.py::test_get_config[Tool.DIFF_COVER-cli_config0-defaults0-None-expected0] PASSED [ 14/299] >tests/test_config_parser.py::test_get_config[Tool.DIFF_QUALITY-cli_config1-defaults1-None-expected1] PASSED [ 15/299] >tests/test_config_parser.py::test_get_config[Tool.DIFF_COVER-cli_config2-defaults2-[tool.diff_cover]\na=1\nd=6-expected2] PASSED [ 16/299] >tests/test_diff_cover_main.py::test_parse_coverage_file PASSED [ 17/299] >tests/test_diff_cover_main.py::test_parse_range_notation PASSED [ 18/299] >tests/test_diff_cover_tool.py::test_parse_with_html_report PASSED [ 19/299] >tests/test_diff_cover_tool.py::test_parse_with_no_report PASSED [ 20/299] >tests/test_diff_cover_tool.py::test_parse_with_multiple_reports PASSED [ 21/299] >tests/test_diff_cover_tool.py::test_parse_with_ignored_unstaged PASSED [ 22/299] >tests/test_diff_cover_tool.py::test_parse_invalid_arg PASSED [ 23/299] >tests/test_diff_cover_tool.py::test_parse_with_include PASSED [ 24/299] >tests/test_diff_cover_tool.py::test_parse_with_exclude PASSED [ 25/299] >tests/test_diff_quality_main.py::test_parse_with_html_report PASSED [ 26/299] >tests/test_diff_quality_main.py::test_parse_with_no_html_report PASSED [ 27/299] >tests/test_diff_quality_main.py::test_parse_with_one_input_report PASSED [ 28/299] >tests/test_diff_quality_main.py::test_parse_with_multiple_input_reports PASSED [ 29/299] >tests/test_diff_quality_main.py::test_parse_with_options PASSED [ 30/299] >tests/test_diff_quality_main.py::test_parse_with_ignored_unstaged PASSED [ 31/299] >tests/test_diff_quality_main.py::test_parse_invalid_arg PASSED [ 32/299] >tests/test_diff_quality_main.py::test_parse_with_exclude PASSED [ 33/299] >tests/test_diff_quality_main.py::test_parse_with_include PASSED [ 34/299] >tests/test_diff_quality_main.py::test_parse_diff_range_notation PASSED [ 35/299] >tests/test_diff_quality_main.py::test_parse_options PASSED [ 36/299] >tests/test_diff_quality_main.py::test_parse_options_without_quotes PASSED [ 37/299] >tests/test_diff_reporter.py::test_name PASSED [ 38/299] >tests/test_diff_reporter.py::test_name_compare_branch PASSED [ 39/299] >tests/test_diff_reporter.py::test_name_ignore_staged PASSED [ 40/299] >tests/test_diff_reporter.py::test_name_ignore_unstaged PASSED [ 41/299] >tests/test_diff_reporter.py::test_name_ignore_staged_and_unstaged PASSED [ 42/299] >tests/test_diff_reporter.py::test_name_include_untracked PASSED [ 43/299] >tests/test_diff_reporter.py::test_git_path_selection[include0-exclude0-expected0] PASSED [ 44/299] >tests/test_diff_reporter.py::test_git_path_selection[include1-exclude1-expected1] PASSED [ 45/299] >tests/test_diff_reporter.py::test_git_path_selection[include2-exclude2-expected2] PASSED [ 46/299] >tests/test_diff_reporter.py::test_git_path_selection[include3-exclude3-expected3] PASSED [ 47/299] >tests/test_diff_reporter.py::test_git_path_selection[include4-exclude4-expected4] PASSED [ 48/299] >tests/test_diff_reporter.py::test_git_source_paths PASSED [ 49/299] >tests/test_diff_reporter.py::test_git_source_paths_with_space PASSED [ 50/299] >tests/test_diff_reporter.py::test_duplicate_source_paths PASSED [ 51/299] >tests/test_diff_reporter.py::test_git_source_paths_with_supported_extensions PASSED [ 52/299] >tests/test_diff_reporter.py::test_git_lines_changed PASSED [ 53/299] >tests/test_diff_reporter.py::test_ignore_lines_outside_src PASSED [ 54/299] >tests/test_diff_reporter.py::test_one_line_file PASSED [ 55/299] >tests/test_diff_reporter.py::test_git_deleted_lines PASSED [ 56/299] >tests/test_diff_reporter.py::test_git_unicode_filename PASSED [ 57/299] >tests/test_diff_reporter.py::test_git_repeat_lines PASSED [ 58/299] >tests/test_diff_reporter.py::test_git_overlapping_lines PASSED [ 59/299] >tests/test_diff_reporter.py::test_git_line_within_hunk PASSED [ 60/299] >tests/test_diff_reporter.py::test_inter_diff_conflict PASSED [ 61/299] >tests/test_diff_reporter.py::test_git_no_such_file PASSED [ 62/299] >tests/test_diff_reporter.py::test_no_diff PASSED [ 63/299] >tests/test_diff_reporter.py::test_git_diff_error PASSED [ 64/299] >tests/test_diff_reporter.py::test_plus_sign_in_hunk_bug PASSED [ 65/299] >tests/test_diff_reporter.py::test_terminating_chars_in_hunk PASSED [ 66/299] >tests/test_diff_reporter.py::test_merge_conflict_diff PASSED [ 67/299] >tests/test_diff_reporter.py::test_inclusion_list PASSED [ 68/299] >tests/test_diff_reporter.py::test_ignore_staged_inclusion PASSED [ 69/299] >tests/test_diff_reporter.py::test_ignore_unstaged_inclusion PASSED [ 70/299] >tests/test_diff_reporter.py::test_ignore_staged_and_unstaged_inclusion PASSED [ 71/299] >tests/test_diff_reporter.py::test_fnmatch PASSED [ 72/299] >tests/test_diff_reporter.py::test_fnmatch_returns_the_default_with_empty_default PASSED [ 73/299] >tests/test_diff_reporter.py::test_include_untracked PASSED [ 74/299] >tests/test_diff_reporter.py::test_include_untracked__not_valid_path__not_include_it[excluded0-supported_extensions0-file.bin] PASSED [ 75/299] >tests/test_diff_reporter.py::test_include_untracked__not_valid_path__not_include_it[excluded1-supported_extensions1-file.bin] PASSED [ 76/299] >tests/test_diff_reporter.py::test_name_with_default_range PASSED [ 77/299] >tests/test_diff_reporter.py::test_name_different_range PASSED [ 78/299] >tests/test_git_diff.py::test_diff_committed PASSED [ 79/299] >tests/test_git_diff.py::test_diff_unstaged PASSED [ 80/299] >tests/test_git_diff.py::test_diff_staged PASSED [ 81/299] >tests/test_git_diff.py::test_diff_missing_branch_error PASSED [ 82/299] >tests/test_git_diff.py::test_diff_committed_compare_branch PASSED [ 83/299] >tests/test_git_diff.py::test_errors PASSED [ 84/299] >tests/test_git_diff.py::test_untracked[-expected0] PASSED [ 85/299] >tests/test_git_diff.py::test_untracked[\n-expected1] PASSED [ 86/299] >tests/test_git_diff.py::test_untracked[a.py\n-expected2] PASSED [ 87/299] >tests/test_git_diff.py::test_untracked[a.py\nb.py\n-expected3] PASSED [ 88/299] >tests/test_git_diff_file.py::test_diff_file_not_found PASSED [ 89/299] >tests/test_git_diff_file.py::test_large_diff_file PASSED [ 90/299] >tests/test_git_diff_file.py::test_diff_committed PASSED [ 91/299] >tests/test_git_diff_file.py::test_empty_diff_file PASSED [ 92/299] >tests/test_git_path.py::test_project_root_command PASSED [ 93/299] >tests/test_git_path.py::test_relative_path PASSED [ 94/299] >tests/test_git_path.py::test_absolute_path PASSED [ 95/299] >tests/test_git_path.py::test_set_cwd_unicode PASSED [ 96/299] >tests/test_git_path.py::test_set_cwd_unicode_byte_passed_in_for_cwd PASSED [ 97/299] >tests/test_integration.py::TestDiffCoverIntegration::test_added_file_html PASSED [ 98/299] >tests/test_integration.py::TestDiffCoverIntegration::test_added_file_console PASSED [ 99/299] >tests/test_integration.py::TestDiffCoverIntegration::test_added_file_console_lcov PASSED [100/299] >tests/test_integration.py::TestDiffCoverIntegration::test_lua_coverage PASSED [101/299] >tests/test_integration.py::TestDiffCoverIntegration::test_fail_under_console PASSED [102/299] >tests/test_integration.py::TestDiffCoverIntegration::test_fail_under_pass_console PASSED [103/299] >tests/test_integration.py::TestDiffCoverIntegration::test_deleted_file_html PASSED [104/299] >tests/test_integration.py::TestDiffCoverIntegration::test_deleted_file_console PASSED [105/299] >tests/test_integration.py::TestDiffCoverIntegration::test_changed_file_html PASSED [106/299] >tests/test_integration.py::TestDiffCoverIntegration::test_fail_under_html PASSED [107/299] >tests/test_integration.py::TestDiffCoverIntegration::test_fail_under_pass_html PASSED [108/299] >tests/test_integration.py::TestDiffCoverIntegration::test_changed_file_console PASSED [109/299] >tests/test_integration.py::TestDiffCoverIntegration::test_moved_file_html PASSED [110/299] >tests/test_integration.py::TestDiffCoverIntegration::test_moved_file_console PASSED [111/299] >tests/test_integration.py::TestDiffCoverIntegration::test_mult_inputs_html PASSED [112/299] >tests/test_integration.py::TestDiffCoverIntegration::test_mult_inputs_console PASSED [113/299] >tests/test_integration.py::TestDiffCoverIntegration::test_changed_file_lcov_console PASSED [114/299] >tests/test_integration.py::TestDiffCoverIntegration::test_subdir_coverage_html PASSED [115/299] >tests/test_integration.py::TestDiffCoverIntegration::test_subdir_coverage_console PASSED [116/299] >tests/test_integration.py::TestDiffCoverIntegration::test_unicode_console PASSED [117/299] >tests/test_integration.py::TestDiffCoverIntegration::test_dot_net_diff PASSED [118/299] >tests/test_integration.py::TestDiffCoverIntegration::test_unicode_html PASSED [119/299] >tests/test_integration.py::TestDiffCoverIntegration::test_html_with_external_css PASSED [120/299] >tests/test_integration.py::TestDiffCoverIntegration::test_git_diff_error PASSED [121/299] >tests/test_integration.py::TestDiffCoverIntegration::test_quiet_mode PASSED [122/299] >tests/test_integration.py::TestDiffCoverIntegration::test_show_uncovered_lines_console PASSED [123/299] >tests/test_integration.py::TestDiffCoverIntegration::test_expand_coverage_report_complete_report PASSED [124/299] >tests/test_integration.py::TestDiffCoverIntegration::test_expand_coverage_report_uncomplete_report PASSED [125/299] >tests/test_integration.py::TestDiffQualityIntegration::test_git_diff_error_diff_quality PASSED [126/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pycodestyle_html PASSED [127/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pyflakes_html PASSED [128/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pylint_html PASSED [129/299] >tests/test_integration.py::TestDiffQualityIntegration::test_fail_under_html PASSED [130/299] >tests/test_integration.py::TestDiffQualityIntegration::test_fail_under_pass_html PASSED [131/299] >tests/test_integration.py::TestDiffQualityIntegration::test_html_with_external_css FAILED [132/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pycodestyle_console PASSED [133/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pycodestyle_console_exclude_file PASSED [134/299] >tests/test_integration.py::TestDiffQualityIntegration::test_fail_under_console PASSED [135/299] >tests/test_integration.py::TestDiffQualityIntegration::test_fail_under_pass_console PASSED [136/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pyflakes_console PASSED [137/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pyflakes_console_two_files PASSED [138/299] >tests/test_integration.py::TestDiffQualityIntegration::test_added_file_pylint_console PASSED [139/299] >tests/test_integration.py::TestDiffQualityIntegration::test_pre_generated_pycodestyle_report PASSED [140/299] >tests/test_integration.py::TestDiffQualityIntegration::test_pre_generated_pyflakes_report PASSED [141/299] >tests/test_integration.py::TestDiffQualityIntegration::test_pre_generated_pylint_report PASSED [142/299] >tests/test_integration.py::TestDiffQualityIntegration::test_pylint_report_with_dup_code_violation PASSED [143/299] >tests/test_integration.py::TestDiffQualityIntegration::test_tool_not_recognized PASSED [144/299] >tests/test_integration.py::TestDiffQualityIntegration::test_tool_not_installed PASSED [145/299] >tests/test_integration.py::TestDiffQualityIntegration::test_do_nothing_reporter PASSED [146/299] >tests/test_integration.py::TestDiffQualityIntegration::test_quiet_mode PASSED [147/299] >tests/test_java_violations_reporter.py::TestCheckstyleQualityReporterTest::test_no_such_file PASSED [148/299] >tests/test_java_violations_reporter.py::TestCheckstyleQualityReporterTest::test_no_java_file PASSED [149/299] >tests/test_java_violations_reporter.py::TestCheckstyleQualityReporterTest::test_quality PASSED [150/299] >tests/test_java_violations_reporter.py::TestCheckstyleXmlQualityReporterTest::test_no_such_file PASSED [151/299] >tests/test_java_violations_reporter.py::TestCheckstyleXmlQualityReporterTest::test_no_java_file PASSED [152/299] >tests/test_java_violations_reporter.py::TestCheckstyleXmlQualityReporterTest::test_quality PASSED [153/299] >tests/test_java_violations_reporter.py::TestCheckstyleXmlQualityReporterTest::test_quality_error PASSED [154/299] >tests/test_java_violations_reporter.py::TestCheckstyleXmlQualityReporterTest::test_quality_pregenerated_report PASSED [155/299] >tests/test_java_violations_reporter.py::TestFindbugsQualityReporterTest::test_no_such_file PASSED [156/299] >tests/test_java_violations_reporter.py::TestFindbugsQualityReporterTest::test_no_java_file PASSED [157/299] >tests/test_java_violations_reporter.py::TestFindbugsQualityReporterTest::test_quality_pregenerated_report PASSED [158/299] >tests/test_java_violations_reporter.py::TestPmdXmlQualityReporterTest::test_no_such_file PASSED [159/299] >tests/test_java_violations_reporter.py::TestPmdXmlQualityReporterTest::test_no_java_file PASSED [160/299] >tests/test_java_violations_reporter.py::TestPmdXmlQualityReporterTest::test_quality_pregenerated_report PASSED [161/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_src_paths PASSED [162/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_coverage_name PASSED [163/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_diff_name PASSED [164/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_percent_covered PASSED [165/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_violation_lines PASSED [166/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_src_with_no_info PASSED [167/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_src_paths_not_measured PASSED [168/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_total_num_lines PASSED [169/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_total_num_missing PASSED [170/299] >tests/test_report_generator.py::TestSimpleReportGenerator::test_total_percent_covered PASSED [171/299] >tests/test_report_generator.py::TestTemplateReportGenerator::test_combine_adjacent_lines_no_adjacent PASSED [172/299] >tests/test_report_generator.py::TestTemplateReportGenerator::test_combine_adjacent_lines PASSED [173/299] >tests/test_report_generator.py::TestTemplateReportGenerator::test_empty_list PASSED [174/299] >tests/test_report_generator.py::TestTemplateReportGenerator::test_one_number PASSED [175/299] >tests/test_report_generator.py::TestJsonReportGenerator::test_generate_report PASSED [176/299] >tests/test_report_generator.py::TestJsonReportGenerator::test_hundred_percent PASSED [177/299] >tests/test_report_generator.py::TestJsonReportGenerator::test_empty_report PASSED [178/299] >tests/test_report_generator.py::TestStringReportGenerator::test_generate_report PASSED [179/299] >tests/test_report_generator.py::TestStringReportGenerator::test_hundred_percent PASSED [180/299] >tests/test_report_generator.py::TestStringReportGenerator::test_empty_report PASSED [181/299] >tests/test_report_generator.py::TestHtmlReportGenerator::test_generate_report PASSED [182/299] >tests/test_report_generator.py::TestHtmlReportGenerator::test_empty_report PASSED [183/299] >tests/test_report_generator.py::TestHtmlReportGenerator::test_one_snippet PASSED [184/299] >tests/test_report_generator.py::TestHtmlReportGenerator::test_multiple_snippets PASSED [185/299] >tests/test_report_generator.py::TestMarkdownReportGenerator::test_generate_report PASSED [186/299] >tests/test_report_generator.py::TestMarkdownReportGenerator::test_hundred_percent PASSED [187/299] >tests/test_report_generator.py::TestMarkdownReportGenerator::test_empty_report PASSED [188/299] >tests/test_report_generator.py::TestMarkdownReportGenerator::test_one_snippet PASSED [189/299] >tests/test_report_generator.py::TestMarkdownReportGenerator::test_multiple_snippets PASSED [190/299] >tests/test_report_generator.py::TestSimpleReportGeneratorWithBatchViolationReporter::test_violation_lines PASSED [191/299] >tests/test_snippets.py::test_style_defs FAILED [192/299] >tests/test_snippets.py::test_format PASSED [193/299] >tests/test_snippets.py::test_format_with_invalid_start_line PASSED [194/299] >tests/test_snippets.py::test_format_with_invalid_violation_lines PASSED [195/299] >tests/test_snippets.py::test_no_filename_ext PASSED [196/299] >tests/test_snippets.py::test_unicode PASSED [197/299] >tests/test_snippets.py::test_one_snippet PASSED [198/299] >tests/test_snippets.py::test_multiple_snippets PASSED [199/299] >tests/test_snippets.py::test_no_lead_line PASSED [200/299] >tests/test_snippets.py::test_no_lag_line PASSED [201/299] >tests/test_snippets.py::test_one_line_file PASSED [202/299] >tests/test_snippets.py::test_empty_file PASSED [203/299] >tests/test_snippets.py::test_no_violations PASSED [204/299] >tests/test_snippets.py::test_end_range_on_violation PASSED [205/299] >tests/test_snippets.py::test_load_snippets_html PASSED [206/299] >tests/test_snippets.py::test_load_snippets_markdown PASSED [207/299] >tests/test_snippets.py::test_load_utf8_snippets PASSED [208/299] >tests/test_snippets.py::test_load_declared_arabic PASSED [209/299] >tests/test_snippets.py::test_latin_one_undeclared PASSED [210/299] >tests/test_util.py::test_to_unix_path PASSED [211/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_violations PASSED [212/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_non_python_violations PASSED [213/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_non_python_violations_empty_path PASSED [214/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_two_inputs_first_violate PASSED [215/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_two_inputs_second_violate PASSED [216/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_three_inputs PASSED [217/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_different_files_in_inputs PASSED [218/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_empty_violations PASSED [219/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_no_such_file PASSED [220/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_expand_unreported_lines_when_configured PASSED [221/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_expand_unreported_lines_without_violations PASSED [222/299] >tests/test_violations_reporter.py::TestXmlCoverageReporterTest::test_expand_unreported_lines_without_measured PASSED [223/299] >tests/test_violations_reporter.py::TestCloverXmlCoverageReporterTest::test_violations PASSED [224/299] >tests/test_violations_reporter.py::TestCloverXmlCoverageReporterTest::test_two_inputs_first_violate PASSED [225/299] >tests/test_violations_reporter.py::TestCloverXmlCoverageReporterTest::test_two_inputs_second_violate PASSED [226/299] >tests/test_violations_reporter.py::TestCloverXmlCoverageReporterTest::test_three_inputs PASSED [227/299] >tests/test_violations_reporter.py::TestCloverXmlCoverageReporterTest::test_different_files_in_inputs PASSED [228/299] >tests/test_violations_reporter.py::TestCloverXmlCoverageReporterTest::test_empty_violations PASSED [229/299] >tests/test_violations_reporter.py::TestCloverXmlCoverageReporterTest::test_no_such_file PASSED [230/299] >tests/test_violations_reporter.py::TestJacocoXmlCoverageReporterTest::test_violations PASSED [231/299] >tests/test_violations_reporter.py::TestJacocoXmlCoverageReporterTest::test_two_inputs_first_violate PASSED [232/299] >tests/test_violations_reporter.py::TestJacocoXmlCoverageReporterTest::test_two_inputs_second_violate PASSED [233/299] >tests/test_violations_reporter.py::TestJacocoXmlCoverageReporterTest::test_three_inputs PASSED [234/299] >tests/test_violations_reporter.py::TestJacocoXmlCoverageReporterTest::test_different_files_in_inputs PASSED [235/299] >tests/test_violations_reporter.py::TestJacocoXmlCoverageReporterTest::test_empty_violations PASSED [236/299] >tests/test_violations_reporter.py::TestJacocoXmlCoverageReporterTest::test_no_such_file PASSED [237/299] >tests/test_violations_reporter.py::TestPycodestyleQualityReporterTest::test_quality PASSED [238/299] >tests/test_violations_reporter.py::TestPycodestyleQualityReporterTest::test_no_quality_issues_newline PASSED [239/299] >tests/test_violations_reporter.py::TestPycodestyleQualityReporterTest::test_no_quality_issues_emptystring PASSED [240/299] >tests/test_violations_reporter.py::TestPycodestyleQualityReporterTest::test_quality_error PASSED [241/299] >tests/test_violations_reporter.py::TestPycodestyleQualityReporterTest::test_no_such_file PASSED [242/299] >tests/test_violations_reporter.py::TestPycodestyleQualityReporterTest::test_no_python_file PASSED [243/299] >tests/test_violations_reporter.py::TestPycodestyleQualityReporterTest::test_quality_pregenerated_report PASSED [244/299] >tests/test_violations_reporter.py::TestPyflakesQualityReporterTest::test_quality PASSED [245/299] >tests/test_violations_reporter.py::TestPyflakesQualityReporterTest::test_no_quality_issues_newline PASSED [246/299] >tests/test_violations_reporter.py::TestPyflakesQualityReporterTest::test_no_quality_issues_emptystring PASSED [247/299] >tests/test_violations_reporter.py::TestPyflakesQualityReporterTest::test_quality_error PASSED [248/299] >tests/test_violations_reporter.py::TestPyflakesQualityReporterTest::test_no_such_file PASSED [249/299] >tests/test_violations_reporter.py::TestPyflakesQualityReporterTest::test_no_python_file PASSED [250/299] >tests/test_violations_reporter.py::TestPyflakesQualityReporterTest::test_quality_pregenerated_report PASSED [251/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_quality PASSED [252/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_no_quality_issues_newline PASSED [253/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_no_quality_issues_emptystring PASSED [254/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_quality_error PASSED [255/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_no_such_file PASSED [256/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_no_python_file PASSED [257/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_file_does_not_exist PASSED [258/299] >tests/test_violations_reporter.py::TestFlake8QualityReporterTest::test_quality_pregenerated_report PASSED [259/299] >tests/test_violations_reporter.py::TestPydocstlyeQualityReporterTest::test_no_such_file PASSED [260/299] >tests/test_violations_reporter.py::TestPydocstlyeQualityReporterTest::test_no_python_file PASSED [261/299] >tests/test_violations_reporter.py::TestPydocstlyeQualityReporterTest::test_quality PASSED [262/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_no_such_file PASSED [263/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_no_python_file PASSED [264/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_quality PASSED [265/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_unicode PASSED [266/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_unicode_continuation_char PASSED [267/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_non_integer_line_num PASSED [268/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_quality_deprecation_warning PASSED [269/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_quality_error PASSED [270/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_no_quality_issues_newline PASSED [271/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_no_quality_issues_emptystring PASSED [272/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_quality_pregenerated_report PASSED [273/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_quality_pregenerated_report_continuation_char PASSED [274/299] >tests/test_violations_reporter.py::TestPylintQualityReporterTest::test_windows_paths PASSED [275/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_quality PASSED [276/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_no_quality_issues_newline PASSED [277/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_no_quality_issues_emptystring PASSED [278/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_quality_error PASSED [279/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_no_such_file PASSED [280/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_no_js_file PASSED [281/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_quality_pregenerated_report PASSED [282/299] >tests/test_violations_reporter.py::TestJsHintQualityReporterTest::test_not_installed PASSED [283/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_quality PASSED [284/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_no_quality_issues_newline PASSED [285/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_no_quality_issues_emptystring PASSED [286/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_quality_error PASSED [287/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_no_such_file PASSED [288/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_no_js_file PASSED [289/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_quality_pregenerated_report PASSED [290/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_not_installed PASSED [291/299] >tests/test_violations_reporter.py::TestESLintQualityReporterTest::test_report_root_path PASSED [292/299] >tests/test_violations_reporter.py::TestShellCheckQualityReporterTest::test_no_such_file PASSED [293/299] >tests/test_violations_reporter.py::TestShellCheckQualityReporterTest::test_no_shell_file PASSED [294/299] >tests/test_violations_reporter.py::TestShellCheckQualityReporterTest::test_quality PASSED [295/299] >tests/test_violations_reporter.py::TestSimpleCommandTestCase::test_run_simple_failure PASSED [296/299] >tests/test_violations_reporter.py::TestSimpleCommandTestCase::test_run_simple_success PASSED [297/299] >tests/test_violations_reporter.py::TestSubprocessErrorTestCase::test_quality_reporter PASSED [298/299] >tests/test_violations_reporter.py::TestCppcheckQualityDriverTest::test_parse_report PASSED [299/299] > >=================================== FAILURES =================================== >____________ TestDiffQualityIntegration.test_html_with_external_css ____________ > >self = <tests.test_integration.TestDiffQualityIntegration object at 0x7f215790b260> > > def test_html_with_external_css(self): >> temp_dir = self._check_html_report( > "git_diff_violations.txt", > "pycodestyle_violations_report_external_css.html", > ["diff-quality", "--violations=pycodestyle"], > css_file="external_style.css", > ) > >self = <tests.test_integration.TestDiffQualityIntegration object at 0x7f215790b260> > >/var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0/tests/test_integration.py:483: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <tests.test_integration.TestDiffQualityIntegration object at 0x7f215790b260> >git_diff_path = 'git_diff_violations.txt' >expected_html_path = 'pycodestyle_violations_report_external_css.html' >tool_args = ['diff-quality', '--violations=pycodestyle'], expected_status = 0 >css_file = '/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/pytest-of-portage/pytest-0/test_html_with_external_css0/dummy/external_style.css' > > def _check_html_report( > self, > git_diff_path, > expected_html_path, > tool_args, > expected_status=0, > css_file=None, > ): > """ > Verify that the tool produces the expected HTML report. > > `git_diff_path` is a path to a fixture containing the (patched) output of > the call to `git diff`. > > `expected_console_path` is a path to the fixture containing > the expected HTML output of the tool. > > `tool_args` is a list of command line arguments to pass > to the tool. You should include the name of the tool > as the first argument. > """ > > # Patch the output of `git diff` > with open(git_diff_path, encoding="utf-8") as git_diff_file: > self._set_git_diff_output(git_diff_file.read(), "") > > # Create a temporary directory to hold the output HTML report > # Add a cleanup to ensure the directory gets deleted > temp_dir = self.tmp_path / "dummy" > temp_dir.mkdir() > > html_report_path = os.path.join(temp_dir, "diff_coverage.html") > > args = tool_args + ["--html-report", html_report_path] > > if css_file: > css_file = os.path.join(temp_dir, css_file) > args += ["--external-css-file", css_file] > > # Execute the tool > if "diff-cover" in args[0]: > code = diff_cover_tool.main(args) > else: > code = diff_quality_tool.main(args) > > assert code == expected_status > > # Check the HTML report > with open(expected_html_path, encoding="utf-8") as expected_file: > with open(html_report_path, encoding="utf-8") as html_report: > html = html_report.read() > expected = expected_file.read() > if css_file is None: > html = self._clear_css(html) > expected = self._clear_css(expected) >> assert expected.strip() == html.strip() >E assert '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n <head>\n <meta http-equiv=\'Content-Type\' content=\'text/html; charset=utf-8\'>\n <title>Diff Quality</title>\n <link rel="stylesheet" href="external_style.css">\n </head>\n <body>\n <h1>Diff Quality</h1>\n <p>Quality Report: pycodestyle</p>\n <p>Diff: origin/main...HEAD, staged and unstaged changes</p>\n <table border="1">\n <tr>\n <th>Source File</th>\n <th>Diff Quality (%)</th>\n <th>Lines in violation</th>\n </tr>\n <tr>\n <td>violations_test_file.py</td>\n <td>66.7%</td>\n <td>\n <ul>\n <li>2: E225 missing whitespace around operator</li>\n <li>6: E302 expected 2 blank lines, found 0</li>\n <li>11: E225 missing whitespace around operator</li>\n </ul>\n </td>\n </tr>\n </table>\n <ul>\n <li><b>Total</b>: 9 lines</li>\n <li><b>Violation</b>: 3 lines</li>\n <li><b>% Quality</b>: 66%</li>\n </ul>\n <div class="src-snippet">\n <div class="src-name">violations_test_file.py</div>\n <div class="snippets">\n <div class="snippet"><table class="snippettable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>\n<span class="normal"> 2</span>\n<span class="normal"> 3</span>\n<span class="normal"> 4</span>\n<span class="normal"> 5</span>\n<span class="normal"> 6</span>\n<span class="normal"> 7</span>\n<span class="normal"> 8</span>\n<span class="normal"> 9</span>\n<span class="normal">10</span>\n<span class="normal">11</span>\n<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span> <span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span>\n<a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span class="hll"> <span class="k">if</span> <span class="n">apple</span><span class="o"><</span><span class="mi">10</span><span class="p">:</span>\n</span><a id="violations_test_file.py-3" name="violations_test_file.py-3"></a> <span class="c1"># Do something </span>\n<a id="violations_test_file.py-4" name="violations_test_file.py-4"></a> <span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">apple</span><span class="p">)</span>\n<a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> <span class="k">return</span> <span class="n">my_list</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>\n<a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span> <span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span>\n</span><a id="violations_test_file.py-7" name="violations_test_file.py-7"></a><span class="w"> </span><span class="sd">"""A less messy function"""</span>\n<a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">spongebob</span><span class="p">:</span>\n<a id="violations_test_file.py-9" name="violations_test_file.py-9"></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">squarepants</span><span class="p">:</span>\n<a id="violations_test_file.py-10" name="violations_test_file.py-10"></a> <span class="k">return</span> <span class="n">char</span>\n<a id="violations_test_file.py-11" name="violations_test_file.py-11"></a><span class="hll"> <span class="n">unused</span><span class="o">=</span><span class="mi">1</span>\n</span><a id="violations_test_file.py-12" name="violations_test_file.py-12"></a> <span class="k">return</span> <span class="kc">None</span>\n</pre></div></td></tr></table></div>\n\n </div>\n </div>\n </body>\n</html>' == '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n <head>\n <meta http-equiv=\'Content-Type\' content=\'text/html; charset=utf-8\'>\n <title>Diff Quality</title>\n <link rel="stylesheet" href="external_style.css">\n </head>\n <body>\n <h1>Diff Quality</h1>\n <p>Quality Report: pycodestyle</p>\n <p>Diff: origin/main...HEAD, staged and unstaged changes</p>\n <table border="1">\n <tr>\n <th>Source File</th>\n <th>Diff Quality (%)</th>\n <th>Lines in violation</th>\n </tr>\n <tr>\n <td>violations_test_file.py</td>\n <td>66.7%</td>\n <td>\n <ul>\n <li>2: E225 missing whitespace around operator</li>\n <li>6: E302 expected 2 blank lines, found 0</li>\n <li>11: E225 missing whitespace around operator</li>\n </ul>\n </td>\n </tr>\n </table>\n <ul>\n <li><b>Total</b>: 9 lines</li>\n <li><b>Violation</b>: 3 lines</li>\n <li><b>% Quality</b>: 66%</li>\n </ul>\n <div class="src-snippet">\n <div class="src-name">violations_test_file.py</div>\n <div class="snippets">\n <div class="snippet"><table class="snippettable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>\n<span class="normal"> 2</span>\n<span class="normal"> 3</span>\n<span class="normal"> 4</span>\n<span class="normal"> 5</span>\n<span class="normal"> 6</span>\n<span class="normal"> 7</span>\n<span class="normal"> 8</span>\n<span class="normal"> 9</span>\n<span class="normal">10</span>\n<span class="normal">11</span>\n<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span>\n<a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span class="hll"> <span class="k">if</span> <span class="n">apple</span><span class="o"><</span><span class="mi">10</span><span class="p">:</span>\n</span><a id="violations_test_file.py-3" name="violations_test_file.py-3"></a> <span class="c1"># Do something </span>\n<a id="violations_test_file.py-4" name="violations_test_file.py-4"></a> <span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">apple</span><span class="p">)</span>\n<a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> <span class="k">return</span> <span class="n">my_list</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>\n<a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span><span class="w"> </span><span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span>\n</span><a id="violations_test_file.py-7" name="violations_test_file.py-7"></a><span class="w"> </span><span class="sd">"""A less messy function"""</span>\n<a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">spongebob</span><span class="p">:</span>\n<a id="violations_test_file.py-9" name="violations_test_file.py-9"></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">squarepants</span><span class="p">:</span>\n<a id="violations_test_file.py-10" name="violations_test_file.py-10"></a> <span class="k">return</span> <span class="n">char</span>\n<a id="violations_test_file.py-11" name="violations_test_file.py-11"></a><span class="hll"> <span class="n">unused</span><span class="o">=</span><span class="mi">1</span>\n</span><a id="violations_test_file.py-12" name="violations_test_file.py-12"></a> <span class="k">return</span> <span class="kc">None</span>\n</pre></div></td></tr></table></div>\n\n </div>\n </div>\n </body>\n</html>' >E >E <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> >E <html> >E <head> >E <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> >E <title>Diff Quality</title> >E <link rel="stylesheet" href="external_style.css"> >E </head> >E <body> >E <h1>Diff Quality</h1> >E <p>Quality Report: pycodestyle</p> >E <p>Diff: origin/main...HEAD, staged and unstaged changes</p> >E <table border="1"> >E <tr> >E <th>Source File</th> >E <th>Diff Quality (%)</th> >E <th>Lines in violation</th> >E </tr> >E <tr> >E <td>violations_test_file.py</td> >E <td>66.7%</td> >E <td> >E <ul> >E <li>2: E225 missing whitespace around operator</li> >E <li>6: E302 expected 2 blank lines, found 0</li> >E <li>11: E225 missing whitespace around operator</li> >E </ul> >E </td> >E </tr> >E </table> >E <ul> >E <li><b>Total</b>: 9 lines</li> >E <li><b>Violation</b>: 3 lines</li> >E <li><b>% Quality</b>: 66%</li> >E </ul> >E <div class="src-snippet"> >E <div class="src-name">violations_test_file.py</div> >E <div class="snippets"> >E <div class="snippet"><table class="snippettable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span> >E <span class="normal"> 2</span> >E <span class="normal"> 3</span> >E <span class="normal"> 4</span> >E <span class="normal"> 5</span> >E <span class="normal"> 6</span> >E <span class="normal"> 7</span> >E <span class="normal"> 8</span> >E <span class="normal"> 9</span> >E <span class="normal">10</span> >E <span class="normal">11</span> >E - <span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span> >E ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >E + <span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span> <span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span> >E ? ^^^^^^ >E <a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span class="hll"> <span class="k">if</span> <span class="n">apple</span><span class="o"><</span><span class="mi">10</span><span class="p">:</span> >E </span><a id="violations_test_file.py-3" name="violations_test_file.py-3"></a> <span class="c1"># Do something </span> >E <a id="violations_test_file.py-4" name="violations_test_file.py-4"></a> <span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">apple</span><span class="p">)</span> >E <a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> <span class="k">return</span> <span class="n">my_list</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> >E - <a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span><span class="w"> </span><span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span> >E ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >E + <a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span> <span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span> >E ? ^^^^^^ >E </span><a id="violations_test_file.py-7" name="violations_test_file.py-7"></a><span class="w"> </span><span class="sd">"""A less messy function"""</span> >E <a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">spongebob</span><span class="p">:</span> >E <a id="violations_test_file.py-9" name="violations_test_file.py-9"></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">squarepants</span><span class="p">:</span> >E <a id="violations_test_file.py-10" name="violations_test_file.py-10"></a> <span class="k">return</span> <span class="n">char</span> >E <a id="violations_test_file.py-11" name="violations_test_file.py-11"></a><span class="hll"> <span class="n">unused</span><span class="o">=</span><span class="mi">1</span> >E </span><a id="violations_test_file.py-12" name="violations_test_file.py-12"></a> <span class="k">return</span> <span class="kc">None</span> >E </pre></div></td></tr></table></div> >E >E </div> >E </div> >E </body> >E </html> > >args = ['diff-quality', > '--violations=pycodestyle', > '--html-report', > '/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/pytest-of-portage/pytest-0/test_html_with_external_css0/dummy/diff_coverage.html', > '--external-css-file', > '/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/pytest-of-portage/pytest-0/test_html_with_external_css0/dummy/external_style.css'] >code = 0 >css_file = '/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/pytest-of-portage/pytest-0/test_html_with_external_css0/dummy/external_style.css' >expected = ('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" ' > '"http://www.w3.org/TR/html4/strict.dtd">\n' > '<html>\n' > ' <head>\n' > " <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>\n" > ' <title>Diff Quality</title>\n' > ' <link rel="stylesheet" href="external_style.css">\n' > ' </head>\n' > ' <body>\n' > ' <h1>Diff Quality</h1>\n' > ' <p>Quality Report: pycodestyle</p>\n' > ' <p>Diff: origin/main...HEAD, staged and unstaged changes</p>\n' > ' <table border="1">\n' > ' <tr>\n' > ' <th>Source File</th>\n' > ' <th>Diff Quality (%)</th>\n' > ' <th>Lines in violation</th>\n' > ' </tr>\n' > ' <tr>\n' > ' <td>violations_test_file.py</td>\n' > ' <td>66.7%</td>\n' > ' <td>\n' > ' <ul>\n' > ' <li>2: E225 missing whitespace around operator</li>\n' > ' <li>6: E302 expected 2 blank lines, found 0</li>\n' > ' <li>11: E225 missing whitespace around ' > 'operator</li>\n' > ' </ul>\n' > ' </td>\n' > ' </tr>\n' > ' </table>\n' > ' <ul>\n' > ' <li><b>Total</b>: 9 lines</li>\n' > ' <li><b>Violation</b>: 3 lines</li>\n' > ' <li><b>% Quality</b>: 66%</li>\n' > ' </ul>\n' > ' <div class="src-snippet">\n' > ' <div class="src-name">violations_test_file.py</div>\n' > ' <div class="snippets">\n' > ' <div class="snippet"><table class="snippettable"><tr><td ' > 'class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>\n' > '<span class="normal"> 2</span>\n' > '<span class="normal"> 3</span>\n' > '<span class="normal"> 4</span>\n' > '<span class="normal"> 5</span>\n' > '<span class="normal"> 6</span>\n' > '<span class="normal"> 7</span>\n' > '<span class="normal"> 8</span>\n' > '<span class="normal"> 9</span>\n' > '<span class="normal">10</span>\n' > '<span class="normal">11</span>\n' > '<span class="normal">12</span></pre></div></td><td ' > 'class="code"><div><pre><span></span><a id="violations_test_file.py-1" ' > 'name="violations_test_file.py-1"></a><span class="k">def</span> <span ' > 'class="nf">func_1</span><span class="p">(</span><span ' > 'class="n">apple</span><span class="p">,</span> <span ' > 'class="n">my_list</span><span class="p">):</span>\n' > '<a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span ' > 'class="hll"> <span class="k">if</span> <span class="n">apple</span><span ' > 'class="o"><</span><span class="mi">10</span><span class="p">:</span>\n' > '</span><a id="violations_test_file.py-3" ' > 'name="violations_test_file.py-3"></a> <span class="c1"># Do something ' > '</span>\n' > '<a id="violations_test_file.py-4" ' > 'name="violations_test_file.py-4"></a> <span ' > 'class="n">my_list</span><span class="o">.</span><span ' > 'class="n">append</span><span class="p">(</span><span ' > 'class="n">apple</span><span class="p">)</span>\n' > '<a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> ' > '<span class="k">return</span> <span class="n">my_list</span><span ' > 'class="p">[</span><span class="mi">1</span><span class="p">:]</span>\n' > '<a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span ' > 'class="hll"><span class="k">def</span> <span class="nf">func_2</span><span ' > 'class="p">(</span><span class="n">spongebob</span><span class="p">,</span> ' > '<span class="n">squarepants</span><span class="p">):</span>\n' > '</span><a id="violations_test_file.py-7" ' > 'name="violations_test_file.py-7"></a><span class="w"> </span><span ' > 'class="sd">"""A less messy function"""</span>\n' > '<a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> ' > '<span class="k">for</span> <span class="n">char</span> <span ' > 'class="ow">in</span> <span class="n">spongebob</span><span ' > 'class="p">:</span>\n' > '<a id="violations_test_file.py-9" ' > 'name="violations_test_file.py-9"></a> <span class="k">if</span> <span ' > 'class="n">char</span> <span class="ow">in</span> <span ' > 'class="n">squarepants</span><span class="p">:</span>\n' > '<a id="violations_test_file.py-10" ' > 'name="violations_test_file.py-10"></a> <span ' > 'class="k">return</span> <span class="n">char</span>\n' > '<a id="violations_test_file.py-11" ' > 'name="violations_test_file.py-11"></a><span class="hll"> <span ' > 'class="n">unused</span><span class="o">=</span><span class="mi">1</span>\n' > '</span><a id="violations_test_file.py-12" ' > 'name="violations_test_file.py-12"></a> <span class="k">return</span> ' > '<span class="kc">None</span>\n' > '</pre></div></td></tr></table></div>\n' > '\n' > ' </div>\n' > ' </div>\n' > ' </body>\n' > '</html>') >expected_file = <_io.TextIOWrapper name='pycodestyle_violations_report_external_css.html' mode='r' encoding='utf-8'> >expected_html_path = 'pycodestyle_violations_report_external_css.html' >expected_status = 0 >git_diff_file = <_io.TextIOWrapper name='git_diff_violations.txt' mode='r' encoding='utf-8'> >git_diff_path = 'git_diff_violations.txt' >html = ('<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" ' > '"http://www.w3.org/TR/html4/strict.dtd">\n' > '<html>\n' > ' <head>\n' > " <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>\n" > ' <title>Diff Quality</title>\n' > ' <link rel="stylesheet" href="external_style.css">\n' > ' </head>\n' > ' <body>\n' > ' <h1>Diff Quality</h1>\n' > ' <p>Quality Report: pycodestyle</p>\n' > ' <p>Diff: origin/main...HEAD, staged and unstaged changes</p>\n' > ' <table border="1">\n' > ' <tr>\n' > ' <th>Source File</th>\n' > ' <th>Diff Quality (%)</th>\n' > ' <th>Lines in violation</th>\n' > ' </tr>\n' > ' <tr>\n' > ' <td>violations_test_file.py</td>\n' > ' <td>66.7%</td>\n' > ' <td>\n' > ' <ul>\n' > ' <li>2: E225 missing whitespace around operator</li>\n' > ' <li>6: E302 expected 2 blank lines, found 0</li>\n' > ' <li>11: E225 missing whitespace around ' > 'operator</li>\n' > ' </ul>\n' > ' </td>\n' > ' </tr>\n' > ' </table>\n' > ' <ul>\n' > ' <li><b>Total</b>: 9 lines</li>\n' > ' <li><b>Violation</b>: 3 lines</li>\n' > ' <li><b>% Quality</b>: 66%</li>\n' > ' </ul>\n' > ' <div class="src-snippet">\n' > ' <div class="src-name">violations_test_file.py</div>\n' > ' <div class="snippets">\n' > ' <div class="snippet"><table class="snippettable"><tr><td ' > 'class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>\n' > '<span class="normal"> 2</span>\n' > '<span class="normal"> 3</span>\n' > '<span class="normal"> 4</span>\n' > '<span class="normal"> 5</span>\n' > '<span class="normal"> 6</span>\n' > '<span class="normal"> 7</span>\n' > '<span class="normal"> 8</span>\n' > '<span class="normal"> 9</span>\n' > '<span class="normal">10</span>\n' > '<span class="normal">11</span>\n' > '<span class="normal">12</span></pre></div></td><td ' > 'class="code"><div><pre><span></span><a id="violations_test_file.py-1" ' > 'name="violations_test_file.py-1"></a><span class="k">def</span><span ' > 'class="w"> </span><span class="nf">func_1</span><span ' > 'class="p">(</span><span class="n">apple</span><span class="p">,</span> <span ' > 'class="n">my_list</span><span class="p">):</span>\n' > '<a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span ' > 'class="hll"> <span class="k">if</span> <span class="n">apple</span><span ' > 'class="o"><</span><span class="mi">10</span><span class="p">:</span>\n' > '</span><a id="violations_test_file.py-3" ' > 'name="violations_test_file.py-3"></a> <span class="c1"># Do something ' > '</span>\n' > '<a id="violations_test_file.py-4" ' > 'name="violations_test_file.py-4"></a> <span ' > 'class="n">my_list</span><span class="o">.</span><span ' > 'class="n">append</span><span class="p">(</span><span ' > 'class="n">apple</span><span class="p">)</span>\n' > '<a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> ' > '<span class="k">return</span> <span class="n">my_list</span><span ' > 'class="p">[</span><span class="mi">1</span><span class="p">:]</span>\n' > '<a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span ' > 'class="hll"><span class="k">def</span><span class="w"> </span><span ' > 'class="nf">func_2</span><span class="p">(</span><span ' > 'class="n">spongebob</span><span class="p">,</span> <span ' > 'class="n">squarepants</span><span class="p">):</span>\n' > '</span><a id="violations_test_file.py-7" ' > 'name="violations_test_file.py-7"></a><span class="w"> </span><span ' > 'class="sd">"""A less messy function"""</span>\n' > '<a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> ' > '<span class="k">for</span> <span class="n">char</span> <span ' > 'class="ow">in</span> <span class="n">spongebob</span><span ' > 'class="p">:</span>\n' > '<a id="violations_test_file.py-9" ' > 'name="violations_test_file.py-9"></a> <span class="k">if</span> <span ' > 'class="n">char</span> <span class="ow">in</span> <span ' > 'class="n">squarepants</span><span class="p">:</span>\n' > '<a id="violations_test_file.py-10" ' > 'name="violations_test_file.py-10"></a> <span ' > 'class="k">return</span> <span class="n">char</span>\n' > '<a id="violations_test_file.py-11" ' > 'name="violations_test_file.py-11"></a><span class="hll"> <span ' > 'class="n">unused</span><span class="o">=</span><span class="mi">1</span>\n' > '</span><a id="violations_test_file.py-12" ' > 'name="violations_test_file.py-12"></a> <span class="k">return</span> ' > '<span class="kc">None</span>\n' > '</pre></div></td></tr></table></div>\n' > '\n' > ' </div>\n' > ' </div>\n' > ' </body>\n' > '</html>') >html_report = <_io.TextIOWrapper name='/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/pytest-of-portage/pytest-0/test_html_with_external_css0/dummy/diff_coverage.html' mode='r' encoding='utf-8'> >html_report_path = '/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/pytest-of-portage/pytest-0/test_html_with_external_css0/dummy/diff_coverage.html' >self = <tests.test_integration.TestDiffQualityIntegration object at 0x7f215790b260> >temp_dir = PosixPath('/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/pytest-of-portage/pytest-0/test_html_with_external_css0/dummy') >tool_args = ['diff-quality', '--violations=pycodestyle'] > >/var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0/tests/test_integration.py:121: AssertionError >_______________________________ test_style_defs ________________________________ > > def test_style_defs(): > style_str = Snippet.style_defs() > expected_styles = load_fixture("snippet.css").strip() > > # Check that a sample of the styles are present > # (use only a sample to make the test more robust > # against Pygments changes). > for expect_line in expected_styles.split("\n"): >> assert expect_line in style_str >E AssertionError: assert '.o { color: #666666 } /* Operator */' in 'pre { line-height: 125%; }\ntd.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\nspan.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\ntd.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\nspan.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.hll { background-color: #ffcccc }\n.c { color: #3D7B7B; font-style: italic } /* Comment */\n.err { border: 1px solid #F00 } /* Error */\n.k { color: #008000; font-weight: bold } /* Keyword */\n.o { color: #666 } /* Operator */\n.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n.cp { color: #9C6500 } /* Comment.Preproc */\n.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n.gd { color: #A00000 } /* Generic.Deleted */\n.ge { font-style: italic } /* Generic.Emph */\n.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n.gr { color: #E40000 } /* Generic.Error */\n.gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.gi { color: #008400 } /* Generic.Inserted */\n.go { color: #717171 } /* Generic.Output */\n.gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n.gs { font-weight: bold } /* Generic.Strong */\n.gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.gt { color: #04D } /* Generic.Traceback */\n.kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n.kp { color: #008000 } /* Keyword.Pseudo */\n.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n.kt { color: #B00040 } /* Keyword.Type */\n.m { color: #666 } /* Literal.Number */\n.s { color: #BA2121 } /* Literal.String */\n.na { color: #687822 } /* Name.Attribute */\n.nb { color: #008000 } /* Name.Builtin */\n.nc { color: #00F; font-weight: bold } /* Name.Class */\n.no { color: #800 } /* Name.Constant */\n.nd { color: #A2F } /* Name.Decorator */\n.ni { color: #717171; font-weight: bold } /* Name.Entity */\n.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n.nf { color: #00F } /* Name.Function */\n.nl { color: #767600 } /* Name.Label */\n.nn { color: #00F; font-weight: bold } /* Name.Namespace */\n.nt { color: #008000; font-weight: bold } /* Name.Tag */\n.nv { color: #19177C } /* Name.Variable */\n.ow { color: #A2F; font-weight: bold } /* Operator.Word */\n.w { color: #BBB } /* Text.Whitespace */\n.mb { color: #666 } /* Literal.Number.Bin */\n.mf { color: #666 } /* Literal.Number.Float */\n.mh { color: #666 } /* Literal.Number.Hex */\n.mi { color: #666 } /* Literal.Number.Integer */\n.mo { color: #666 } /* Literal.Number.Oct */\n.sa { color: #BA2121 } /* Literal.String.Affix */\n.sb { color: #BA2121 } /* Literal.String.Backtick */\n.sc { color: #BA2121 } /* Literal.String.Char */\n.dl { color: #BA2121 } /* Literal.String.Delimiter */\n.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n.s2 { color: #BA2121 } /* Literal.String.Double */\n.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n.sh { color: #BA2121 } /* Literal.String.Heredoc */\n.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n.sx { color: #008000 } /* Literal.String.Other */\n.sr { color: #A45A77 } /* Literal.String.Regex */\n.s1 { color: #BA2121 } /* Literal.String.Single */\n.ss { color: #19177C } /* Literal.String.Symbol */\n.bp { color: #008000 } /* Name.Builtin.Pseudo */\n.fm { color: #00F } /* Name.Function.Magic */\n.vc { color: #19177C } /* Name.Variable.Class */\n.vg { color: #19177C } /* Name.Variable.Global */\n.vi { color: #19177C } /* Name.Variable.Instance */\n.vm { color: #19177C } /* Name.Variable.Magic */\n.il { color: #666 } /* Literal.Number.Integer.Long */' > >expect_line = '.o { color: #666666 } /* Operator */' >expected_styles = ('.hll { background-color: #ffcccc }\n' > '.c { color: #3D7B7B; font-style: italic } /* Comment */\n' > '.k { color: #008000; font-weight: bold } /* Keyword */\n' > '.o { color: #666666 } /* Operator */\n' > '.m { color: #666666 } /* Literal.Number */\n' > '.s { color: #BA2121 } /* Literal.String */\n' > '.na { color: #687822 } /* Name.Attribute */\n' > '.nb { color: #008000 } /* Name.Builtin */') >style_str = ('pre { line-height: 125%; }\n' > 'td.linenos .normal { color: inherit; background-color: transparent; ' > 'padding-left: 5px; padding-right: 5px; }\n' > 'span.linenos { color: inherit; background-color: transparent; padding-left: ' > '5px; padding-right: 5px; }\n' > 'td.linenos .special { color: #000000; background-color: #ffffc0; ' > 'padding-left: 5px; padding-right: 5px; }\n' > 'span.linenos.special { color: #000000; background-color: #ffffc0; ' > 'padding-left: 5px; padding-right: 5px; }\n' > '.hll { background-color: #ffcccc }\n' > '.c { color: #3D7B7B; font-style: italic } /* Comment */\n' > '.err { border: 1px solid #F00 } /* Error */\n' > '.k { color: #008000; font-weight: bold } /* Keyword */\n' > '.o { color: #666 } /* Operator */\n' > '.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n' > '.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n' > '.cp { color: #9C6500 } /* Comment.Preproc */\n' > '.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n' > '.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n' > '.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n' > '.gd { color: #A00000 } /* Generic.Deleted */\n' > '.ge { font-style: italic } /* Generic.Emph */\n' > '.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n' > '.gr { color: #E40000 } /* Generic.Error */\n' > '.gh { color: #000080; font-weight: bold } /* Generic.Heading */\n' > '.gi { color: #008400 } /* Generic.Inserted */\n' > '.go { color: #717171 } /* Generic.Output */\n' > '.gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n' > '.gs { font-weight: bold } /* Generic.Strong */\n' > '.gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n' > '.gt { color: #04D } /* Generic.Traceback */\n' > '.kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n' > '.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n' > '.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n' > '.kp { color: #008000 } /* Keyword.Pseudo */\n' > '.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n' > '.kt { color: #B00040 } /* Keyword.Type */\n' > '.m { color: #666 } /* Literal.Number */\n' > '.s { color: #BA2121 } /* Literal.String */\n' > '.na { color: #687822 } /* Name.Attribute */\n' > '.nb { color: #008000 } /* Name.Builtin */\n' > '.nc { color: #00F; font-weight: bold } /* Name.Class */\n' > '.no { color: #800 } /* Name.Constant */\n' > '.nd { color: #A2F } /* Name.Decorator */\n' > '.ni { color: #717171; font-weight: bold } /* Name.Entity */\n' > '.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n' > '.nf { color: #00F } /* Name.Function */\n' > '.nl { color: #767600 } /* Name.Label */\n' > '.nn { color: #00F; font-weight: bold } /* Name.Namespace */\n' > '.nt { color: #008000; font-weight: bold } /* Name.Tag */\n' > '.nv { color: #19177C } /* Name.Variable */\n' > '.ow { color: #A2F; font-weight: bold } /* Operator.Word */\n' > '.w { color: #BBB } /* Text.Whitespace */\n' > '.mb { color: #666 } /* Literal.Number.Bin */\n' > '.mf { color: #666 } /* Literal.Number.Float */\n' > '.mh { color: #666 } /* Literal.Number.Hex */\n' > '.mi { color: #666 } /* Literal.Number.Integer */\n' > '.mo { color: #666 } /* Literal.Number.Oct */\n' > '.sa { color: #BA2121 } /* Literal.String.Affix */\n' > '.sb { color: #BA2121 } /* Literal.String.Backtick */\n' > '.sc { color: #BA2121 } /* Literal.String.Char */\n' > '.dl { color: #BA2121 } /* Literal.String.Delimiter */\n' > '.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n' > '.s2 { color: #BA2121 } /* Literal.String.Double */\n' > '.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n' > '.sh { color: #BA2121 } /* Literal.String.Heredoc */\n' > '.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n' > '.sx { color: #008000 } /* Literal.String.Other */\n' > '.sr { color: #A45A77 } /* Literal.String.Regex */\n' > '.s1 { color: #BA2121 } /* Literal.String.Single */\n' > '.ss { color: #19177C } /* Literal.String.Symbol */\n' > '.bp { color: #008000 } /* Name.Builtin.Pseudo */\n' > '.fm { color: #00F } /* Name.Function.Magic */\n' > '.vc { color: #19177C } /* Name.Variable.Class */\n' > '.vg { color: #19177C } /* Name.Variable.Global */\n' > '.vi { color: #19177C } /* Name.Variable.Instance */\n' > '.vm { color: #19177C } /* Name.Variable.Magic */\n' > '.il { color: #666 } /* Literal.Number.Integer.Long */') > >tests/test_snippets.py:154: AssertionError >=========================== short test summary info ============================ >FAILED tests/test_integration.py::TestDiffQualityIntegration::test_html_with_external_css - assert '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n <head>\n <meta http-equiv=\'Content-Type\' content=\'text/html; charset=utf-8\'>\n <title>Diff Quality</title>\n <link rel="stylesheet" href="external_style.css">\n </head>\n <body>\n <h1>Diff Quality</h1>\n <p>Quality Report: pycodestyle</p>\n <p>Diff: origin/main...HEAD, staged and unstaged changes</p>\n <table border="1">\n <tr>\n <th>Source File</th>\n <th>Diff Quality (%)</th>\n <th>Lines in violation</th>\n </tr>\n <tr>\n <td>violations_test_file.py</td>\n <td>66.7%</td>\n <td>\n <ul>\n <li>2: E225 missing whitespace around operator</li>\n <li>6: E302 expected 2 blank lines, found 0</li>\n <li>11: E225 missing whitespace around operator</li>\n </ul>\n </td>\n </tr>\n </table>\n <ul>\n <li><b>Total</b>: 9 lines</li>\n <li><b>Violation</b>: 3 lines</li>\n <li><b>% Quality</b>: 66%</li>\n </ul>\n <div class="src-snippet">\n <div class="src-name">violations_test_file.py</div>\n <div class="snippets">\n <div class="snippet"><table class="snippettable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>\n<span class="normal"> 2</span>\n<span class="normal"> 3</span>\n<span class="normal"> 4</span>\n<span class="normal"> 5</span>\n<span class="normal"> 6</span>\n<span class="normal"> 7</span>\n<span class="normal"> 8</span>\n<span class="normal"> 9</span>\n<span class="normal">10</span>\n<span class="normal">11</span>\n<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span> <span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span>\n<a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span class="hll"> <span class="k">if</span> <span class="n">apple</span><span class="o"><</span><span class="mi">10</span><span class="p">:</span>\n</span><a id="violations_test_file.py-3" name="violations_test_file.py-3"></a> <span class="c1"># Do something </span>\n<a id="violations_test_file.py-4" name="violations_test_file.py-4"></a> <span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">apple</span><span class="p">)</span>\n<a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> <span class="k">return</span> <span class="n">my_list</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>\n<a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span> <span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span>\n</span><a id="violations_test_file.py-7" name="violations_test_file.py-7"></a><span class="w"> </span><span class="sd">"""A less messy function"""</span>\n<a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">spongebob</span><span class="p">:</span>\n<a id="violations_test_file.py-9" name="violations_test_file.py-9"></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">squarepants</span><span class="p">:</span>\n<a id="violations_test_file.py-10" name="violations_test_file.py-10"></a> <span class="k">return</span> <span class="n">char</span>\n<a id="violations_test_file.py-11" name="violations_test_file.py-11"></a><span class="hll"> <span class="n">unused</span><span class="o">=</span><span class="mi">1</span>\n</span><a id="violations_test_file.py-12" name="violations_test_file.py-12"></a> <span class="k">return</span> <span class="kc">None</span>\n</pre></div></td></tr></table></div>\n\n </div>\n </div>\n </body>\n</html>' == '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n <head>\n <meta http-equiv=\'Content-Type\' content=\'text/html; charset=utf-8\'>\n <title>Diff Quality</title>\n <link rel="stylesheet" href="external_style.css">\n </head>\n <body>\n <h1>Diff Quality</h1>\n <p>Quality Report: pycodestyle</p>\n <p>Diff: origin/main...HEAD, staged and unstaged changes</p>\n <table border="1">\n <tr>\n <th>Source File</th>\n <th>Diff Quality (%)</th>\n <th>Lines in violation</th>\n </tr>\n <tr>\n <td>violations_test_file.py</td>\n <td>66.7%</td>\n <td>\n <ul>\n <li>2: E225 missing whitespace around operator</li>\n <li>6: E302 expected 2 blank lines, found 0</li>\n <li>11: E225 missing whitespace around operator</li>\n </ul>\n </td>\n </tr>\n </table>\n <ul>\n <li><b>Total</b>: 9 lines</li>\n <li><b>Violation</b>: 3 lines</li>\n <li><b>% Quality</b>: 66%</li>\n </ul>\n <div class="src-snippet">\n <div class="src-name">violations_test_file.py</div>\n <div class="snippets">\n <div class="snippet"><table class="snippettable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>\n<span class="normal"> 2</span>\n<span class="normal"> 3</span>\n<span class="normal"> 4</span>\n<span class="normal"> 5</span>\n<span class="normal"> 6</span>\n<span class="normal"> 7</span>\n<span class="normal"> 8</span>\n<span class="normal"> 9</span>\n<span class="normal">10</span>\n<span class="normal">11</span>\n<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span>\n<a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span class="hll"> <span class="k">if</span> <span class="n">apple</span><span class="o"><</span><span class="mi">10</span><span class="p">:</span>\n</span><a id="violations_test_file.py-3" name="violations_test_file.py-3"></a> <span class="c1"># Do something </span>\n<a id="violations_test_file.py-4" name="violations_test_file.py-4"></a> <span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">apple</span><span class="p">)</span>\n<a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> <span class="k">return</span> <span class="n">my_list</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>\n<a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span><span class="w"> </span><span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span>\n</span><a id="violations_test_file.py-7" name="violations_test_file.py-7"></a><span class="w"> </span><span class="sd">"""A less messy function"""</span>\n<a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">spongebob</span><span class="p">:</span>\n<a id="violations_test_file.py-9" name="violations_test_file.py-9"></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">squarepants</span><span class="p">:</span>\n<a id="violations_test_file.py-10" name="violations_test_file.py-10"></a> <span class="k">return</span> <span class="n">char</span>\n<a id="violations_test_file.py-11" name="violations_test_file.py-11"></a><span class="hll"> <span class="n">unused</span><span class="o">=</span><span class="mi">1</span>\n</span><a id="violations_test_file.py-12" name="violations_test_file.py-12"></a> <span class="k">return</span> <span class="kc">None</span>\n</pre></div></td></tr></table></div>\n\n </div>\n </div>\n </body>\n</html>' > > <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> > <html> > <head> > <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> > <title>Diff Quality</title> > <link rel="stylesheet" href="external_style.css"> > </head> > <body> > <h1>Diff Quality</h1> > <p>Quality Report: pycodestyle</p> > <p>Diff: origin/main...HEAD, staged and unstaged changes</p> > <table border="1"> > <tr> > <th>Source File</th> > <th>Diff Quality (%)</th> > <th>Lines in violation</th> > </tr> > <tr> > <td>violations_test_file.py</td> > <td>66.7%</td> > <td> > <ul> > <li>2: E225 missing whitespace around operator</li> > <li>6: E302 expected 2 blank lines, found 0</li> > <li>11: E225 missing whitespace around operator</li> > </ul> > </td> > </tr> > </table> > <ul> > <li><b>Total</b>: 9 lines</li> > <li><b>Violation</b>: 3 lines</li> > <li><b>% Quality</b>: 66%</li> > </ul> > <div class="src-snippet"> > <div class="src-name">violations_test_file.py</div> > <div class="snippets"> > <div class="snippet"><table class="snippettable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span> > <span class="normal"> 2</span> > <span class="normal"> 3</span> > <span class="normal"> 4</span> > <span class="normal"> 5</span> > <span class="normal"> 6</span> > <span class="normal"> 7</span> > <span class="normal"> 8</span> > <span class="normal"> 9</span> > <span class="normal">10</span> > <span class="normal">11</span> > - <span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span><span class="w"> </span><span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span> > ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + <span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><a id="violations_test_file.py-1" name="violations_test_file.py-1"></a><span class="k">def</span> <span class="nf">func_1</span><span class="p">(</span><span class="n">apple</span><span class="p">,</span> <span class="n">my_list</span><span class="p">):</span> > ? ^^^^^^ > <a id="violations_test_file.py-2" name="violations_test_file.py-2"></a><span class="hll"> <span class="k">if</span> <span class="n">apple</span><span class="o"><</span><span class="mi">10</span><span class="p">:</span> > </span><a id="violations_test_file.py-3" name="violations_test_file.py-3"></a> <span class="c1"># Do something </span> > <a id="violations_test_file.py-4" name="violations_test_file.py-4"></a> <span class="n">my_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">apple</span><span class="p">)</span> > <a id="violations_test_file.py-5" name="violations_test_file.py-5"></a> <span class="k">return</span> <span class="n">my_list</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span> > - <a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span><span class="w"> </span><span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span> > ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + <a id="violations_test_file.py-6" name="violations_test_file.py-6"></a><span class="hll"><span class="k">def</span> <span class="nf">func_2</span><span class="p">(</span><span class="n">spongebob</span><span class="p">,</span> <span class="n">squarepants</span><span class="p">):</span> > ? ^^^^^^ > </span><a id="violations_test_file.py-7" name="violations_test_file.py-7"></a><span class="w"> </span><span class="sd">"""A less messy function"""</span> > <a id="violations_test_file.py-8" name="violations_test_file.py-8"></a> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">spongebob</span><span class="p">:</span> > <a id="violations_test_file.py-9" name="violations_test_file.py-9"></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">squarepants</span><span class="p">:</span> > <a id="violations_test_file.py-10" name="violations_test_file.py-10"></a> <span class="k">return</span> <span class="n">char</span> > <a id="violations_test_file.py-11" name="violations_test_file.py-11"></a><span class="hll"> <span class="n">unused</span><span class="o">=</span><span class="mi">1</span> > </span><a id="violations_test_file.py-12" name="violations_test_file.py-12"></a> <span class="k">return</span> <span class="kc">None</span> > </pre></div></td></tr></table></div> > > </div> > </div> > </body> > </html> >FAILED tests/test_snippets.py::test_style_defs - AssertionError: assert '.o { color: #666666 } /* Operator */' in 'pre { line-height: 125%; }\ntd.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\nspan.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }\ntd.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\nspan.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }\n.hll { background-color: #ffcccc }\n.c { color: #3D7B7B; font-style: italic } /* Comment */\n.err { border: 1px solid #F00 } /* Error */\n.k { color: #008000; font-weight: bold } /* Keyword */\n.o { color: #666 } /* Operator */\n.ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */\n.cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */\n.cp { color: #9C6500 } /* Comment.Preproc */\n.cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */\n.c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */\n.cs { color: #3D7B7B; font-style: italic } /* Comment.Special */\n.gd { color: #A00000 } /* Generic.Deleted */\n.ge { font-style: italic } /* Generic.Emph */\n.ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */\n.gr { color: #E40000 } /* Generic.Error */\n.gh { color: #000080; font-weight: bold } /* Generic.Heading */\n.gi { color: #008400 } /* Generic.Inserted */\n.go { color: #717171 } /* Generic.Output */\n.gp { color: #000080; font-weight: bold } /* Generic.Prompt */\n.gs { font-weight: bold } /* Generic.Strong */\n.gu { color: #800080; font-weight: bold } /* Generic.Subheading */\n.gt { color: #04D } /* Generic.Traceback */\n.kc { color: #008000; font-weight: bold } /* Keyword.Constant */\n.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\n.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\n.kp { color: #008000 } /* Keyword.Pseudo */\n.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\n.kt { color: #B00040 } /* Keyword.Type */\n.m { color: #666 } /* Literal.Number */\n.s { color: #BA2121 } /* Literal.String */\n.na { color: #687822 } /* Name.Attribute */\n.nb { color: #008000 } /* Name.Builtin */\n.nc { color: #00F; font-weight: bold } /* Name.Class */\n.no { color: #800 } /* Name.Constant */\n.nd { color: #A2F } /* Name.Decorator */\n.ni { color: #717171; font-weight: bold } /* Name.Entity */\n.ne { color: #CB3F38; font-weight: bold } /* Name.Exception */\n.nf { color: #00F } /* Name.Function */\n.nl { color: #767600 } /* Name.Label */\n.nn { color: #00F; font-weight: bold } /* Name.Namespace */\n.nt { color: #008000; font-weight: bold } /* Name.Tag */\n.nv { color: #19177C } /* Name.Variable */\n.ow { color: #A2F; font-weight: bold } /* Operator.Word */\n.w { color: #BBB } /* Text.Whitespace */\n.mb { color: #666 } /* Literal.Number.Bin */\n.mf { color: #666 } /* Literal.Number.Float */\n.mh { color: #666 } /* Literal.Number.Hex */\n.mi { color: #666 } /* Literal.Number.Integer */\n.mo { color: #666 } /* Literal.Number.Oct */\n.sa { color: #BA2121 } /* Literal.String.Affix */\n.sb { color: #BA2121 } /* Literal.String.Backtick */\n.sc { color: #BA2121 } /* Literal.String.Char */\n.dl { color: #BA2121 } /* Literal.String.Delimiter */\n.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\n.s2 { color: #BA2121 } /* Literal.String.Double */\n.se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */\n.sh { color: #BA2121 } /* Literal.String.Heredoc */\n.si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */\n.sx { color: #008000 } /* Literal.String.Other */\n.sr { color: #A45A77 } /* Literal.String.Regex */\n.s1 { color: #BA2121 } /* Literal.String.Single */\n.ss { color: #19177C } /* Literal.String.Symbol */\n.bp { color: #008000 } /* Name.Builtin.Pseudo */\n.fm { color: #00F } /* Name.Function.Magic */\n.vc { color: #19177C } /* Name.Variable.Class */\n.vg { color: #19177C } /* Name.Variable.Global */\n.vi { color: #19177C } /* Name.Variable.Instance */\n.vm { color: #19177C } /* Name.Variable.Magic */\n.il { color: #666 } /* Literal.Number.Integer.Long */' >======================== 2 failed, 297 passed in 16.06s ======================== >pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo(<process_name>).terminate()'. > * ERROR: dev-util/diff-cover-9.2.0::gentoo failed (test phase): > * pytest failed with python3.12 > * > * Call stack: > * ebuild.sh, line 136: Called src_test > * environment, line 3735: Called distutils-r1_src_test > * environment, line 1899: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 658: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 3325: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2850: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2848: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 1098: Called distutils-r1_run_phase 'python_test' > * environment, line 1822: Called python_test > * environment, line 3614: Called distutils-r1_python_test > * environment, line 1768: Called epytest > * environment, line 2295: Called die > * The specific snippet of code: > * [[ ${ret} -ne 0 ]] && die -n "pytest failed with ${EPYTHON}"; > * > * If you need support, post the output of `emerge --info '=dev-util/diff-cover-9.2.0::gentoo'`, > * the complete build log and the output of `emerge -pqv '=dev-util/diff-cover-9.2.0::gentoo'`. > * The complete build log is located at '/var/log/portage/dev-util:diff-cover-9.2.0:20250220-161844.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/dev-util/diff-cover-9.2.0/temp/environment'. > * Working directory: '/var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0' > * S: '/var/tmp/portage/dev-util/diff-cover-9.2.0/work/diff_cover-9.2.0' >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 950013
:
919570
| 919571 |
919572
|
919573
|
919574
|
919575
|
919576
|
919577
|
919578
|
919579