--- Begin Message ---
Source: python-graphviz
Version: 0.20.1+20240103-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20240313 ftbfs-trixie
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> debian/rules binary
> dh binary --buildsystem=pybuild
> dh_update_autotools_config -O--buildsystem=pybuild
> dh_autoreconf -O--buildsystem=pybuild
> dh_auto_configure -O--buildsystem=pybuild
> I: pybuild base:305: python3.12 setup.py config
> running config
> I: pybuild base:305: python3.11 setup.py config
> running config
> dh_auto_build -O--buildsystem=pybuild
> I: pybuild base:305: /usr/bin/python3.12 setup.py build
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/piping.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/quoting.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/_tools.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/exceptions.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/sources.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/copying.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/base.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/dot.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/saving.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/_compat.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/jupyter_integration.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/_defaults.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/encoding.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/rendering.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/unflattening.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> copying graphviz/graphs.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz
> creating
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/piping.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/dot_command.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/execute.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/upstream_version.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/viewing.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/mixins.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/rendering.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> copying graphviz/backend/unflattening.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend
> creating
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> copying graphviz/parameters/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> copying graphviz/parameters/formats.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> copying graphviz/parameters/engines.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> copying graphviz/parameters/base.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> copying graphviz/parameters/mixins.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> copying graphviz/parameters/renderers.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> copying graphviz/parameters/formatters.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/parameters
> I: pybuild base:305: /usr/bin/python3 setup.py build
> running build
> running build_py
> creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/piping.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/quoting.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/_tools.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/exceptions.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/sources.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/copying.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/base.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/dot.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/saving.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/_compat.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/jupyter_integration.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/_defaults.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/encoding.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/rendering.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/unflattening.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> copying graphviz/graphs.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz
> creating
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/piping.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/dot_command.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/execute.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/upstream_version.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/viewing.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/mixins.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/rendering.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> copying graphviz/backend/unflattening.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend
> creating
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> copying graphviz/parameters/__init__.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> copying graphviz/parameters/formats.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> copying graphviz/parameters/engines.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> copying graphviz/parameters/base.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> copying graphviz/parameters/mixins.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> copying graphviz/parameters/renderers.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> copying graphviz/parameters/formatters.py ->
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/parameters
> dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:305: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build; python3.12 -m pytest
> -k 'not test_pipe_pipe_invalid_data_mocked'
> ============================= test session starts
> ==============================
> platform linux -- Python 3.12.2, pytest-8.0.2, pluggy-1.4.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: setup.cfg
> plugins: cov-4.1.0, mock-3.12.0, doctestplus-1.2.0
> collected 351 items / 2 deselected / 349 selected
>
> graphviz/__init__.py::graphviz PASSED [
> 0%]
> graphviz/_tools.py::graphviz._tools.attach PASSED [
> 0%]
> graphviz/_tools.py::graphviz._tools.mapping_items PASSED [
> 0%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe PASSED [
> 1%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe_lines PASSED [
> 1%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe_lines_string PASSED
> [ 1%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe_string PASSED [
> 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.get_supported_formats
> PASSED [ 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.get_supported_suffixes
> PASSED [ 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.infer_format PASSED
> [ 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.render FAILED [
> 3%]
> graphviz/backend/upstream_version.py::graphviz.backend.upstream_version.version
> PASSED [ 3%]
> graphviz/graphs.py::graphviz.graphs PASSED [
> 3%]
> graphviz/jupyter_integration.py::graphviz.jupyter_integration.JupyterIntegration._repr_mimebundle_
> PASSED [ 4%]
> graphviz/piping.py::graphviz.piping.Pipe.pipe PASSED [
> 4%]
> graphviz/quoting.py::graphviz.quoting.a_list PASSED [
> 4%]
> graphviz/quoting.py::graphviz.quoting.attr_list PASSED [
> 4%]
> graphviz/quoting.py::graphviz.quoting.escape PASSED [
> 5%]
> graphviz/quoting.py::graphviz.quoting.nohtml PASSED [
> 5%]
> graphviz/quoting.py::graphviz.quoting.quote PASSED [
> 5%]
> graphviz/quoting.py::graphviz.quoting.quote_edge PASSED [
> 6%]
> graphviz/rendering.py::graphviz.rendering.Render.render PASSED [
> 6%]
> tests/backend/test_execute.py::test_missing_executable[render-args0] PASSED [
> 6%]
> tests/backend/test_execute.py::test_missing_executable[pipe-args1] PASSED [
> 6%]
> tests/backend/test_execute.py::test_missing_executable[unflatten-args2]
> PASSED [ 7%]
> tests/backend/test_execute.py::test_missing_executable[version-args3] PASSED
> [ 7%]
> tests/backend/test_execute.py::test_run_check_oserror PASSED [
> 7%]
> tests/backend/test_execute.py::test_run_check_called_process_error_mocked[quiet=False]
> PASSED [ 8%]
> tests/backend/test_execute.py::test_run_check_called_process_error_mocked[quiet=True]
> PASSED [ 8%]
> tests/backend/test_execute.py::test_run_check_input_lines_mocked PASSED [
> 8%]
> tests/backend/test_piping.py::test_pipe_invalid_data[quiet=False] PASSED [
> 8%]
> tests/backend/test_piping.py::test_pipe_invalid_data[quiet=True] PASSED [
> 9%]
> tests/backend/test_piping.py::test_pipe[dot-svg-None-None-(?s)^<\\?xml
> .+</svg>\\s*$] PASSED [ 9%]
> tests/backend/test_piping.py::test_pipe[dot-ps-ps-core-%!PS-] PASSED [
> 9%]
> tests/backend/test_piping.py::test_pipe[sfdp-svg-None-None-(?s)^<\\?xml
> .+</svg>\\s*$] PASSED [ 10%]
> tests/backend/test_piping.py::test_pipe_mocked[quiet=False] PASSED [
> 10%]
> tests/backend/test_piping.py::test_pipe_mocked[quiet=True] PASSED [
> 10%]
> tests/backend/test_piping.py::test_pipe_string_mocked[quiet=False] PASSED [
> 10%]
> tests/backend/test_piping.py::test_pipe_string_mocked[quiet=True] PASSED [
> 11%]
> tests/backend/test_piping.py::test_pipe_lines_mocked[quiet=False] PASSED [
> 11%]
> tests/backend/test_piping.py::test_pipe_lines_mocked[quiet=True] PASSED [
> 11%]
> tests/backend/test_piping.py::test_pipe_lines_string_mocked[quiet=False]
> PASSED [ 12%]
> tests/backend/test_piping.py::test_pipe_lines_string_mocked[quiet=True]
> PASSED [ 12%]
> tests/backend/test_rendering.py::test_render_missing_file[quiet=False] PASSED
> [ 12%]
> tests/backend/test_rendering.py::test_render_missing_file[quiet=True] PASSED
> [ 12%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args0-ValueError-unknown
> engine] FAILED [ 13%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args1-ValueError-unknown
> format] FAILED [ 13%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args2-ValueError-unknown
> renderer] PASSED [ 13%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args3-RequiredArgumentError-without
> renderer] PASSED [ 14%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args4-ValueError-unknown
> formatter] PASSED [ 14%]
> tests/backend/test_rendering.py::test_render[dot-pdf-None-None-pdf] PASSED [
> 14%]
> tests/backend/test_rendering.py::test_render[dot-plain-dot-core-core.dot.plain]
> PASSED [ 14%]
> tests/backend/test_rendering.py::test_render_img PASSED [
> 15%]
> tests/backend/test_rendering.py::test_render_outfile_differnt_parent PASSED [
> 15%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=False-None] PASSED
> [ 15%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=False-dot_sources]
> PASSED [ 16%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=True-None] PASSED [
> 16%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=True-dot_sources]
> PASSED [ 16%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args0-kwargs0-RequiredArgumentError-filepath:
> \\(required] PASSED [ 16%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args1-kwargs1-RequiredArgumentError-filepath:
> \\(required] PASSED [ 17%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args2-kwargs2-RequiredArgumentError-format:
> \\(required] PASSED [ 17%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args3-kwargs3-RequiredArgumentError-filepath:
> \\(required] PASSED [ 17%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args4-kwargs4-ValueError-outfile
> 'spam\\.gv' must be different from input file 'spam\\.gv'] PASSED [ 18%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args5-kwargs5-ValueError-overwrite_filepath
> cannot be combined with raise_if_result_exists] PASSED [ 18%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args6-kwargs6-FileExistsError-output
> file exists: 'spam.png'] PASSED [ 18%]
> tests/backend/test_rendering.py::test_get_outfile[spam.gv-kwargs0-spam.gv.pdf]
> PASSED [ 18%]
> tests/backend/test_rendering.py::test_get_outfile[spam.gv-kwargs1-spam.gv.dot.plain]
> PASSED [ 19%]
> tests/backend/test_rendering.py::test_get_filepath[spam.pdf-spam.gv] PASSED [
> 19%]
> tests/backend/test_rendering.py::test_get_filepath[spam-spam.gv] PASSED [
> 19%]
> tests/backend/test_rendering.py::test_get_format[spam.gv.pdf-None-pdf] PASSED
> [ 20%]
> tests/backend/test_rendering.py::test_get_format[spam.jpeg-None-jpeg] PASSED
> [ 20%]
> tests/backend/test_rendering.py::test_get_format[spam.SVG-None-svg] PASSED [
> 20%]
> tests/backend/test_rendering.py::test_get_format[spam.pdf-None-pdf] PASSED [
> 20%]
> tests/backend/test_rendering.py::test_get_format[spam.pdf-pdf-pdf] PASSED [
> 21%]
> tests/backend/test_rendering.py::test_get_format_warns[spam.jpg-jpeg-jpeg-FormatSuffixMismatchWarning-expected
> format 'jpg' from outfile differs from given format: 'jpeg'] PASSED [ 21%]
> tests/backend/test_rendering.py::test_get_format_warns[spam.dot-plain-plain-FormatSuffixMismatchWarning-expected
> format 'dot' from outfile differs from given format: 'plain'] PASSED [ 21%]
> tests/backend/test_rendering.py::test_get_format_warns[spam-svg-svg-UnknownSuffixWarning-unknown
> outfile suffix '' \\(expected: '\\.svg'\\)] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_warns[spam.peng-png-png-UnknownSuffixWarning-unknown
> outfile suffix '.peng' \\(expected: '\\.png'\\)] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_warns[spam-pdf-pdf-UnknownSuffixWarning-unknown
> outfile suffix '' \\(expected: '\\.pdf'\\)] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_raises[spam-RequiredArgumentError-cannot
> infer rendering format from suffix '' of outfile: 'spam'] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_raises[spam.peng-RequiredArgumentError-cannot
> infer rendering format from suffix '.peng' of outfile: 'spam.peng'] PASSED [
> 23%]
> tests/backend/test_rendering.py::test_get_format_raises[spam.wav-RequiredArgumentError-cannot
> infer rendering format from suffix '.wav' of outfile: 'spam.wav'] PASSED [
> 23%]
> tests/backend/test_unflattening.py::test_unflatten_stagger_missing PASSED [
> 23%]
> tests/backend/test_unflattening.py::test_unflatten[digraph {1 -> 2; 1 -> 3; 1
> -> 4}-kwargs0-digraph { 1 -> 2 [minlen=1]; 1 -> 3 [minlen=2]; 1 -> 4
> [minlen=3]; }] PASSED [ 24%]
> tests/backend/test_unflattening.py::test_unflatten_mocked PASSED [
> 24%]
> tests/backend/test_upstream_version.py::test_version PASSED [
> 24%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 1.2.3 (mocked)-expected0] PASSED [ 24%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.43.20190912.0211 (20190912.0211)\n-expected1] PASSED [ 25%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.44.2~dev.20200927.0217 (20200927.0217)\n-expected2] PASSED [ 25%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.44.1 (mocked)\n-expected3] PASSED [ 25%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.44.2~dev.20200704.1652 (mocked)\n-expected4] PASSED [ 26%]
> tests/backend/test_upstream_version.py::test_version_parsefail_mocked PASSED
> [ 26%]
> tests/backend/test_viewing.py::test_view_unknown_platform PASSED [
> 26%]
> tests/backend/test_viewing.py::test_view_mocked[platform='darwin'-quiet=False]
> PASSED [ 26%]
> tests/backend/test_viewing.py::test_view_mocked[platform='darwin'-quiet=True]
> PASSED [ 27%]
> tests/backend/test_viewing.py::test_view_mocked[platform='freebsd'-quiet=False]
> PASSED [ 27%]
> tests/backend/test_viewing.py::test_view_mocked[platform='freebsd'-quiet=True]
> PASSED [ 27%]
> tests/backend/test_viewing.py::test_view_mocked[platform='linux'-quiet=False]
> PASSED [ 28%]
> tests/backend/test_viewing.py::test_view_mocked[platform='linux'-quiet=True]
> PASSED [ 28%]
> tests/backend/test_viewing.py::test_view_mocked[platform='windows'-quiet=False]
> PASSED [ 28%]
> tests/backend/test_viewing.py::test_view_mocked[platform='windows'-quiet=True]
> PASSED [ 28%]
> tests/test_all_classes.py::test_copy[Graph] PASSED [
> 29%]
> tests/test_all_classes.py::test_copy[Digraph] PASSED [
> 29%]
> tests/test_all_classes.py::test_copy[Source] PASSED [
> 29%]
> tests/test_all_classes.py::test_str[Graph] PASSED [
> 30%]
> tests/test_all_classes.py::test_str[Digraph] PASSED [
> 30%]
> tests/test_all_classes.py::test_str[Source] PASSED [
> 30%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-engine-ValueError-unknown
> engine] PASSED [ 30%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-format-ValueError-unknown
> format] PASSED [ 31%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-renderer-ValueError-unknown
> renderer] PASSED [ 31%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-formatter-ValueError-unknown
> formatter] PASSED [ 31%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-encoding-LookupError-encoding]
> PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-engine-ValueError-unknown
> engine] PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-format-ValueError-unknown
> format] PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-renderer-ValueError-unknown
> renderer] PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-formatter-ValueError-unknown
> formatter] PASSED [ 33%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-encoding-LookupError-encoding]
> PASSED [ 33%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-engine-ValueError-unknown
> engine] PASSED [ 33%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-format-ValueError-unknown
> format] PASSED [ 34%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-renderer-ValueError-unknown
> renderer] PASSED [ 34%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-formatter-ValueError-unknown
> formatter] PASSED [ 34%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-encoding-LookupError-encoding]
> PASSED [ 34%]
> tests/test_all_classes.py::test_encoding_none[Graph] PASSED [
> 35%]
> tests/test_all_classes.py::test_encoding_none[Digraph] PASSED [
> 35%]
> tests/test_all_classes.py::test_encoding_none[Source] PASSED [
> 35%]
> tests/test_all_classes.py::test_render_raises_before_save[Graph-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save[Digraph-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save[Source-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs1]
> PASSED [ 37%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs2]
> PASSED [ 37%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs3]
> PASSED [ 37%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs0]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs1]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs2]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs3]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs0]
> PASSED [ 39%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs1]
> PASSED [ 39%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs2]
> PASSED [ 39%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs3]
> PASSED [ 40%]
> tests/test_all_classes.py::test_render_mocked[Graph] PASSED [
> 40%]
> tests/test_all_classes.py::test_render_mocked[Digraph] PASSED [
> 40%]
> tests/test_all_classes.py::test_render_mocked[Source] PASSED [
> 40%]
> tests/test_all_classes.py::test_render_outfile_mocked[Graph] PASSED [
> 41%]
> tests/test_all_classes.py::test_render_outfile_mocked[Digraph] PASSED [
> 41%]
> tests/test_all_classes.py::test_render_outfile_mocked[Source] PASSED [
> 41%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=False-Graph]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=False-Digraph]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=False-Source]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=True-Graph]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=True-Digraph]
> PASSED [ 43%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=True-Source]
> PASSED [ 43%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-None]
> PASSED [ 43%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-False]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-True]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-0]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-1]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-2]
> PASSED [ 45%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-None]
> PASSED [ 45%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-False]
> PASSED [ 45%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-True]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-0]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-1]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-2]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-None]
> PASSED [ 47%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-False]
> PASSED [ 47%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-True]
> PASSED [ 47%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-0]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-1]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-2]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-None]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-False]
> PASSED [ 49%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-True]
> PASSED [ 49%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-0] PASSED
> [ 49%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-1] PASSED
> [ 50%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-2] PASSED
> [ 50%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-None]
> PASSED [ 50%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-False]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-True]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-0]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-1]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-2]
> PASSED [ 52%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-None]
> PASSED [ 52%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-False]
> PASSED [ 52%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-True]
> PASSED [ 53%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-0]
> PASSED [ 53%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-1]
> PASSED [ 53%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-2]
> PASSED [ 53%]
> tests/test_all_classes.py::test_save_mocked[Graph] PASSED [
> 54%]
> tests/test_all_classes.py::test_save_mocked[Digraph] PASSED [
> 54%]
> tests/test_all_classes.py::test_save_mocked[Source] PASSED [
> 54%]
> tests/test_all_classes.py::test_pipe[Graph] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe[Digraph] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe[Source] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Graph-None] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Graph-ascii] PASSED [
> 56%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Graph-utf-8] PASSED [
> 56%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Digraph-None] PASSED
> [ 56%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Digraph-ascii] PASSED
> [ 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Digraph-utf-8] PASSED
> [ 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Source-None] PASSED [
> 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Source-ascii] PASSED
> [ 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Source-utf-8] PASSED
> [ 58%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Graph-None] PASSED [
> 58%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Graph-ascii] PASSED [
> 58%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Graph-utf-8] PASSED [
> 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Digraph-None] PASSED [
> 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Digraph-ascii] PASSED
> [ 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Digraph-utf-8] PASSED
> [ 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Source-None] PASSED [
> 60%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Source-ascii] PASSED [
> 60%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Source-utf-8] PASSED [
> 60%]
> tests/test_all_classes.py::test_pipe_lines_mocked[Graph] PASSED [
> 61%]
> tests/test_all_classes.py::test_pipe_lines_mocked[Digraph] PASSED [
> 61%]
> tests/test_all_classes.py::test_pipe_lines_mocked[Source] PASSED [
> 61%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error[Graph] PASSED
> [ 61%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error[Digraph]
> PASSED [ 62%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error[Source]
> PASSED [ 62%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error_mocked[Graph]
> PASSED [ 62%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error_mocked[Digraph]
> PASSED [ 63%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error_mocked[Source]
> PASSED [ 63%]
> tests/test_all_classes.py::test_repr_mimebundle_image_svg_xml_mocked[Graph]
> PASSED [ 63%]
> tests/test_all_classes.py::test_repr_mimebundle_image_svg_xml_mocked[Digraph]
> PASSED [ 63%]
> tests/test_all_classes.py::test_repr_mimebundle_image_svg_xml_mocked[Source]
> PASSED [ 64%]
> tests/test_all_classes.py::test_repr_mimebundle_image_png_mocked[Graph]
> PASSED [ 64%]
> tests/test_all_classes.py::test_repr_mimebundle_image_png_mocked[Digraph]
> PASSED [ 64%]
> tests/test_all_classes.py::test_repr_mimebundle_image_png_mocked[Source]
> PASSED [ 65%]
> tests/test_all_classes.py::test_repr_mimebundle_image_jpeg_mocked[Graph]
> PASSED [ 65%]
> tests/test_all_classes.py::test_repr_mimebundle_image_jpeg_mocked[Digraph]
> PASSED [ 65%]
> tests/test_all_classes.py::test_repr_mimebundle_image_jpeg_mocked[Source]
> PASSED [ 65%]
> tests/test_all_classes.py::test_unflatten[Graph] PASSED [
> 66%]
> tests/test_all_classes.py::test_unflatten[Digraph] PASSED [
> 66%]
> tests/test_all_classes.py::test_unflatten[Source] PASSED [
> 66%]
> tests/test_all_classes.py::test_unflatten_mocked[Graph] PASSED [
> 67%]
> tests/test_all_classes.py::test_unflatten_mocked[Digraph] PASSED [
> 67%]
> tests/test_all_classes.py::test_unflatten_mocked[Source] PASSED [
> 67%]
> tests/test_all_classes.py::test_view_mocked[Graph] PASSED [
> 67%]
> tests/test_all_classes.py::test_view_mocked[Digraph] PASSED [
> 68%]
> tests/test_all_classes.py::test_view_mocked[Source] PASSED [
> 68%]
> tests/test_all_classes.py::test__view_unknown_platform[Graph] PASSED [
> 68%]
> tests/test_all_classes.py::test__view_unknown_platform[Digraph] PASSED [
> 69%]
> tests/test_all_classes.py::test__view_unknown_platform[Source] PASSED [
> 69%]
> tests/test_all_classes.py::test__view_mocked[platform='darwin'-Graph] PASSED
> [ 69%]
> tests/test_all_classes.py::test__view_mocked[platform='darwin'-Digraph]
> PASSED [ 69%]
> tests/test_all_classes.py::test__view_mocked[platform='darwin'-Source] PASSED
> [ 70%]
> tests/test_all_classes.py::test__view_mocked[platform='freebsd'-Graph] PASSED
> [ 70%]
> tests/test_all_classes.py::test__view_mocked[platform='freebsd'-Digraph]
> PASSED [ 70%]
> tests/test_all_classes.py::test__view_mocked[platform='freebsd'-Source]
> PASSED [ 71%]
> tests/test_all_classes.py::test__view_mocked[platform='linux'-Graph] PASSED [
> 71%]
> tests/test_all_classes.py::test__view_mocked[platform='linux'-Digraph] PASSED
> [ 71%]
> tests/test_all_classes.py::test__view_mocked[platform='linux'-Source] PASSED
> [ 71%]
> tests/test_all_classes.py::test__view_mocked[platform='windows'-Graph] PASSED
> [ 72%]
> tests/test_all_classes.py::test__view_mocked[platform='windows'-Digraph]
> PASSED [ 72%]
> tests/test_all_classes.py::test__view_mocked[platform='windows'-Source]
> PASSED [ 72%]
> tests/test_graphs.py::test_init_filename[Graph] PASSED [
> 73%]
> tests/test_graphs.py::test_init_filename[Digraph] PASSED [
> 73%]
> tests/test_graphs.py::test_init_body[Graph-...-...] PASSED [
> 73%]
> tests/test_graphs.py::test_init_body[Digraph-...-...] PASSED [
> 73%]
> tests/test_graphs.py::test_subgraph_render[Graph-...] PASSED [
> 74%]
> tests/test_graphs.py::test_subgraph_render[Digraph-...] PASSED [
> 74%]
> tests/test_graphs.py::test_clear[Graph-False] PASSED [
> 74%]
> tests/test_graphs.py::test_clear[Graph-True] PASSED [
> 75%]
> tests/test_graphs.py::test_clear[Digraph-False] PASSED [
> 75%]
> tests/test_graphs.py::test_clear[Digraph-True] PASSED [
> 75%]
> tests/test_graphs.py::test_iter_subgraph_strict[Graph] PASSED [
> 75%]
> tests/test_graphs.py::test_iter_subgraph_strict[Digraph] PASSED [
> 76%]
> tests/test_graphs.py::test_iter_strict[Graph-...] PASSED [
> 76%]
> tests/test_graphs.py::test_iter_strict[Digraph-...] PASSED [
> 76%]
> tests/test_graphs.py::test_attr_invalid_kw[Graph] PASSED [
> 77%]
> tests/test_graphs.py::test_attr_invalid_kw[Digraph] PASSED [
> 77%]
> tests/test_graphs.py::test_attr_kw_none[Graph-...] PASSED [
> 77%]
> tests/test_graphs.py::test_attr_kw_none[Digraph-...] PASSED [
> 77%]
> tests/test_graphs.py::test_escaped_quotes_and_escapes[Graph-...] PASSED [
> 78%]
> tests/test_graphs.py::test_escaped_quotes_and_escapes[Digraph-...] PASSED [
> 78%]
> tests/test_graphs.py::test_subgraph_graph_none[Graph-...] PASSED [
> 78%]
> tests/test_graphs.py::test_subgraph_graph_none[Digraph-...] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_graph_notsole[Graph] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_graph_notsole[Digraph] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_mixed[Graph, Digraph] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_mixed[Digraph, Graph] PASSED [
> 80%]
> tests/test_graphs.py::test_subgraph_reflexive[Graph-...] PASSED [
> 80%]
> tests/test_graphs.py::test_subgraph_reflexive[Digraph-...] PASSED [
> 80%]
> tests/test_graphs.py::test_subgraph PASSED [
> 81%]
> tests/test_graphs.py::test_label_html PASSED [
> 81%]
> tests/test_init.py::test_set_default_engine_invalid PASSED [
> 81%]
> tests/test_init.py::test_set_default_format_invalid PASSED [
> 81%]
> tests/test_init.py::test_set_default_engine PASSED [
> 82%]
> tests/test_init.py::test_set_default_format PASSED [
> 82%]
> tests/test_init.py::test_set_jupyter_format PASSED [
> 82%]
> tests/test_jupyter_integration.py::test_get_jupyter_format_mimetype_invalid_raises_unknown
> PASSED [ 83%]
> tests/test_jupyter_integration.py::test_get_jupyter_mimetype_format_normalizes
> PASSED [ 83%]
> tests/test_jupyter_integration.py::test_get_jupyter_mimetype_format_raises_unsupported
> PASSED [ 83%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding PASSED [
> 83%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding_mocked[utf-8]
> PASSED [ 84%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding_mocked[ascii]
> PASSED [ 84%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding_mocked[latin1]
> PASSED [ 84%]
> tests/test_parameters.py::test_parameters[Graph] PASSED [
> 85%]
> tests/test_parameters.py::test_parameters[Digraph] PASSED [
> 85%]
> tests/test_parameters.py::test_parameters[Source] PASSED [
> 85%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_engine]
> PASSED [ 85%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_format]
> PASSED [ 86%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_renderer]
> PASSED [ 86%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_formatter]
> PASSED [ 86%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_engine]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_format]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_renderer]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_formatter]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_engine]
> PASSED [ 88%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_format]
> PASSED [ 88%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_renderer]
> PASSED [ 88%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_formatter]
> PASSED [ 89%]
> tests/test_quoting.py::test_deprecated_escape[G] PASSED [
> 89%]
> tests/test_quoting.py::test_deprecated_escape[E] PASSED [
> 89%]
> tests/test_quoting.py::test_deprecated_escape[T] PASSED [
> 89%]
> tests/test_quoting.py::test_deprecated_escape[H] PASSED [
> 90%]
> tests/test_quoting.py::test_deprecated_escape[L] PASSED [
> 90%]
> tests/test_quoting.py::test_deprecated_escape[l] PASSED [
> 90%]
> tests/test_quoting.py::test_quote["spam"-"\\"spam\\""] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[node-"node"] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[EDGE-"EDGE"] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[Graph-"Graph"] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[\\G \\N \\E \\T \\H \\L-"\\G \\N \\E \\T
> \\H \\L"] PASSED [ 92%]
> tests/test_quoting.py::test_quote[\\n \\l \\r-"\\n \\l \\r"] PASSED [
> 92%]
> tests/test_quoting.py::test_quote[\r\n-"\r\n"] PASSED [
> 92%]
> tests/test_quoting.py::test_quote[\\\\n-"\\\\n"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\u0665.\u0660-"\u0665.\u0660"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\\"spam-"\\"spam"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\\\\"spam-"\\\\\\"spam"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\\\\\\"spam-"\\\\\\"spam"] PASSED [
> 94%]
> tests/test_quoting.py::test_quote[\\\\\\\\"spam-"\\\\\\\\\\"spam"] PASSED [
> 94%]
> tests/test_quoting.py::test_attr_list[attributes0- [spam=eggs]] PASSED [
> 94%]
> tests/test_quoting.py::test_attr_list[attributes1- [spam=eggs]] PASSED [
> 95%]
> tests/test_quoting.py::test_nohtml[spam-spam-spam] PASSED [
> 95%]
> tests/test_quoting.py::test_nohtml[<>-*-<>-<>-*-<>-"<>-*-<>"] PASSED [
> 95%]
> tests/test_saving.py::test_saves_source_from_file PASSED [
> 95%]
> tests/test_sources.py::test_source_parameter[engine] PASSED [
> 96%]
> tests/test_sources.py::test_source_parameter[format] PASSED [
> 96%]
> tests/test_sources.py::test_source_parameter[encoding] PASSED [
> 96%]
> tests/test_sources.py::test_init PASSED [
> 97%]
> tests/test_sources.py::test_init_filename PASSED [
> 97%]
> tests/test_sources.py::test_filepath PASSED [
> 97%]
> tests/test_sources.py::test_from_file PASSED [
> 97%]
> tests/test_sources.py::test_source_iter PASSED [
> 98%]
> tests/test_tools.py::test_mkdirs_invalid PASSED [
> 98%]
> tests/test_tools.py::test_mkdirs PASSED [
> 98%]
> tests/test_tools.py::test_deprecate_positional_args[FutureWarning-
> third='third' ] PASSED [ 99%]
> tests/test_tools.py::test_deprecate_positional_args[DeprecationWarning-
> third='third' ] PASSED [ 99%]
> tests/test_tools.py::test_deprecate_positional_args[PendingDeprecationWarning-
> third='third' ] PASSED [ 99%]
> tests/test_tools.py::test_deprecate_positional_args[None-None] PASSED
> [100%]
>
> =================================== FAILURES
> ===================================
> _________________ [doctest] graphviz.backend.rendering.render
> __________________
> 250 graphviz.UnknownSuffixWarning: If the suffix of ``outfile``
> 251 is empty or unknown.
> 252 graphviz.FormatSuffixMismatchWarning: If the suffix of ``outfile``
> 253 does not match the given ``format``.
> 254
> 255 Example:
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> UNEXPECTED EXCEPTION: FileNotFoundError(2, 'No such file or directory')
> Traceback (most recent call last):
> File "/usr/lib/python3.12/doctest.py", line 1361, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[3]>", line 1, in <module>
> File "/usr/lib/python3.12/pathlib.py", line 1049, in write_text
> with self.open(mode='w', encoding=encoding, errors=errors,
> newline=newline) as f:
>
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.12/pathlib.py", line 1015, in open
> return io.open(self, mode, buffering, encoding, errors, newline)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> FileNotFoundError: [Errno 2] No such file or directory:
> 'doctest-output/spam.gv'
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/rendering.py:259:
> UnexpectedException
> 251 is empty or unknown.
> 252 graphviz.FormatSuffixMismatchWarning: If the suffix of ``outfile``
> 253 does not match the given ``format``.
> 254
> 255 Example:
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> 260 >>> graphviz.render('dot', 'png',
> 'doctest-output/spam.gv').replace('\\', '/')
> UNEXPECTED EXCEPTION: ExecutableNotFound("failed to execute PosixPath('dot'),
> make sure the Graphviz executables are on your systems' PATH")
> Traceback (most recent call last):
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/execute.py",
> line 78, in run_check
> proc = subprocess.run(cmd, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.12/subprocess.py", line 548, in run
> with Popen(*popenargs, **kwargs) as process:
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__
> self._execute_child(args, executable, preexec_fn, close_fds,
> File "/usr/lib/python3.12/subprocess.py", line 1953, in _execute_child
> raise child_exception_type(errno_num, err_msg, err_filename)
> FileNotFoundError: [Errno 2] No such file or directory:
> PosixPath('doctest-output')
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
> File "/usr/lib/python3.12/doctest.py", line 1361, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[4]>", line 1, in <module>
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/_tools.py",
> line 171, in wrapper
> return func(*args, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/rendering.py",
> line 326, in render
> execute.run_check(cmd,
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/execute.py",
> line 81, in run_check
> raise ExecutableNotFound(cmd) from e
> graphviz.backend.execute.ExecutableNotFound: failed to execute
> PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/rendering.py:260:
> UnexpectedException
> 253 does not match the given ``format``.
> 254
> 255 Example:
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> 260 >>> graphviz.render('dot', 'png',
> 'doctest-output/spam.gv').replace('\\', '/')
> 261 'doctest-output/spam.gv.png'
> 262 >>> graphviz.render('dot', filepath='doctest-output/spam.gv',
> UNEXPECTED EXCEPTION: ExecutableNotFound("failed to execute PosixPath('dot'),
> make sure the Graphviz executables are on your systems' PATH")
> Traceback (most recent call last):
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/execute.py",
> line 78, in run_check
> proc = subprocess.run(cmd, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.12/subprocess.py", line 548, in run
> with Popen(*popenargs, **kwargs) as process:
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__
> self._execute_child(args, executable, preexec_fn, close_fds,
> File "/usr/lib/python3.12/subprocess.py", line 1953, in _execute_child
> raise child_exception_type(errno_num, err_msg, err_filename)
> FileNotFoundError: [Errno 2] No such file or directory:
> PosixPath('doctest-output')
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
> File "/usr/lib/python3.12/doctest.py", line 1361, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[5]>", line 1, in <module>
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/_tools.py",
> line 171, in wrapper
> return func(*args, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/rendering.py",
> line 326, in render
> execute.run_check(cmd,
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/execute.py",
> line 81, in run_check
> raise ExecutableNotFound(cmd) from e
> graphviz.backend.execute.ExecutableNotFound: failed to execute
> PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/rendering.py:262:
> UnexpectedException
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> 260 >>> graphviz.render('dot', 'png',
> 'doctest-output/spam.gv').replace('\\', '/')
> 261 'doctest-output/spam.gv.png'
> 262 >>> graphviz.render('dot', filepath='doctest-output/spam.gv',
> 263 ...
> outfile='doctest-output/spam.png').replace('\\', '/')
> 264 'doctest-output/spam.png'
> 265 >>> graphviz.render('dot',
> outfile='doctest-output/spam.pdf').replace('\\', '/')
> UNEXPECTED EXCEPTION: ExecutableNotFound("failed to execute PosixPath('dot'),
> make sure the Graphviz executables are on your systems' PATH")
> Traceback (most recent call last):
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/execute.py",
> line 78, in run_check
> proc = subprocess.run(cmd, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.12/subprocess.py", line 548, in run
> with Popen(*popenargs, **kwargs) as process:
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.12/subprocess.py", line 1026, in __init__
> self._execute_child(args, executable, preexec_fn, close_fds,
> File "/usr/lib/python3.12/subprocess.py", line 1953, in _execute_child
> raise child_exception_type(errno_num, err_msg, err_filename)
> FileNotFoundError: [Errno 2] No such file or directory:
> PosixPath('doctest-output')
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
> File "/usr/lib/python3.12/doctest.py", line 1361, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[6]>", line 1, in <module>
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/_tools.py",
> line 171, in wrapper
> return func(*args, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/rendering.py",
> line 326, in render
> execute.run_check(cmd,
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/execute.py",
> line 81, in run_check
> raise ExecutableNotFound(cmd) from e
> graphviz.backend.execute.ExecutableNotFound: failed to execute
> PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build/graphviz/backend/rendering.py:265:
> UnexpectedException
> ------------------------------ Captured log call
> -------------------------------
> DEBUG graphviz.backend.execute:execute.py:61 run [PosixPath('dot'),
> '-Kdot', '-Tpng', '-O', 'spam.gv']
> DEBUG graphviz.backend.execute:execute.py:61 run [PosixPath('dot'),
> '-Kdot', '-Tpng', '-o', 'spam.png', 'spam.gv']
> DEBUG graphviz.backend.execute:execute.py:61 run [PosixPath('dot'),
> '-Kdot', '-Tpdf', '-o', 'spam.pdf', 'spam.gv']
> ____ test_render_unknown_parameter_raises[args0-ValueError-unknown engine]
> _____
>
> args = ['', 'pdf', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown engine'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> with pytest.raises(expected_exception, match=match),
> pytest.deprecated_call():
> > graphviz.render(*args)
>
> tests/backend/test_rendering.py:40:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> graphviz/_tools.py:171: in wrapper
> return func(*args, **kwargs)
> graphviz/backend/rendering.py:314: in render
> cmd = dot_command.command(engine, format,
> graphviz/backend/dot_command.py:31: in command
> parameters.verify_engine(engine, required=True)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> engine = ''
>
> def verify_engine(engine: str, *, required: bool = REQUIRED) -> None:
> if engine is None:
> if required:
> raise ValueError('missing engine')
> elif engine.lower() not in ENGINES:
> > raise ValueError(f'unknown engine: {engine!r}'
> f' (must be one of {sorted(ENGINES)})')
> E ValueError: unknown engine: '' (must be one of ['circo', 'dot',
> 'fdp', 'neato', 'osage', 'patchwork', 'sfdp', 'twopi'])
>
> graphviz/parameters/engines.py:28: ValueError
>
> During handling of the above exception, another exception occurred:
>
> args = ['', 'pdf', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown engine'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> > with pytest.raises(expected_exception, match=match),
> > pytest.deprecated_call():
> E Failed: DID NOT WARN. No warnings of type (<class
> 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>, <class
> 'FutureWarning'>) were emitted.
> E Emitted warnings: [].
>
> tests/backend/test_rendering.py:39: Failed
> ____ test_render_unknown_parameter_raises[args1-ValueError-unknown format]
> _____
>
> args = ['dot', '', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown format'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> with pytest.raises(expected_exception, match=match),
> pytest.deprecated_call():
> > graphviz.render(*args)
>
> tests/backend/test_rendering.py:40:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> graphviz/_tools.py:171: in wrapper
> return func(*args, **kwargs)
> graphviz/backend/rendering.py:307: in render
> outfile = get_outfile(filepath,
> graphviz/backend/rendering.py:142: in get_outfile
> parameters.verify_format(format, required=True)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> format = ''
>
> def verify_format(format: str, *, required: bool = REQUIRED) -> None:
> if format is None:
> if required:
> raise ValueError('missing format')
> elif format.lower() not in FORMATS:
> > raise ValueError(f'unknown format: {format!r}'
> f' (must be one of {sorted(FORMATS)})')
> E ValueError: unknown format: '' (must be one of ['bmp', 'canon',
> 'cgimage', 'cmap', 'cmapx', 'cmapx_np', 'dot', 'dot_json', 'eps', 'exr',
> 'fig', 'gd', 'gd2', 'gif', 'gtk', 'gv', 'ico', 'imap', 'imap_np', 'ismap',
> 'jp2', 'jpe', 'jpeg', 'jpg', 'json', 'json0', 'pct', 'pdf', 'pic', 'pict',
> 'plain', 'plain-ext', 'png', 'pov', 'ps', 'ps2', 'psd', 'sgi', 'svg', 'svgz',
> 'tga', 'tif', 'tiff', 'tk', 'vml', 'vmlz', 'vrml', 'wbmp', 'webp', 'x11',
> 'xdot', 'xdot1.2', 'xdot1.4', 'xdot_json', 'xlib'])
>
> graphviz/parameters/formats.py:56: ValueError
>
> During handling of the above exception, another exception occurred:
>
> args = ['dot', '', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown format'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> > with pytest.raises(expected_exception, match=match),
> > pytest.deprecated_call():
> E Failed: DID NOT WARN. No warnings of type (<class
> 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>, <class
> 'FutureWarning'>) were emitted.
> E Emitted warnings: [].
>
> tests/backend/test_rendering.py:39: Failed
>
> ---------- coverage: platform linux, python 3.12.2-final-0 -----------
> Name
> Stmts Miss Cover
> -----------------------------------------------------------------------------------------------
> /<<PKGBUILDDIR>>/conftest.py 23 2 91%
> /usr/lib/python3/dist-packages/_distutils_hack/__init__.py
> 100 95 5%
> /usr/lib/python3/dist-packages/_pytest/_argcomplete.py
> 37 36 3%
> /usr/lib/python3/dist-packages/_pytest/_code/code.py
> 754 516 32%
> /usr/lib/python3/dist-packages/_pytest/_code/source.py
> 145 78 46%
> /usr/lib/python3/dist-packages/_pytest/_io/saferepr.py
> 67 49 27%
> /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py
> 126 80 37%
> /usr/lib/python3/dist-packages/_pytest/_io/wcwidth.py
> 25 16 36%
> /usr/lib/python3/dist-packages/_pytest/_py/path.py
> 948 943 1%
> /usr/lib/python3/dist-packages/_pytest/assertion/__init__.py
> 88 74 16%
> /usr/lib/python3/dist-packages/_pytest/assertion/rewrite.py
> 663 342 48%
> /usr/lib/python3/dist-packages/_pytest/cacheprovider.py
> 316 265 16%
> /usr/lib/python3/dist-packages/_pytest/capture.py
> 607 450 26%
> /usr/lib/python3/dist-packages/_pytest/compat.py
> 127 79 38%
> /usr/lib/python3/dist-packages/_pytest/config/__init__.py
> 917 731 20%
> /usr/lib/python3/dist-packages/_pytest/config/argparsing.py
> 271 191 30%
> /usr/lib/python3/dist-packages/_pytest/config/compat.py
> 44 22 50%
> /usr/lib/python3/dist-packages/_pytest/debugging.py
> 230 221 4%
> /usr/lib/python3/dist-packages/_pytest/deprecated.py
> 26 25 4%
> /usr/lib/python3/dist-packages/_pytest/doctest.py
> 355 189 47%
> /usr/lib/python3/dist-packages/_pytest/faulthandler.py
> 58 43 26%
> /usr/lib/python3/dist-packages/_pytest/fixtures.py
> 809 428 47%
> /usr/lib/python3/dist-packages/_pytest/helpconfig.py
> 135 125 7%
> /usr/lib/python3/dist-packages/_pytest/junitxml.py
> 367 365 1%
> /usr/lib/python3/dist-packages/_pytest/legacypath.py
> 216 188 13%
> /usr/lib/python3/dist-packages/_pytest/logging.py
> 450 303 33%
> /usr/lib/python3/dist-packages/_pytest/main.py
> 493 268 46%
> /usr/lib/python3/dist-packages/_pytest/mark/__init__.py
> 132 85 36%
> /usr/lib/python3/dist-packages/_pytest/mark/expression.py
> 123 74 40%
> /usr/lib/python3/dist-packages/_pytest/mark/structures.py
> 276 195 29%
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py
> 168 114 32%
> /usr/lib/python3/dist-packages/_pytest/nodes.py
> 337 206 39%
> /usr/lib/python3/dist-packages/_pytest/nose.py
> 29 20 31%
> /usr/lib/python3/dist-packages/_pytest/outcomes.py
> 106 94 11%
> /usr/lib/python3/dist-packages/_pytest/pastebin.py
> 70 69 1%
> /usr/lib/python3/dist-packages/_pytest/pathlib.py
> 403 281 30%
> /usr/lib/python3/dist-packages/_pytest/python.py
> 911 576 37%
> /usr/lib/python3/dist-packages/_pytest/python_api.py
> 334 307 8%
> /usr/lib/python3/dist-packages/_pytest/python_path.py
> 16 15 6%
> /usr/lib/python3/dist-packages/_pytest/recwarn.py
> 140 84 40%
> /usr/lib/python3/dist-packages/_pytest/reports.py
> 298 258 13%
> /usr/lib/python3/dist-packages/_pytest/runner.py
> 301 156 48%
> /usr/lib/python3/dist-packages/_pytest/scope.py
> 37 27 27%
> /usr/lib/python3/dist-packages/_pytest/setuponly.py
> 59 51 14%
> /usr/lib/python3/dist-packages/_pytest/setupplan.py
> 24 20 17%
> /usr/lib/python3/dist-packages/_pytest/skipping.py
> 165 114 31%
> /usr/lib/python3/dist-packages/_pytest/stash.py
> 36 25 31%
> /usr/lib/python3/dist-packages/_pytest/stepwise.py
> 74 72 3%
> /usr/lib/python3/dist-packages/_pytest/terminal.py
> 927 711 23%
> /usr/lib/python3/dist-packages/_pytest/threadexception.py
> 43 27 37%
> /usr/lib/python3/dist-packages/_pytest/tmpdir.py
> 156 89 43%
> /usr/lib/python3/dist-packages/_pytest/unittest.py
> 253 242 4%
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py
> 45 29 36%
> /usr/lib/python3/dist-packages/_pytest/warnings.py
> 74 52 30%
> /usr/lib/python3/dist-packages/pkg_resources/extern/__init__.py
> 37 34 8%
> /usr/lib/python3/dist-packages/pluggy/_callers.py
> 109 44 60%
> /usr/lib/python3/dist-packages/pluggy/_hooks.py
> 266 180 32%
> /usr/lib/python3/dist-packages/pluggy/_manager.py
> 230 180 22%
> /usr/lib/python3/dist-packages/pluggy/_result.py
> 50 39 22%
> /usr/lib/python3/dist-packages/pluggy/_tracing.py
> 48 38 21%
> /usr/lib/python3/dist-packages/pytest/__init__.py
> 91 89 2%
> /usr/lib/python3/dist-packages/pytest_cov/compat.py
> 17 13 24%
> /usr/lib/python3/dist-packages/pytest_cov/embed.py
> 69 63 9%
> /usr/lib/python3/dist-packages/pytest_cov/engine.py
> 250 229 8%
> /usr/lib/python3/dist-packages/pytest_cov/plugin.py
> 224 194 13%
> /usr/lib/python3/dist-packages/pytest_doctestplus/plugin.py
> 486 479 1%
> /usr/lib/python3/dist-packages/pytest_mock/_util.py
> 19 11 42%
> /usr/lib/python3/dist-packages/pytest_mock/plugin.py
> 312 233 25%
> graphviz/__init__.py
> 36 0 100%
> graphviz/_compat.py
> 5 0 100%
> graphviz/_defaults.py
> 21 0 100%
> graphviz/_tools.py
> 64 0 100%
> graphviz/backend/__init__.py
> 9 0 100%
> graphviz/backend/dot_command.py
> 20 0 100%
> graphviz/backend/execute.py
> 61 0 100%
> graphviz/backend/mixins.py
> 37 0 100%
> graphviz/backend/piping.py
> 26 0 100%
> graphviz/backend/rendering.py
> 83 0 100%
> graphviz/backend/unflattening.py
> 21 0 100%
> graphviz/backend/upstream_version.py
> 15 0 100%
> graphviz/backend/viewing.py
> 34 0 100%
> graphviz/base.py
> 8 0 100%
> graphviz/copying.py
> 7 0 100%
> graphviz/dot.py
> 132 0 100%
> graphviz/encoding.py
> 22 0 100%
> graphviz/exceptions.py
> 7 0 100%
> graphviz/graphs.py
> 28 0 100%
> graphviz/jupyter_integration.py
> 34 0 100%
> graphviz/parameters/__init__.py
> 6 0 100%
> graphviz/parameters/base.py
> 7 0 100%
> graphviz/parameters/engines.py
> 32 0 100%
> graphviz/parameters/formats.py
> 32 0 100%
> graphviz/parameters/formatters.py
> 32 0 100%
> graphviz/parameters/mixins.py
> 26 0 100%
> graphviz/parameters/renderers.py
> 32 0 100%
> graphviz/piping.py
> 39 0 100%
> graphviz/quoting.py
> 59 0 100%
> graphviz/rendering.py
> 40 0 100%
> graphviz/saving.py
> 44 0 100%
> graphviz/sources.py
> 52 0 100%
> graphviz/unflattening.py
> 14 0 100%
> tests/_common.py
> 25 2 92%
> tests/backend/conftest.py
> 13 1 92%
> tests/backend/test_execute.py
> 43 0 100%
> tests/backend/test_piping.py
> 72 18 75%
> tests/backend/test_rendering.py
> 107 0 100%
> tests/backend/test_unflattening.py
> 20 0 100%
> tests/backend/test_upstream_version.py
> 20 0 100%
> tests/backend/test_viewing.py
> 20 1 95%
> tests/conftest.py
> 62 22 65%
> tests/test_all_classes.py
> 208 0 100%
> tests/test_graphs.py
> 117 0 100%
> tests/test_init.py
> 77 0 100%
> tests/test_jupyter_integration.py
> 33 0 100%
> tests/test_parameters.py
> 33 0 100%
> tests/test_quoting.py
> 29 0 100%
> tests/test_saving.py
> 10 0 100%
> tests/test_sources.py
> 47 1 98%
> tests/test_tools.py
> 39 0 100%
> -----------------------------------------------------------------------------------------------
> TOTAL
> 18202 11988 34%
> Coverage HTML written to dir htmlcov
>
> ============================= slowest 10 durations
> =============================
> 0.09s call
> .pybuild/cpython3_3.12_graphviz/build/graphviz/jupyter_integration.py::graphviz.jupyter_integration.JupyterIntegration._repr_mimebundle_
> 0.08s call
> .pybuild/cpython3_3.12_graphviz/build/graphviz/piping.py::graphviz.piping.Pipe.pipe
> 0.07s setup
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_execute.py::test_run_check_input_lines_mocked
> 0.07s setup
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_piping.py::test_pipe_lines_string_mocked[quiet=False]
> 0.07s setup
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_piping.py::test_pipe_lines_mocked[quiet=True]
> 0.07s setup
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_piping.py::test_pipe_lines_mocked[quiet=False]
> 0.07s setup
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_piping.py::test_pipe_lines_string_mocked[quiet=True]
> 0.06s setup
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='darwin'-quiet=False]
> 0.05s call
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_rendering.py::test_render[dot-plain-dot-core-core.dot.plain]
> 0.05s call
> .pybuild/cpython3_3.12_graphviz/build/tests/backend/test_piping.py::test_pipe[sfdp-svg-None-None-(?s)^<\\?xml
> .+</svg>\\s*$]
> =========================== short test summary info
> ============================
> FAILED graphviz/backend/rendering.py::graphviz.backend.rendering.render
> FAILED
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args0-ValueError-unknown
> engine]
> FAILED
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args1-ValueError-unknown
> format]
> ================= 3 failed, 346 passed, 2 deselected in 10.33s
> =================
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_graphviz/build; python3.12 -m pytest
> -k 'not test_pipe_pipe_invalid_data_mocked'
> I: pybuild base:305: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build; python3.11 -m pytest
> -k 'not test_pipe_pipe_invalid_data_mocked'
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.8, pytest-8.0.2, pluggy-1.4.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: setup.cfg
> plugins: cov-4.1.0, mock-3.12.0, doctestplus-1.2.0
> collected 351 items / 2 deselected / 349 selected
>
> graphviz/__init__.py::graphviz PASSED [
> 0%]
> graphviz/_tools.py::graphviz._tools.attach PASSED [
> 0%]
> graphviz/_tools.py::graphviz._tools.mapping_items PASSED [
> 0%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe PASSED [
> 1%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe_lines PASSED [
> 1%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe_lines_string PASSED
> [ 1%]
> graphviz/backend/piping.py::graphviz.backend.piping.pipe_string PASSED [
> 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.get_supported_formats
> PASSED [ 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.get_supported_suffixes
> PASSED [ 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.infer_format PASSED
> [ 2%]
> graphviz/backend/rendering.py::graphviz.backend.rendering.render FAILED [
> 3%]
> graphviz/backend/upstream_version.py::graphviz.backend.upstream_version.version
> PASSED [ 3%]
> graphviz/graphs.py::graphviz.graphs PASSED [
> 3%]
> graphviz/jupyter_integration.py::graphviz.jupyter_integration.JupyterIntegration._repr_mimebundle_
> PASSED [ 4%]
> graphviz/piping.py::graphviz.piping.Pipe.pipe PASSED [
> 4%]
> graphviz/quoting.py::graphviz.quoting.a_list PASSED [
> 4%]
> graphviz/quoting.py::graphviz.quoting.attr_list PASSED [
> 4%]
> graphviz/quoting.py::graphviz.quoting.escape PASSED [
> 5%]
> graphviz/quoting.py::graphviz.quoting.nohtml PASSED [
> 5%]
> graphviz/quoting.py::graphviz.quoting.quote PASSED [
> 5%]
> graphviz/quoting.py::graphviz.quoting.quote_edge PASSED [
> 6%]
> graphviz/rendering.py::graphviz.rendering.Render.render PASSED [
> 6%]
> tests/backend/test_execute.py::test_missing_executable[render-args0] PASSED [
> 6%]
> tests/backend/test_execute.py::test_missing_executable[pipe-args1] PASSED [
> 6%]
> tests/backend/test_execute.py::test_missing_executable[unflatten-args2]
> PASSED [ 7%]
> tests/backend/test_execute.py::test_missing_executable[version-args3] PASSED
> [ 7%]
> tests/backend/test_execute.py::test_run_check_oserror PASSED [
> 7%]
> tests/backend/test_execute.py::test_run_check_called_process_error_mocked[quiet=False]
> PASSED [ 8%]
> tests/backend/test_execute.py::test_run_check_called_process_error_mocked[quiet=True]
> PASSED [ 8%]
> tests/backend/test_execute.py::test_run_check_input_lines_mocked PASSED [
> 8%]
> tests/backend/test_piping.py::test_pipe_invalid_data[quiet=False] PASSED [
> 8%]
> tests/backend/test_piping.py::test_pipe_invalid_data[quiet=True] PASSED [
> 9%]
> tests/backend/test_piping.py::test_pipe[dot-svg-None-None-(?s)^<\\?xml
> .+</svg>\\s*$] PASSED [ 9%]
> tests/backend/test_piping.py::test_pipe[dot-ps-ps-core-%!PS-] PASSED [
> 9%]
> tests/backend/test_piping.py::test_pipe[sfdp-svg-None-None-(?s)^<\\?xml
> .+</svg>\\s*$] PASSED [ 10%]
> tests/backend/test_piping.py::test_pipe_mocked[quiet=False] PASSED [
> 10%]
> tests/backend/test_piping.py::test_pipe_mocked[quiet=True] PASSED [
> 10%]
> tests/backend/test_piping.py::test_pipe_string_mocked[quiet=False] PASSED [
> 10%]
> tests/backend/test_piping.py::test_pipe_string_mocked[quiet=True] PASSED [
> 11%]
> tests/backend/test_piping.py::test_pipe_lines_mocked[quiet=False] PASSED [
> 11%]
> tests/backend/test_piping.py::test_pipe_lines_mocked[quiet=True] PASSED [
> 11%]
> tests/backend/test_piping.py::test_pipe_lines_string_mocked[quiet=False]
> PASSED [ 12%]
> tests/backend/test_piping.py::test_pipe_lines_string_mocked[quiet=True]
> PASSED [ 12%]
> tests/backend/test_rendering.py::test_render_missing_file[quiet=False] PASSED
> [ 12%]
> tests/backend/test_rendering.py::test_render_missing_file[quiet=True] PASSED
> [ 12%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args0-ValueError-unknown
> engine] FAILED [ 13%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args1-ValueError-unknown
> format] FAILED [ 13%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args2-ValueError-unknown
> renderer] PASSED [ 13%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args3-RequiredArgumentError-without
> renderer] PASSED [ 14%]
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args4-ValueError-unknown
> formatter] PASSED [ 14%]
> tests/backend/test_rendering.py::test_render[dot-pdf-None-None-pdf] PASSED [
> 14%]
> tests/backend/test_rendering.py::test_render[dot-plain-dot-core-core.dot.plain]
> PASSED [ 14%]
> tests/backend/test_rendering.py::test_render_img PASSED [
> 15%]
> tests/backend/test_rendering.py::test_render_outfile_differnt_parent PASSED [
> 15%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=False-None] PASSED
> [ 15%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=False-dot_sources]
> PASSED [ 16%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=True-None] PASSED [
> 16%]
> tests/backend/test_rendering.py::test_render_mocked[quiet=True-dot_sources]
> PASSED [ 16%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args0-kwargs0-RequiredArgumentError-filepath:
> \\(required] PASSED [ 16%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args1-kwargs1-RequiredArgumentError-filepath:
> \\(required] PASSED [ 17%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args2-kwargs2-RequiredArgumentError-format:
> \\(required] PASSED [ 17%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args3-kwargs3-RequiredArgumentError-filepath:
> \\(required] PASSED [ 17%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args4-kwargs4-ValueError-outfile
> 'spam\\.gv' must be different from input file 'spam\\.gv'] PASSED [ 18%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args5-kwargs5-ValueError-overwrite_filepath
> cannot be combined with raise_if_result_exists] PASSED [ 18%]
> tests/backend/test_rendering.py::test_render_raises_mocked[args6-kwargs6-FileExistsError-output
> file exists: 'spam.png'] PASSED [ 18%]
> tests/backend/test_rendering.py::test_get_outfile[spam.gv-kwargs0-spam.gv.pdf]
> PASSED [ 18%]
> tests/backend/test_rendering.py::test_get_outfile[spam.gv-kwargs1-spam.gv.dot.plain]
> PASSED [ 19%]
> tests/backend/test_rendering.py::test_get_filepath[spam.pdf-spam.gv] PASSED [
> 19%]
> tests/backend/test_rendering.py::test_get_filepath[spam-spam.gv] PASSED [
> 19%]
> tests/backend/test_rendering.py::test_get_format[spam.gv.pdf-None-pdf] PASSED
> [ 20%]
> tests/backend/test_rendering.py::test_get_format[spam.jpeg-None-jpeg] PASSED
> [ 20%]
> tests/backend/test_rendering.py::test_get_format[spam.SVG-None-svg] PASSED [
> 20%]
> tests/backend/test_rendering.py::test_get_format[spam.pdf-None-pdf] PASSED [
> 20%]
> tests/backend/test_rendering.py::test_get_format[spam.pdf-pdf-pdf] PASSED [
> 21%]
> tests/backend/test_rendering.py::test_get_format_warns[spam.jpg-jpeg-jpeg-FormatSuffixMismatchWarning-expected
> format 'jpg' from outfile differs from given format: 'jpeg'] PASSED [ 21%]
> tests/backend/test_rendering.py::test_get_format_warns[spam.dot-plain-plain-FormatSuffixMismatchWarning-expected
> format 'dot' from outfile differs from given format: 'plain'] PASSED [ 21%]
> tests/backend/test_rendering.py::test_get_format_warns[spam-svg-svg-UnknownSuffixWarning-unknown
> outfile suffix '' \\(expected: '\\.svg'\\)] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_warns[spam.peng-png-png-UnknownSuffixWarning-unknown
> outfile suffix '.peng' \\(expected: '\\.png'\\)] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_warns[spam-pdf-pdf-UnknownSuffixWarning-unknown
> outfile suffix '' \\(expected: '\\.pdf'\\)] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_raises[spam-RequiredArgumentError-cannot
> infer rendering format from suffix '' of outfile: 'spam'] PASSED [ 22%]
> tests/backend/test_rendering.py::test_get_format_raises[spam.peng-RequiredArgumentError-cannot
> infer rendering format from suffix '.peng' of outfile: 'spam.peng'] PASSED [
> 23%]
> tests/backend/test_rendering.py::test_get_format_raises[spam.wav-RequiredArgumentError-cannot
> infer rendering format from suffix '.wav' of outfile: 'spam.wav'] PASSED [
> 23%]
> tests/backend/test_unflattening.py::test_unflatten_stagger_missing PASSED [
> 23%]
> tests/backend/test_unflattening.py::test_unflatten[digraph {1 -> 2; 1 -> 3; 1
> -> 4}-kwargs0-digraph { 1 -> 2 [minlen=1]; 1 -> 3 [minlen=2]; 1 -> 4
> [minlen=3]; }] PASSED [ 24%]
> tests/backend/test_unflattening.py::test_unflatten_mocked PASSED [
> 24%]
> tests/backend/test_upstream_version.py::test_version PASSED [
> 24%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 1.2.3 (mocked)-expected0] PASSED [ 24%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.43.20190912.0211 (20190912.0211)\n-expected1] PASSED [ 25%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.44.2~dev.20200927.0217 (20200927.0217)\n-expected2] PASSED [ 25%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.44.1 (mocked)\n-expected3] PASSED [ 25%]
> tests/backend/test_upstream_version.py::test_version_mocked[dot - graphviz
> version 2.44.2~dev.20200704.1652 (mocked)\n-expected4] PASSED [ 26%]
> tests/backend/test_upstream_version.py::test_version_parsefail_mocked PASSED
> [ 26%]
> tests/backend/test_viewing.py::test_view_unknown_platform PASSED [
> 26%]
> tests/backend/test_viewing.py::test_view_mocked[platform='darwin'-quiet=False]
> PASSED [ 26%]
> tests/backend/test_viewing.py::test_view_mocked[platform='darwin'-quiet=True]
> PASSED [ 27%]
> tests/backend/test_viewing.py::test_view_mocked[platform='freebsd'-quiet=False]
> PASSED [ 27%]
> tests/backend/test_viewing.py::test_view_mocked[platform='freebsd'-quiet=True]
> PASSED [ 27%]
> tests/backend/test_viewing.py::test_view_mocked[platform='linux'-quiet=False]
> PASSED [ 28%]
> tests/backend/test_viewing.py::test_view_mocked[platform='linux'-quiet=True]
> PASSED [ 28%]
> tests/backend/test_viewing.py::test_view_mocked[platform='windows'-quiet=False]
> PASSED [ 28%]
> tests/backend/test_viewing.py::test_view_mocked[platform='windows'-quiet=True]
> PASSED [ 28%]
> tests/test_all_classes.py::test_copy[Graph] PASSED [
> 29%]
> tests/test_all_classes.py::test_copy[Digraph] PASSED [
> 29%]
> tests/test_all_classes.py::test_copy[Source] PASSED [
> 29%]
> tests/test_all_classes.py::test_str[Graph] PASSED [
> 30%]
> tests/test_all_classes.py::test_str[Digraph] PASSED [
> 30%]
> tests/test_all_classes.py::test_str[Source] PASSED [
> 30%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-engine-ValueError-unknown
> engine] PASSED [ 30%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-format-ValueError-unknown
> format] PASSED [ 31%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-renderer-ValueError-unknown
> renderer] PASSED [ 31%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-formatter-ValueError-unknown
> formatter] PASSED [ 31%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Graph-encoding-LookupError-encoding]
> PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-engine-ValueError-unknown
> engine] PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-format-ValueError-unknown
> format] PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-renderer-ValueError-unknown
> renderer] PASSED [ 32%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-formatter-ValueError-unknown
> formatter] PASSED [ 33%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Digraph-encoding-LookupError-encoding]
> PASSED [ 33%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-engine-ValueError-unknown
> engine] PASSED [ 33%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-format-ValueError-unknown
> format] PASSED [ 34%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-renderer-ValueError-unknown
> renderer] PASSED [ 34%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-formatter-ValueError-unknown
> formatter] PASSED [ 34%]
> tests/test_all_classes.py::test_invalid_parameter_raises_valuerror[Source-encoding-LookupError-encoding]
> PASSED [ 34%]
> tests/test_all_classes.py::test_encoding_none[Graph] PASSED [
> 35%]
> tests/test_all_classes.py::test_encoding_none[Digraph] PASSED [
> 35%]
> tests/test_all_classes.py::test_encoding_none[Source] PASSED [
> 35%]
> tests/test_all_classes.py::test_render_raises_before_save[Graph-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save[Digraph-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save[Source-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs0]
> PASSED [ 36%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs1]
> PASSED [ 37%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs2]
> PASSED [ 37%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Graph-kwargs3]
> PASSED [ 37%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs0]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs1]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs2]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Digraph-kwargs3]
> PASSED [ 38%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs0]
> PASSED [ 39%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs1]
> PASSED [ 39%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs2]
> PASSED [ 39%]
> tests/test_all_classes.py::test_render_raises_before_save_mocked[Source-kwargs3]
> PASSED [ 40%]
> tests/test_all_classes.py::test_render_mocked[Graph] PASSED [
> 40%]
> tests/test_all_classes.py::test_render_mocked[Digraph] PASSED [
> 40%]
> tests/test_all_classes.py::test_render_mocked[Source] PASSED [
> 40%]
> tests/test_all_classes.py::test_render_outfile_mocked[Graph] PASSED [
> 41%]
> tests/test_all_classes.py::test_render_outfile_mocked[Digraph] PASSED [
> 41%]
> tests/test_all_classes.py::test_render_outfile_mocked[Source] PASSED [
> 41%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=False-Graph]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=False-Digraph]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=False-Source]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=True-Graph]
> PASSED [ 42%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=True-Digraph]
> PASSED [ 43%]
> tests/test_all_classes.py::test_format_renderer_formatter_mocked[quiet=True-Source]
> PASSED [ 43%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-None]
> PASSED [ 43%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-False]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-True]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-0]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-1]
> PASSED [ 44%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Graph-2]
> PASSED [ 45%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-None]
> PASSED [ 45%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-False]
> PASSED [ 45%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-True]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-0]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-1]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Digraph-2]
> PASSED [ 46%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-None]
> PASSED [ 47%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-False]
> PASSED [ 47%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-True]
> PASSED [ 47%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-0]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-1]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=False-Source-2]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-None]
> PASSED [ 48%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-False]
> PASSED [ 49%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-True]
> PASSED [ 49%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-0] PASSED
> [ 49%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-1] PASSED
> [ 50%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Graph-2] PASSED
> [ 50%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-None]
> PASSED [ 50%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-False]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-True]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-0]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-1]
> PASSED [ 51%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Digraph-2]
> PASSED [ 52%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-None]
> PASSED [ 52%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-False]
> PASSED [ 52%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-True]
> PASSED [ 53%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-0]
> PASSED [ 53%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-1]
> PASSED [ 53%]
> tests/test_all_classes.py::test_neato_no_op_mocked[quiet=True-Source-2]
> PASSED [ 53%]
> tests/test_all_classes.py::test_save_mocked[Graph] PASSED [
> 54%]
> tests/test_all_classes.py::test_save_mocked[Digraph] PASSED [
> 54%]
> tests/test_all_classes.py::test_save_mocked[Source] PASSED [
> 54%]
> tests/test_all_classes.py::test_pipe[Graph] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe[Digraph] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe[Source] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Graph-None] PASSED [
> 55%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Graph-ascii] PASSED [
> 56%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Graph-utf-8] PASSED [
> 56%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Digraph-None] PASSED
> [ 56%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Digraph-ascii] PASSED
> [ 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Digraph-utf-8] PASSED
> [ 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Source-None] PASSED [
> 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Source-ascii] PASSED
> [ 57%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=False-Source-utf-8] PASSED
> [ 58%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Graph-None] PASSED [
> 58%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Graph-ascii] PASSED [
> 58%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Graph-utf-8] PASSED [
> 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Digraph-None] PASSED [
> 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Digraph-ascii] PASSED
> [ 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Digraph-utf-8] PASSED
> [ 59%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Source-None] PASSED [
> 60%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Source-ascii] PASSED [
> 60%]
> tests/test_all_classes.py::test_pipe_mocked[quiet=True-Source-utf-8] PASSED [
> 60%]
> tests/test_all_classes.py::test_pipe_lines_mocked[Graph] PASSED [
> 61%]
> tests/test_all_classes.py::test_pipe_lines_mocked[Digraph] PASSED [
> 61%]
> tests/test_all_classes.py::test_pipe_lines_mocked[Source] PASSED [
> 61%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error[Graph] PASSED
> [ 61%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error[Digraph]
> PASSED [ 62%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error[Source]
> PASSED [ 62%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error_mocked[Graph]
> PASSED [ 62%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error_mocked[Digraph]
> PASSED [ 63%]
> tests/test_all_classes.py::test_pipe_lines_called_process_error_mocked[Source]
> PASSED [ 63%]
> tests/test_all_classes.py::test_repr_mimebundle_image_svg_xml_mocked[Graph]
> PASSED [ 63%]
> tests/test_all_classes.py::test_repr_mimebundle_image_svg_xml_mocked[Digraph]
> PASSED [ 63%]
> tests/test_all_classes.py::test_repr_mimebundle_image_svg_xml_mocked[Source]
> PASSED [ 64%]
> tests/test_all_classes.py::test_repr_mimebundle_image_png_mocked[Graph]
> PASSED [ 64%]
> tests/test_all_classes.py::test_repr_mimebundle_image_png_mocked[Digraph]
> PASSED [ 64%]
> tests/test_all_classes.py::test_repr_mimebundle_image_png_mocked[Source]
> PASSED [ 65%]
> tests/test_all_classes.py::test_repr_mimebundle_image_jpeg_mocked[Graph]
> PASSED [ 65%]
> tests/test_all_classes.py::test_repr_mimebundle_image_jpeg_mocked[Digraph]
> PASSED [ 65%]
> tests/test_all_classes.py::test_repr_mimebundle_image_jpeg_mocked[Source]
> PASSED [ 65%]
> tests/test_all_classes.py::test_unflatten[Graph] PASSED [
> 66%]
> tests/test_all_classes.py::test_unflatten[Digraph] PASSED [
> 66%]
> tests/test_all_classes.py::test_unflatten[Source] PASSED [
> 66%]
> tests/test_all_classes.py::test_unflatten_mocked[Graph] PASSED [
> 67%]
> tests/test_all_classes.py::test_unflatten_mocked[Digraph] PASSED [
> 67%]
> tests/test_all_classes.py::test_unflatten_mocked[Source] PASSED [
> 67%]
> tests/test_all_classes.py::test_view_mocked[Graph] PASSED [
> 67%]
> tests/test_all_classes.py::test_view_mocked[Digraph] PASSED [
> 68%]
> tests/test_all_classes.py::test_view_mocked[Source] PASSED [
> 68%]
> tests/test_all_classes.py::test__view_unknown_platform[Graph] PASSED [
> 68%]
> tests/test_all_classes.py::test__view_unknown_platform[Digraph] PASSED [
> 69%]
> tests/test_all_classes.py::test__view_unknown_platform[Source] PASSED [
> 69%]
> tests/test_all_classes.py::test__view_mocked[platform='darwin'-Graph] PASSED
> [ 69%]
> tests/test_all_classes.py::test__view_mocked[platform='darwin'-Digraph]
> PASSED [ 69%]
> tests/test_all_classes.py::test__view_mocked[platform='darwin'-Source] PASSED
> [ 70%]
> tests/test_all_classes.py::test__view_mocked[platform='freebsd'-Graph] PASSED
> [ 70%]
> tests/test_all_classes.py::test__view_mocked[platform='freebsd'-Digraph]
> PASSED [ 70%]
> tests/test_all_classes.py::test__view_mocked[platform='freebsd'-Source]
> PASSED [ 71%]
> tests/test_all_classes.py::test__view_mocked[platform='linux'-Graph] PASSED [
> 71%]
> tests/test_all_classes.py::test__view_mocked[platform='linux'-Digraph] PASSED
> [ 71%]
> tests/test_all_classes.py::test__view_mocked[platform='linux'-Source] PASSED
> [ 71%]
> tests/test_all_classes.py::test__view_mocked[platform='windows'-Graph] PASSED
> [ 72%]
> tests/test_all_classes.py::test__view_mocked[platform='windows'-Digraph]
> PASSED [ 72%]
> tests/test_all_classes.py::test__view_mocked[platform='windows'-Source]
> PASSED [ 72%]
> tests/test_graphs.py::test_init_filename[Graph] PASSED [
> 73%]
> tests/test_graphs.py::test_init_filename[Digraph] PASSED [
> 73%]
> tests/test_graphs.py::test_init_body[Graph-...-...] PASSED [
> 73%]
> tests/test_graphs.py::test_init_body[Digraph-...-...] PASSED [
> 73%]
> tests/test_graphs.py::test_subgraph_render[Graph-...] PASSED [
> 74%]
> tests/test_graphs.py::test_subgraph_render[Digraph-...] PASSED [
> 74%]
> tests/test_graphs.py::test_clear[Graph-False] PASSED [
> 74%]
> tests/test_graphs.py::test_clear[Graph-True] PASSED [
> 75%]
> tests/test_graphs.py::test_clear[Digraph-False] PASSED [
> 75%]
> tests/test_graphs.py::test_clear[Digraph-True] PASSED [
> 75%]
> tests/test_graphs.py::test_iter_subgraph_strict[Graph] PASSED [
> 75%]
> tests/test_graphs.py::test_iter_subgraph_strict[Digraph] PASSED [
> 76%]
> tests/test_graphs.py::test_iter_strict[Graph-...] PASSED [
> 76%]
> tests/test_graphs.py::test_iter_strict[Digraph-...] PASSED [
> 76%]
> tests/test_graphs.py::test_attr_invalid_kw[Graph] PASSED [
> 77%]
> tests/test_graphs.py::test_attr_invalid_kw[Digraph] PASSED [
> 77%]
> tests/test_graphs.py::test_attr_kw_none[Graph-...] PASSED [
> 77%]
> tests/test_graphs.py::test_attr_kw_none[Digraph-...] PASSED [
> 77%]
> tests/test_graphs.py::test_escaped_quotes_and_escapes[Graph-...] PASSED [
> 78%]
> tests/test_graphs.py::test_escaped_quotes_and_escapes[Digraph-...] PASSED [
> 78%]
> tests/test_graphs.py::test_subgraph_graph_none[Graph-...] PASSED [
> 78%]
> tests/test_graphs.py::test_subgraph_graph_none[Digraph-...] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_graph_notsole[Graph] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_graph_notsole[Digraph] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_mixed[Graph, Digraph] PASSED [
> 79%]
> tests/test_graphs.py::test_subgraph_mixed[Digraph, Graph] PASSED [
> 80%]
> tests/test_graphs.py::test_subgraph_reflexive[Graph-...] PASSED [
> 80%]
> tests/test_graphs.py::test_subgraph_reflexive[Digraph-...] PASSED [
> 80%]
> tests/test_graphs.py::test_subgraph PASSED [
> 81%]
> tests/test_graphs.py::test_label_html PASSED [
> 81%]
> tests/test_init.py::test_set_default_engine_invalid PASSED [
> 81%]
> tests/test_init.py::test_set_default_format_invalid PASSED [
> 81%]
> tests/test_init.py::test_set_default_engine PASSED [
> 82%]
> tests/test_init.py::test_set_default_format PASSED [
> 82%]
> tests/test_init.py::test_set_jupyter_format PASSED [
> 82%]
> tests/test_jupyter_integration.py::test_get_jupyter_format_mimetype_invalid_raises_unknown
> PASSED [ 83%]
> tests/test_jupyter_integration.py::test_get_jupyter_mimetype_format_normalizes
> PASSED [ 83%]
> tests/test_jupyter_integration.py::test_get_jupyter_mimetype_format_raises_unsupported
> PASSED [ 83%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding PASSED [
> 83%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding_mocked[utf-8]
> PASSED [ 84%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding_mocked[ascii]
> PASSED [ 84%]
> tests/test_jupyter_integration.py::test_repr_image_svg_xml_encoding_mocked[latin1]
> PASSED [ 84%]
> tests/test_parameters.py::test_parameters[Graph] PASSED [
> 85%]
> tests/test_parameters.py::test_parameters[Digraph] PASSED [
> 85%]
> tests/test_parameters.py::test_parameters[Source] PASSED [
> 85%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_engine]
> PASSED [ 85%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_format]
> PASSED [ 86%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_renderer]
> PASSED [ 86%]
> tests/test_parameters.py::test_verify_parameter_raises_unknown[verify_formatter]
> PASSED [ 86%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_engine]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_format]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_renderer]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_false_passes[verify_formatter]
> PASSED [ 87%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_engine]
> PASSED [ 88%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_format]
> PASSED [ 88%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_renderer]
> PASSED [ 88%]
> tests/test_parameters.py::test_verify_parameter_none_required_raises_missing[verify_formatter]
> PASSED [ 89%]
> tests/test_quoting.py::test_deprecated_escape[G] PASSED [
> 89%]
> tests/test_quoting.py::test_deprecated_escape[E] PASSED [
> 89%]
> tests/test_quoting.py::test_deprecated_escape[T] PASSED [
> 89%]
> tests/test_quoting.py::test_deprecated_escape[H] PASSED [
> 90%]
> tests/test_quoting.py::test_deprecated_escape[L] PASSED [
> 90%]
> tests/test_quoting.py::test_deprecated_escape[l] PASSED [
> 90%]
> tests/test_quoting.py::test_quote["spam"-"\\"spam\\""] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[node-"node"] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[EDGE-"EDGE"] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[Graph-"Graph"] PASSED [
> 91%]
> tests/test_quoting.py::test_quote[\\G \\N \\E \\T \\H \\L-"\\G \\N \\E \\T
> \\H \\L"] PASSED [ 92%]
> tests/test_quoting.py::test_quote[\\n \\l \\r-"\\n \\l \\r"] PASSED [
> 92%]
> tests/test_quoting.py::test_quote[\r\n-"\r\n"] PASSED [
> 92%]
> tests/test_quoting.py::test_quote[\\\\n-"\\\\n"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\u0665.\u0660-"\u0665.\u0660"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\\"spam-"\\"spam"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\\\\"spam-"\\\\\\"spam"] PASSED [
> 93%]
> tests/test_quoting.py::test_quote[\\\\\\"spam-"\\\\\\"spam"] PASSED [
> 94%]
> tests/test_quoting.py::test_quote[\\\\\\\\"spam-"\\\\\\\\\\"spam"] PASSED [
> 94%]
> tests/test_quoting.py::test_attr_list[attributes0- [spam=eggs]] PASSED [
> 94%]
> tests/test_quoting.py::test_attr_list[attributes1- [spam=eggs]] PASSED [
> 95%]
> tests/test_quoting.py::test_nohtml[spam-spam-spam] PASSED [
> 95%]
> tests/test_quoting.py::test_nohtml[<>-*-<>-<>-*-<>-"<>-*-<>"] PASSED [
> 95%]
> tests/test_saving.py::test_saves_source_from_file PASSED [
> 95%]
> tests/test_sources.py::test_source_parameter[engine] PASSED [
> 96%]
> tests/test_sources.py::test_source_parameter[format] PASSED [
> 96%]
> tests/test_sources.py::test_source_parameter[encoding] PASSED [
> 96%]
> tests/test_sources.py::test_init PASSED [
> 97%]
> tests/test_sources.py::test_init_filename PASSED [
> 97%]
> tests/test_sources.py::test_filepath PASSED [
> 97%]
> tests/test_sources.py::test_from_file PASSED [
> 97%]
> tests/test_sources.py::test_source_iter PASSED [
> 98%]
> tests/test_tools.py::test_mkdirs_invalid PASSED [
> 98%]
> tests/test_tools.py::test_mkdirs PASSED [
> 98%]
> tests/test_tools.py::test_deprecate_positional_args[FutureWarning-
> third='third' ] PASSED [ 99%]
> tests/test_tools.py::test_deprecate_positional_args[DeprecationWarning-
> third='third' ] PASSED [ 99%]
> tests/test_tools.py::test_deprecate_positional_args[PendingDeprecationWarning-
> third='third' ] PASSED [ 99%]
> tests/test_tools.py::test_deprecate_positional_args[None-None] PASSED
> [100%]
>
> =================================== FAILURES
> ===================================
> _________________ [doctest] graphviz.backend.rendering.render
> __________________
> 250 graphviz.UnknownSuffixWarning: If the suffix of ``outfile``
> 251 is empty or unknown.
> 252 graphviz.FormatSuffixMismatchWarning: If the suffix of ``outfile``
> 253 does not match the given ``format``.
> 254
> 255 Example:
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> UNEXPECTED EXCEPTION: FileNotFoundError(2, 'No such file or directory')
> Traceback (most recent call last):
> File "/usr/lib/python3.11/doctest.py", line 1355, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[3]>", line 1, in <module>
> File "/usr/lib/python3.11/pathlib.py", line 1079, in write_text
> with self.open(mode='w', encoding=encoding, errors=errors,
> newline=newline) as f:
>
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.11/pathlib.py", line 1045, in open
> return io.open(self, mode, buffering, encoding, errors, newline)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> FileNotFoundError: [Errno 2] No such file or directory:
> 'doctest-output/spam.gv'
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/rendering.py:259:
> UnexpectedException
> 251 is empty or unknown.
> 252 graphviz.FormatSuffixMismatchWarning: If the suffix of ``outfile``
> 253 does not match the given ``format``.
> 254
> 255 Example:
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> 260 >>> graphviz.render('dot', 'png',
> 'doctest-output/spam.gv').replace('\\', '/')
> UNEXPECTED EXCEPTION: ExecutableNotFound("failed to execute PosixPath('dot'),
> make sure the Graphviz executables are on your systems' PATH")
> Traceback (most recent call last):
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/execute.py",
> line 78, in run_check
> proc = subprocess.run(cmd, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.11/subprocess.py", line 548, in run
> with Popen(*popenargs, **kwargs) as process:
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.11/subprocess.py", line 1026, in __init__
> self._execute_child(args, executable, preexec_fn, close_fds,
> File "/usr/lib/python3.11/subprocess.py", line 1953, in _execute_child
> raise child_exception_type(errno_num, err_msg, err_filename)
> FileNotFoundError: [Errno 2] No such file or directory:
> PosixPath('doctest-output')
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
> File "/usr/lib/python3.11/doctest.py", line 1355, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[4]>", line 1, in <module>
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/_tools.py",
> line 171, in wrapper
> return func(*args, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/rendering.py",
> line 326, in render
> execute.run_check(cmd,
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/execute.py",
> line 81, in run_check
> raise ExecutableNotFound(cmd) from e
> graphviz.backend.execute.ExecutableNotFound: failed to execute
> PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/rendering.py:260:
> UnexpectedException
> 253 does not match the given ``format``.
> 254
> 255 Example:
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> 260 >>> graphviz.render('dot', 'png',
> 'doctest-output/spam.gv').replace('\\', '/')
> 261 'doctest-output/spam.gv.png'
> 262 >>> graphviz.render('dot', filepath='doctest-output/spam.gv',
> UNEXPECTED EXCEPTION: ExecutableNotFound("failed to execute PosixPath('dot'),
> make sure the Graphviz executables are on your systems' PATH")
> Traceback (most recent call last):
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/execute.py",
> line 78, in run_check
> proc = subprocess.run(cmd, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.11/subprocess.py", line 548, in run
> with Popen(*popenargs, **kwargs) as process:
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.11/subprocess.py", line 1026, in __init__
> self._execute_child(args, executable, preexec_fn, close_fds,
> File "/usr/lib/python3.11/subprocess.py", line 1953, in _execute_child
> raise child_exception_type(errno_num, err_msg, err_filename)
> FileNotFoundError: [Errno 2] No such file or directory:
> PosixPath('doctest-output')
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
> File "/usr/lib/python3.11/doctest.py", line 1355, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[5]>", line 1, in <module>
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/_tools.py",
> line 171, in wrapper
> return func(*args, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/rendering.py",
> line 326, in render
> execute.run_check(cmd,
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/execute.py",
> line 81, in run_check
> raise ExecutableNotFound(cmd) from e
> graphviz.backend.execute.ExecutableNotFound: failed to execute
> PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/rendering.py:262:
> UnexpectedException
> 256 >>> doctest_mark_exe()
> 257 >>> import pathlib
> 258 >>> import graphviz
> 259 >>> assert
> pathlib.Path('doctest-output/spam.gv').write_text('graph { spam }') == 14
> 260 >>> graphviz.render('dot', 'png',
> 'doctest-output/spam.gv').replace('\\', '/')
> 261 'doctest-output/spam.gv.png'
> 262 >>> graphviz.render('dot', filepath='doctest-output/spam.gv',
> 263 ...
> outfile='doctest-output/spam.png').replace('\\', '/')
> 264 'doctest-output/spam.png'
> 265 >>> graphviz.render('dot',
> outfile='doctest-output/spam.pdf').replace('\\', '/')
> UNEXPECTED EXCEPTION: ExecutableNotFound("failed to execute PosixPath('dot'),
> make sure the Graphviz executables are on your systems' PATH")
> Traceback (most recent call last):
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/execute.py",
> line 78, in run_check
> proc = subprocess.run(cmd, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.11/subprocess.py", line 548, in run
> with Popen(*popenargs, **kwargs) as process:
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/usr/lib/python3.11/subprocess.py", line 1026, in __init__
> self._execute_child(args, executable, preexec_fn, close_fds,
> File "/usr/lib/python3.11/subprocess.py", line 1953, in _execute_child
> raise child_exception_type(errno_num, err_msg, err_filename)
> FileNotFoundError: [Errno 2] No such file or directory:
> PosixPath('doctest-output')
> The above exception was the direct cause of the following exception:
> Traceback (most recent call last):
> File "/usr/lib/python3.11/doctest.py", line 1355, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest graphviz.backend.rendering.render[6]>", line 1, in <module>
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/_tools.py",
> line 171, in wrapper
> return func(*args, **kwargs)
> ^^^^^^^^^^^^^^^^^^^^^
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/rendering.py",
> line 326, in render
> execute.run_check(cmd,
> File
> "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/execute.py",
> line 81, in run_check
> raise ExecutableNotFound(cmd) from e
> graphviz.backend.execute.ExecutableNotFound: failed to execute
> PosixPath('dot'), make sure the Graphviz executables are on your systems' PATH
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build/graphviz/backend/rendering.py:265:
> UnexpectedException
> ------------------------------ Captured log call
> -------------------------------
> DEBUG graphviz.backend.execute:execute.py:61 run [PosixPath('dot'),
> '-Kdot', '-Tpng', '-O', 'spam.gv']
> DEBUG graphviz.backend.execute:execute.py:61 run [PosixPath('dot'),
> '-Kdot', '-Tpng', '-o', 'spam.png', 'spam.gv']
> DEBUG graphviz.backend.execute:execute.py:61 run [PosixPath('dot'),
> '-Kdot', '-Tpdf', '-o', 'spam.pdf', 'spam.gv']
> ____ test_render_unknown_parameter_raises[args0-ValueError-unknown engine]
> _____
>
> args = ['', 'pdf', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown engine'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> with pytest.raises(expected_exception, match=match),
> pytest.deprecated_call():
> > graphviz.render(*args)
>
> tests/backend/test_rendering.py:40:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> graphviz/_tools.py:171: in wrapper
> return func(*args, **kwargs)
> graphviz/backend/rendering.py:314: in render
> cmd = dot_command.command(engine, format,
> graphviz/backend/dot_command.py:31: in command
> parameters.verify_engine(engine, required=True)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> engine = ''
>
> def verify_engine(engine: str, *, required: bool = REQUIRED) -> None:
> if engine is None:
> if required:
> raise ValueError('missing engine')
> elif engine.lower() not in ENGINES:
> > raise ValueError(f'unknown engine: {engine!r}'
> f' (must be one of {sorted(ENGINES)})')
> E ValueError: unknown engine: '' (must be one of ['circo', 'dot',
> 'fdp', 'neato', 'osage', 'patchwork', 'sfdp', 'twopi'])
>
> graphviz/parameters/engines.py:28: ValueError
>
> During handling of the above exception, another exception occurred:
>
> args = ['', 'pdf', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown engine'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> > with pytest.raises(expected_exception, match=match),
> > pytest.deprecated_call():
> E Failed: DID NOT WARN. No warnings of type (<class
> 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>, <class
> 'FutureWarning'>) were emitted.
> E Emitted warnings: [].
>
> tests/backend/test_rendering.py:39: Failed
> ____ test_render_unknown_parameter_raises[args1-ValueError-unknown format]
> _____
>
> args = ['dot', '', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown format'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> with pytest.raises(expected_exception, match=match),
> pytest.deprecated_call():
> > graphviz.render(*args)
>
> tests/backend/test_rendering.py:40:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> graphviz/_tools.py:171: in wrapper
> return func(*args, **kwargs)
> graphviz/backend/rendering.py:307: in render
> outfile = get_outfile(filepath,
> graphviz/backend/rendering.py:142: in get_outfile
> parameters.verify_format(format, required=True)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> format = ''
>
> def verify_format(format: str, *, required: bool = REQUIRED) -> None:
> if format is None:
> if required:
> raise ValueError('missing format')
> elif format.lower() not in FORMATS:
> > raise ValueError(f'unknown format: {format!r}'
> f' (must be one of {sorted(FORMATS)})')
> E ValueError: unknown format: '' (must be one of ['bmp', 'canon',
> 'cgimage', 'cmap', 'cmapx', 'cmapx_np', 'dot', 'dot_json', 'eps', 'exr',
> 'fig', 'gd', 'gd2', 'gif', 'gtk', 'gv', 'ico', 'imap', 'imap_np', 'ismap',
> 'jp2', 'jpe', 'jpeg', 'jpg', 'json', 'json0', 'pct', 'pdf', 'pic', 'pict',
> 'plain', 'plain-ext', 'png', 'pov', 'ps', 'ps2', 'psd', 'sgi', 'svg', 'svgz',
> 'tga', 'tif', 'tiff', 'tk', 'vml', 'vmlz', 'vrml', 'wbmp', 'webp', 'x11',
> 'xdot', 'xdot1.2', 'xdot1.4', 'xdot_json', 'xlib'])
>
> graphviz/parameters/formats.py:56: ValueError
>
> During handling of the above exception, another exception occurred:
>
> args = ['dot', '', 'nonfilepath'], expected_exception = <class 'ValueError'>
> match = 'unknown format'
>
> @pytest.mark.parametrize(
> 'args, expected_exception, match',
> [(['', 'pdf', 'nonfilepath'], ValueError, r'unknown engine'),
> (['dot', '', 'nonfilepath'], ValueError, r'unknown format'),
> (['dot', 'ps', 'nonfilepath', '', None], ValueError, r'unknown
> renderer'),
> (['dot', 'ps', 'nonfilepath', None, 'core'],
> graphviz.RequiredArgumentError, r'without renderer'),
> (['dot', 'ps', 'nonfilepath', 'ps', ''], ValueError, r'unknown
> formatter')],
> ids=lambda x: getattr(x, '__name__', x))
> def test_render_unknown_parameter_raises(args, expected_exception, match):
> > with pytest.raises(expected_exception, match=match),
> > pytest.deprecated_call():
> E Failed: DID NOT WARN. No warnings of type (<class
> 'DeprecationWarning'>, <class 'PendingDeprecationWarning'>, <class
> 'FutureWarning'>) were emitted.
> E Emitted warnings: [].
>
> tests/backend/test_rendering.py:39: Failed
>
> ---------- coverage: platform linux, python 3.11.8-final-0 -----------
> Name
> Stmts Miss Cover
> -----------------------------------------------------------------------------------------------
> /<<PKGBUILDDIR>>/conftest.py 23 2 91%
> /usr/lib/python3/dist-packages/_distutils_hack/__init__.py
> 100 95 5%
> /usr/lib/python3/dist-packages/_pytest/_argcomplete.py
> 37 36 3%
> /usr/lib/python3/dist-packages/_pytest/_code/code.py
> 754 516 32%
> /usr/lib/python3/dist-packages/_pytest/_code/source.py
> 145 78 46%
> /usr/lib/python3/dist-packages/_pytest/_io/saferepr.py
> 67 49 27%
> /usr/lib/python3/dist-packages/_pytest/_io/terminalwriter.py
> 126 80 37%
> /usr/lib/python3/dist-packages/_pytest/_io/wcwidth.py
> 25 16 36%
> /usr/lib/python3/dist-packages/_pytest/_py/path.py
> 948 943 1%
> /usr/lib/python3/dist-packages/_pytest/assertion/__init__.py
> 88 74 16%
> /usr/lib/python3/dist-packages/_pytest/assertion/rewrite.py
> 663 342 48%
> /usr/lib/python3/dist-packages/_pytest/cacheprovider.py
> 316 266 16%
> /usr/lib/python3/dist-packages/_pytest/capture.py
> 607 450 26%
> /usr/lib/python3/dist-packages/_pytest/compat.py
> 127 79 38%
> /usr/lib/python3/dist-packages/_pytest/config/__init__.py
> 917 731 20%
> /usr/lib/python3/dist-packages/_pytest/config/argparsing.py
> 271 191 30%
> /usr/lib/python3/dist-packages/_pytest/config/compat.py
> 44 22 50%
> /usr/lib/python3/dist-packages/_pytest/debugging.py
> 230 221 4%
> /usr/lib/python3/dist-packages/_pytest/deprecated.py
> 26 25 4%
> /usr/lib/python3/dist-packages/_pytest/doctest.py
> 355 189 47%
> /usr/lib/python3/dist-packages/_pytest/faulthandler.py
> 58 43 26%
> /usr/lib/python3/dist-packages/_pytest/fixtures.py
> 809 428 47%
> /usr/lib/python3/dist-packages/_pytest/helpconfig.py
> 135 125 7%
> /usr/lib/python3/dist-packages/_pytest/junitxml.py
> 367 365 1%
> /usr/lib/python3/dist-packages/_pytest/legacypath.py
> 216 188 13%
> /usr/lib/python3/dist-packages/_pytest/logging.py
> 450 303 33%
> /usr/lib/python3/dist-packages/_pytest/main.py
> 493 268 46%
> /usr/lib/python3/dist-packages/_pytest/mark/__init__.py
> 132 85 36%
> /usr/lib/python3/dist-packages/_pytest/mark/expression.py
> 123 74 40%
> /usr/lib/python3/dist-packages/_pytest/mark/structures.py
> 276 195 29%
> /usr/lib/python3/dist-packages/_pytest/monkeypatch.py
> 168 114 32%
> /usr/lib/python3/dist-packages/_pytest/nodes.py
> 337 206 39%
> /usr/lib/python3/dist-packages/_pytest/nose.py
> 29 20 31%
> /usr/lib/python3/dist-packages/_pytest/outcomes.py
> 106 94 11%
> /usr/lib/python3/dist-packages/_pytest/pastebin.py
> 70 69 1%
> /usr/lib/python3/dist-packages/_pytest/pathlib.py
> 403 281 30%
> /usr/lib/python3/dist-packages/_pytest/python.py
> 911 576 37%
> /usr/lib/python3/dist-packages/_pytest/python_api.py
> 334 307 8%
> /usr/lib/python3/dist-packages/_pytest/python_path.py
> 16 15 6%
> /usr/lib/python3/dist-packages/_pytest/recwarn.py
> 140 84 40%
> /usr/lib/python3/dist-packages/_pytest/reports.py
> 298 258 13%
> /usr/lib/python3/dist-packages/_pytest/runner.py
> 301 156 48%
> /usr/lib/python3/dist-packages/_pytest/scope.py
> 37 27 27%
> /usr/lib/python3/dist-packages/_pytest/setuponly.py
> 59 51 14%
> /usr/lib/python3/dist-packages/_pytest/setupplan.py
> 24 20 17%
> /usr/lib/python3/dist-packages/_pytest/skipping.py
> 165 114 31%
> /usr/lib/python3/dist-packages/_pytest/stash.py
> 36 25 31%
> /usr/lib/python3/dist-packages/_pytest/stepwise.py
> 74 72 3%
> /usr/lib/python3/dist-packages/_pytest/terminal.py
> 927 711 23%
> /usr/lib/python3/dist-packages/_pytest/threadexception.py
> 43 27 37%
> /usr/lib/python3/dist-packages/_pytest/tmpdir.py
> 156 89 43%
> /usr/lib/python3/dist-packages/_pytest/unittest.py
> 253 242 4%
> /usr/lib/python3/dist-packages/_pytest/unraisableexception.py
> 45 29 36%
> /usr/lib/python3/dist-packages/_pytest/warnings.py
> 74 52 30%
> /usr/lib/python3/dist-packages/pkg_resources/extern/__init__.py
> 37 34 8%
> /usr/lib/python3/dist-packages/pluggy/_callers.py
> 109 44 60%
> /usr/lib/python3/dist-packages/pluggy/_hooks.py
> 266 180 32%
> /usr/lib/python3/dist-packages/pluggy/_manager.py
> 230 180 22%
> /usr/lib/python3/dist-packages/pluggy/_result.py
> 50 39 22%
> /usr/lib/python3/dist-packages/pluggy/_tracing.py
> 48 38 21%
> /usr/lib/python3/dist-packages/pytest/__init__.py
> 91 89 2%
> /usr/lib/python3/dist-packages/pytest_cov/compat.py
> 17 13 24%
> /usr/lib/python3/dist-packages/pytest_cov/embed.py
> 69 63 9%
> /usr/lib/python3/dist-packages/pytest_cov/engine.py
> 250 229 8%
> /usr/lib/python3/dist-packages/pytest_cov/plugin.py
> 224 194 13%
> /usr/lib/python3/dist-packages/pytest_doctestplus/plugin.py
> 486 479 1%
> /usr/lib/python3/dist-packages/pytest_mock/_util.py
> 19 11 42%
> /usr/lib/python3/dist-packages/pytest_mock/plugin.py
> 312 233 25%
> graphviz/__init__.py
> 36 0 100%
> graphviz/_compat.py
> 5 0 100%
> graphviz/_defaults.py
> 21 0 100%
> graphviz/_tools.py
> 64 0 100%
> graphviz/backend/__init__.py
> 9 0 100%
> graphviz/backend/dot_command.py
> 20 0 100%
> graphviz/backend/execute.py
> 61 0 100%
> graphviz/backend/mixins.py
> 37 0 100%
> graphviz/backend/piping.py
> 26 0 100%
> graphviz/backend/rendering.py
> 83 0 100%
> graphviz/backend/unflattening.py
> 21 0 100%
> graphviz/backend/upstream_version.py
> 15 0 100%
> graphviz/backend/viewing.py
> 34 0 100%
> graphviz/base.py
> 8 0 100%
> graphviz/copying.py
> 7 0 100%
> graphviz/dot.py
> 132 0 100%
> graphviz/encoding.py
> 22 0 100%
> graphviz/exceptions.py
> 7 0 100%
> graphviz/graphs.py
> 28 0 100%
> graphviz/jupyter_integration.py
> 34 0 100%
> graphviz/parameters/__init__.py
> 6 0 100%
> graphviz/parameters/base.py
> 7 0 100%
> graphviz/parameters/engines.py
> 32 0 100%
> graphviz/parameters/formats.py
> 32 0 100%
> graphviz/parameters/formatters.py
> 32 0 100%
> graphviz/parameters/mixins.py
> 26 0 100%
> graphviz/parameters/renderers.py
> 32 0 100%
> graphviz/piping.py
> 39 0 100%
> graphviz/quoting.py
> 59 0 100%
> graphviz/rendering.py
> 40 0 100%
> graphviz/saving.py
> 44 0 100%
> graphviz/sources.py
> 52 0 100%
> graphviz/unflattening.py
> 14 0 100%
> tests/_common.py
> 25 2 92%
> tests/backend/conftest.py
> 13 1 92%
> tests/backend/test_execute.py
> 43 0 100%
> tests/backend/test_piping.py
> 72 18 75%
> tests/backend/test_rendering.py
> 107 0 100%
> tests/backend/test_unflattening.py
> 20 0 100%
> tests/backend/test_upstream_version.py
> 20 0 100%
> tests/backend/test_viewing.py
> 20 1 95%
> tests/conftest.py
> 62 22 65%
> tests/test_all_classes.py
> 208 0 100%
> tests/test_graphs.py
> 117 0 100%
> tests/test_init.py
> 77 0 100%
> tests/test_jupyter_integration.py
> 33 0 100%
> tests/test_parameters.py
> 33 0 100%
> tests/test_quoting.py
> 29 0 100%
> tests/test_saving.py
> 10 0 100%
> tests/test_sources.py
> 47 1 98%
> tests/test_tools.py
> 39 0 100%
> -----------------------------------------------------------------------------------------------
> TOTAL
> 18202 11989 34%
> Coverage HTML written to dir htmlcov
>
> ============================= slowest 10 durations
> =============================
> 0.09s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='linux'-quiet=True]
> 0.09s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='windows'-quiet=False]
> 0.08s teardown
> .pybuild/cpython3_3.11_graphviz/build/tests/test_tools.py::test_deprecate_positional_args[None-None]
> 0.08s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='linux'-quiet=False]
> 0.08s call
> .pybuild/cpython3_3.11_graphviz/build/graphviz/jupyter_integration.py::graphviz.jupyter_integration.JupyterIntegration._repr_mimebundle_
> 0.08s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='windows'-quiet=True]
> 0.08s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='freebsd'-quiet=False]
> 0.08s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_execute.py::test_run_check_input_lines_mocked
> 0.07s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='freebsd'-quiet=True]
> 0.07s setup
> .pybuild/cpython3_3.11_graphviz/build/tests/backend/test_viewing.py::test_view_mocked[platform='darwin'-quiet=False]
> =========================== short test summary info
> ============================
> FAILED graphviz/backend/rendering.py::graphviz.backend.rendering.render
> FAILED
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args0-ValueError-unknown
> engine]
> FAILED
> tests/backend/test_rendering.py::test_render_unknown_parameter_raises[args1-ValueError-unknown
> format]
> ================= 3 failed, 346 passed, 2 deselected in 10.78s
> =================
> E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_graphviz/build; python3.11 -m pytest
> -k 'not test_pipe_pipe_invalid_data_mocked'
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12
> 3.11" returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2024/03/13/python-graphviz_0.20.1+20240103-1_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240313;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240313&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.
--- End Message ---