Closed sarahec closed 3 hours ago
Steps to reproduce the behavior:
nix-build -A python312Packages.blockdiag
From the check phase:
Running phase: pytestCheckPhase Executing pytestCheckPhase ============================= test session starts ============================== platform darwin -- Python 3.12.5, pytest-8.3.2, pluggy-1.5.0 rootdir: /private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source collected 710 items / 1 deselected / 709 selected src/blockdiag/tests/rst/test_base_directives.py ........ [ 1%] src/blockdiag/tests/rst/test_blockdiag_directives.py ................... [ 3%] ........................... [ 7%] src/blockdiag/tests/test_boot_params.py ............................ [ 11%] src/blockdiag/tests/test_builder.py ...................... [ 14%] src/blockdiag/tests/test_builder_edge.py ................... [ 17%] src/blockdiag/tests/test_builder_errors.py .................... [ 20%] src/blockdiag/tests/test_builder_group.py .............................. [ 24%] .... [ 24%] src/blockdiag/tests/test_builder_node.py ................ [ 27%] src/blockdiag/tests/test_builder_separate.py .. [ 27%] src/blockdiag/tests/test_command.py . [ 27%] src/blockdiag/tests/test_generate_diagram.py ........................... [ 31%] ........................................................................ [ 41%] ........................................................................ [ 51%] ........................................................................ [ 61%] .....................................F.................................. [ 72%] ........................................................................ [ 82%] ........................................................................ [ 92%] ............. [ 94%] src/blockdiag/tests/test_imagedraw_textfolder.py ... [ 94%] src/blockdiag/tests/test_imagedraw_utils.py ..... [ 95%] src/blockdiag/tests/test_parser.py ........ [ 96%] src/blockdiag/tests/test_utils.py ... [ 96%] src/blockdiag/tests/test_utils_fontmap.py ...................... [100%] =================================== FAILURES =================================== _ test_generate_with_separate[/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/tests/diagrams/node_shape_background.diag-svg-options272] _ source = '/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/tests/diagrams/node_shape_background.diag' file_type = 'svg', options = [] @pytest.mark.parametrize("source,file_type,options", generate_testdata) def test_generate_with_separate(source, file_type, options): > generate(source, file_type, options) src/blockdiag/tests/test_generate_diagram.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = ('/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/tests/diagrams/node_shape_background.diag', 'svg', []) kwargs = {} stderr = <_io.TextIOWrapper name="<_io.FileIO name=8 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'> def wrap(*args, **kwargs): try: stderr = sys.stderr sys.stderr = StringIO() func(*args, **kwargs) if re.search('(ERROR|Traceback)', sys.stderr.getvalue()): > raise AssertionError('Caught error') E AssertionError: Caught error src/blockdiag/tests/utils.py:78: AssertionError ----------------------------- Captured stdout call ----------------------------- ---[ stderr ] --- Traceback (most recent call last): File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/utils/bootstrap.py", line 54, in run return self.build_diagram(parsed) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/command.py", line 43, in build_diagram return super(BlockdiagApp, self).build_diagram(tree) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/utils/bootstrap.py", line 108, in build_diagram drawer.save() File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/drawer.py", line 188, in save return self.drawer.save(self.filename, size, self.format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/filters/linejump.py", line 182, in save self._run() File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/filters/linejump.py", line 109, in _run method(self.target, *args, **kwargs) File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/svg.py", line 150, in textarea self.textarea(box, string, _font, **kwargs) File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/svg.py", line 150, in textarea self.textarea(box, string, _font, **kwargs) File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/svg.py", line 150, in textarea self.textarea(box, string, _font, **kwargs) [Previous line repeated 4 more times] File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/svg.py", line 136, in textarea lines = self.textfolder(box, string, font, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/textfolder.py", line 66, in get return HorizontalTextFolder(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/textfolder.py", line 208, in __init__ self._result = self._lines() ^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/textfolder.py", line 285, in _lines for folded in splittext(self, line, maxwidth, measure): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/textfolder.py", line 41, in splittext textsize = metrics.textsize(text[0:i]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/textfolder.py", line 212, in textsize textsize = self.drawer.textlinesize(text, self.font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/svg.py", line 116, in textlinesize return self._pil_drawer.textlinesize(string, font) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/utils/__init__.py", line 65, in func fn.cache[key] = fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/png.py", line 289, in textlinesize ttfont = ttfont_for(font) ^^^^^^^^^^^^^^^^ File "/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/imagedraw/png.py", line 123, in ttfont_for ttfont = ImageFont.truetype(path, font.size) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/y94dchrmgl2j5zqwxg7mc96zwk2smxg5-python3.12-pillow-10.4.0/lib/python3.12/site-packages/PIL/ImageFont.py", line 834, in truetype return freetype(font) ^^^^^^^^^^^^^^ File "/nix/store/y94dchrmgl2j5zqwxg7mc96zwk2smxg5-python3.12-pillow-10.4.0/lib/python3.12/site-packages/PIL/ImageFont.py", line 831, in freetype return FreeTypeFont(font, size, index, encoding, layout_engine) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/nix/store/y94dchrmgl2j5zqwxg7mc96zwk2smxg5-python3.12-pillow-10.4.0/lib/python3.12/site-packages/PIL/ImageFont.py", line 219, in __init__ raise ValueError(msg) ValueError: font size must be greater than 0 =============================== warnings summary =============================== src/blockdiag/noderenderer/__init__.py:18 /private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/noderenderer/__init__.py:18: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html import pkg_resources src/blockdiag/tests/rst/test_blockdiag_directives.py::TestRstDirectives::test_align_option1 /nix/store/r891z8fxwrgmrg6hqy8dvcx6izhqmnw6-python3.12-reportlab-4.2.2/lib/python3.12/site-packages/reportlab/lib/rl_safe_eval.py:12: DeprecationWarning: ast.NameConstant is deprecated and will be removed in Python 3.14; use ast.Constant instead haveNameConstant = hasattr(ast,'NameConstant') -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED src/blockdiag/tests/test_generate_diagram.py::test_generate_with_separate[/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/tests/diagrams/node_shape_background.diag-svg-options272] - AssertionError: Caught error =========== 1 failed, 708 passed, 1 deselected, 2 warnings in 2.41s ============ error: builder for '/nix/store/hjrcmdnmvz3giqpgyilxq3y7bzcrqfa7-python3.12-blockdiag-3.0.0.drv' failed with exit code 1; last 10 log lines: > import pkg_resources > > src/blockdiag/tests/rst/test_blockdiag_directives.py::TestRstDirectives::test_align_option1 > /nix/store/r891z8fxwrgmrg6hqy8dvcx6izhqmnw6-python3.12-reportlab-4.2.2/lib/python3.12/site-packages/reportlab/lib/rl_safe_eval.py:12: DeprecationWarning: ast.NameConstant is deprecated and will be removed in Python 3.14; use ast.Constant instead > haveNameConstant = hasattr(ast,'NameConstant') > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info ============================ > FAILED src/blockdiag/tests/test_generate_diagram.py::test_generate_with_separate[/private/tmp/nix-build-python3.12-blockdiag-3.0.0.drv-0/source/src/blockdiag/tests/diagrams/node_shape_background.diag-svg-options272] - AssertionError: Caught error > =========== 1 failed, 708 passed, 1 deselected, 2 warnings in 2.41s ============
It looks like the error came in with python3Packages.reportlab @ 4.2.2.
@bjornfor
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
nix-shell -p nix-info --run "nix-info -m"
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m" - system: `"aarch64-darwin"` - host os: `Darwin 24.0.0, macOS 15.0` - multi-user?: `yes` - sandbox: `no` - version: `nix-env (Nix) 2.18.5` - channels(root): `"nixpkgs"` - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`
Add a :+1: reaction to issues you find important.
Steps To Reproduce
Steps to reproduce the behavior:
nix-build -A python312Packages.blockdiag
from scratch (e.g. on Darwin)Build log
From the check phase:
Additional context
It looks like the error came in with python3Packages.reportlab @ 4.2.2.
Notify maintainers
@bjornfor
Metadata
Please run
nix-shell -p nix-info --run "nix-info -m"
and paste the result.Add a :+1: reaction to issues you find important.