==> Building on litleo ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-breathe ./ .SRCINFO 1,201 100% 0.00kB/s 0:00:00 1,201 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=5/7) PKGBUILD 1,800 100% 1.72MB/s 0:00:00 1,800 100% 1.72MB/s 0:00:00 (xfr#2, to-chk=4/7) python-breathe-4.35.0-3.log 367 100% 358.40kB/s 0:00:00 367 100% 358.40kB/s 0:00:00 (xfr#3, to-chk=3/7) keys/ keys/pgp/ keys/pgp/8AED58021FEACDD5F27BA0E6A72F627716EA9D96.asc 3,171 100% 3.02MB/s 0:00:00 3,171 100% 3.02MB/s 0:00:00 (xfr#4, to-chk=0/7) sent 4,635 bytes received 157 bytes 9,584.00 bytes/sec total size is 6,365 speedup is 1.33 ==> Ensuring required PGP keys are present...  -> Checking for 8AED58021FEACDD5F27BA0E6A72F627716EA9D96... ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l root4 on remote host... ]2;🔵 Container arch-nspawn-2975417 on litleo.felixc.at[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [root4]...done ==> Making package: python-breathe 4.35.0-3 (Mon Sep 9 19:46:32 2024) ==> Retrieving sources...  -> Downloading python-breathe-4.35.0.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0 100 21855 0 21855 0 0 5761 0 --:--:-- 0:00:03 --:--:-- 30438 100 207k 0 207k 0 0 46455 0 --:--:-- 0:00:04 --:--:-- 137k  -> Downloading python-breathe-4.35.0.tar.gz.sig... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0 100 566 100 566 0 0 184 0 0:00:03 0:00:03 --:--:-- 636  -> Downloading 010-python-breathe-fix-tests-with-sphinx7.2.6.patch... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0 100 1298 0 1298 0 0 437 0 --:--:-- 0:00:02 --:--:-- 1790 ==> Validating source files with sha512sums... python-breathe-4.35.0.tar.gz ... Passed python-breathe-4.35.0.tar.gz.sig ... Skipped 010-python-breathe-fix-tests-with-sphinx7.2.6.patch ... Passed ==> Verifying source file signatures with gpg... python-breathe-4.35.0.tar.gz ... Passed ]2;🔵 Container arch-nspawn-2976537 on litleo.felixc.at==> Making package: python-breathe 4.35.0-3 (Mon Sep 9 19:47:11 2024) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (21) New Version Net Change Download Size extra/python-babel 2.15.0-1 28.61 MiB extra/python-charset-normalizer 3.3.2-2 0.43 MiB extra/python-idna 3.8-1 0.84 MiB extra/python-imagesize 1.4.1-5 0.05 MiB extra/python-jinja 1:3.1.4-1 1.74 MiB extra/python-markupsafe 2.1.5-2 0.07 MiB extra/python-packaging 24.1-1 0.49 MiB extra/python-pygments 2.18.0-1 14.10 MiB extra/python-pytz 2024.1-2 0.16 MiB extra/python-requests 2.32.3-1 0.60 MiB extra/python-snowballstemmer 2.2.0-6 2.59 MiB extra/python-sphinx-alabaster-theme 1.0.0-1 0.05 MiB 0.02 MiB extra/python-sphinxcontrib-applehelp 2.0.0-1 0.26 MiB extra/python-sphinxcontrib-devhelp 2.0.0-2 0.13 MiB extra/python-sphinxcontrib-htmlhelp 2.1.0-1 0.17 MiB extra/python-sphinxcontrib-jsmath 1.0.1-17 0.02 MiB extra/python-sphinxcontrib-qthelp 2.0.0-1 0.16 MiB extra/python-sphinxcontrib-serializinghtml 2.0.0-1 0.14 MiB extra/python-urllib3 1.26.18-3 1.26 MiB extra/python-docutils 1:0.21.2-1 5.65 MiB extra/python-sphinx 7.4.7-1 19.54 MiB Total Download Size: 0.02 MiB Total Installed Size: 77.06 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-sphinx-alabaster-theme-1.0.0-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-docutils... Optional dependencies for python-docutils python-myst-parser: to parse input in "Markdown" (CommonMark) format python-pillow: for some image manipulation operations python-pygments: for syntax highlighting of code directives and roles [pending] installing python-pytz... installing python-babel... installing python-imagesize... installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support [installed] installing python-packaging... installing python-pygments... installing python-charset-normalizer... installing python-idna... installing python-urllib3... Optional dependencies for python-urllib3 python-brotli: Brotli support python-certifi: security support python-cryptography: security support python-idna: security support [installed] python-pyopenssl: security support python-pysocks: SOCKS support installing python-requests... Optional dependencies for python-requests python-chardet: alternative character encoding library python-pysocks: SOCKS proxy support installing python-snowballstemmer... Optional dependencies for python-snowballstemmer python-pystemmer: for improved performance installing python-sphinx-alabaster-theme... installing python-sphinxcontrib-applehelp... installing python-sphinxcontrib-devhelp... installing python-sphinxcontrib-htmlhelp... installing python-sphinxcontrib-jsmath... installing python-sphinxcontrib-qthelp... installing python-sphinxcontrib-serializinghtml... installing python-sphinx... Optional dependencies for python-sphinx imagemagick: for ext.imgconverter texlive-fontsextra: for the default admonition title icons in PDF output texlive-latexextra: for generation of PDF documentation [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (19) New Version Net Change extra/python-autocommand 2.2.2-6 0.08 MiB extra/python-fastjsonschema 2.20.0-1 0.27 MiB extra/python-iniconfig 2.0.0-5 0.04 MiB extra/python-jaraco.context 5.3.0-1 0.04 MiB extra/python-jaraco.functools 4.0.2-1 0.07 MiB extra/python-jaraco.text 4.0.0-1 0.08 MiB extra/python-more-itertools 10.3.0-1 0.63 MiB extra/python-ordered-set 4.1.0-5 0.06 MiB extra/python-platformdirs 4.2.2-1 0.24 MiB extra/python-pluggy 1.5.0-1 0.20 MiB extra/python-pyproject-hooks 1.1.0-1 0.10 MiB extra/python-tomli 2.0.1-4 0.10 MiB extra/python-trove-classifiers 2024.7.2-1 0.12 MiB extra/python-validate-pyproject 0.19-1 0.33 MiB extra/python-build 1.2.1-3 0.19 MiB extra/python-installer 0.7.0-8 0.18 MiB extra/python-pytest 1:8.3.2-1 3.90 MiB extra/python-setuptools 1:69.0.3-6 4.39 MiB extra/python-wheel 0.44.0-1 0.26 MiB Total Installed Size: 11.28 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing python-jaraco.text... Optional dependencies for python-jaraco.text python-inflect: for show-newlines script installing python-ordered-set... installing python-platformdirs... installing python-tomli... installing python-fastjsonschema... installing python-trove-classifiers... installing python-validate-pyproject... installing python-setuptools... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures installing python-iniconfig... installing python-pluggy... installing python-pytest... [?25h==> Retrieving sources...  -> Found python-breathe-4.35.0.tar.gz  -> Found python-breathe-4.35.0.tar.gz.sig  -> Found 010-python-breathe-fix-tests-with-sphinx7.2.6.patch ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting python-breathe-4.35.0.tar.gz with bsdtar ==> Starting prepare()... patching file tests/test_renderer.py ==> Starting build()... * Getting build dependencies for wheel... running egg_info creating breathe.egg-info writing breathe.egg-info/PKG-INFO writing dependency_links to breathe.egg-info/dependency_links.txt writing entry points to breathe.egg-info/entry_points.txt writing requirements to breathe.egg-info/requires.txt writing top-level names to breathe.egg-info/top_level.txt writing manifest file 'breathe.egg-info/SOURCES.txt' reading manifest file 'breathe.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'breathe.egg-info/SOURCES.txt' * Building wheel... running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/breathe copying breathe/process.py -> build/lib/breathe copying breathe/apidoc.py -> build/lib/breathe copying breathe/project.py -> build/lib/breathe copying breathe/path_handler.py -> build/lib/breathe copying breathe/__init__.py -> build/lib/breathe copying breathe/file_state_cache.py -> build/lib/breathe copying breathe/exception.py -> build/lib/breathe copying breathe/filetypes.py -> build/lib/breathe creating build/lib/breathe/directives copying breathe/directives/index.py -> build/lib/breathe/directives copying breathe/directives/class_like.py -> build/lib/breathe/directives copying breathe/directives/file.py -> build/lib/breathe/directives copying breathe/directives/item.py -> build/lib/breathe/directives copying breathe/directives/setup.py -> build/lib/breathe/directives copying breathe/directives/function.py -> build/lib/breathe/directives copying breathe/directives/content_block.py -> build/lib/breathe/directives copying breathe/directives/__init__.py -> build/lib/breathe/directives creating build/lib/breathe/parser copying breathe/parser/index.py -> build/lib/breathe/parser copying breathe/parser/compound.py -> build/lib/breathe/parser copying breathe/parser/indexsuper.py -> build/lib/breathe/parser copying breathe/parser/compoundsuper.py -> build/lib/breathe/parser copying breathe/parser/__init__.py -> build/lib/breathe/parser creating build/lib/breathe/finder copying breathe/finder/index.py -> build/lib/breathe/finder copying breathe/finder/compound.py -> build/lib/breathe/finder copying breathe/finder/factory.py -> build/lib/breathe/finder copying breathe/finder/__init__.py -> build/lib/breathe/finder creating build/lib/breathe/renderer copying breathe/renderer/sphinxrenderer.py -> build/lib/breathe/renderer copying breathe/renderer/mask.py -> build/lib/breathe/renderer copying breathe/renderer/filter.py -> build/lib/breathe/renderer copying breathe/renderer/__init__.py -> build/lib/breathe/renderer copying breathe/renderer/target.py -> build/lib/breathe/renderer running egg_info writing breathe.egg-info/PKG-INFO writing dependency_links to breathe.egg-info/dependency_links.txt writing entry points to breathe.egg-info/entry_points.txt writing requirements to breathe.egg-info/requires.txt writing top-level names to breathe.egg-info/top_level.txt reading manifest file 'breathe.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'breathe.egg-info/SOURCES.txt' installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64 creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/breathe creating build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/index.py -> build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/class_like.py -> build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/file.py -> build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/item.py -> build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/setup.py -> build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/function.py -> build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/content_block.py -> build/bdist.linux-riscv64/wheel/breathe/directives copying build/lib/breathe/directives/__init__.py -> build/bdist.linux-riscv64/wheel/breathe/directives creating build/bdist.linux-riscv64/wheel/breathe/parser copying build/lib/breathe/parser/index.py -> build/bdist.linux-riscv64/wheel/breathe/parser copying build/lib/breathe/parser/compound.py -> build/bdist.linux-riscv64/wheel/breathe/parser copying build/lib/breathe/parser/indexsuper.py -> build/bdist.linux-riscv64/wheel/breathe/parser copying build/lib/breathe/parser/compoundsuper.py -> build/bdist.linux-riscv64/wheel/breathe/parser copying build/lib/breathe/parser/__init__.py -> build/bdist.linux-riscv64/wheel/breathe/parser creating build/bdist.linux-riscv64/wheel/breathe/finder copying build/lib/breathe/finder/index.py -> build/bdist.linux-riscv64/wheel/breathe/finder copying build/lib/breathe/finder/compound.py -> build/bdist.linux-riscv64/wheel/breathe/finder copying build/lib/breathe/finder/factory.py -> build/bdist.linux-riscv64/wheel/breathe/finder copying build/lib/breathe/finder/__init__.py -> build/bdist.linux-riscv64/wheel/breathe/finder copying build/lib/breathe/process.py -> build/bdist.linux-riscv64/wheel/breathe creating build/bdist.linux-riscv64/wheel/breathe/renderer copying build/lib/breathe/renderer/sphinxrenderer.py -> build/bdist.linux-riscv64/wheel/breathe/renderer copying build/lib/breathe/renderer/mask.py -> build/bdist.linux-riscv64/wheel/breathe/renderer copying build/lib/breathe/renderer/filter.py -> build/bdist.linux-riscv64/wheel/breathe/renderer copying build/lib/breathe/renderer/__init__.py -> build/bdist.linux-riscv64/wheel/breathe/renderer copying build/lib/breathe/renderer/target.py -> build/bdist.linux-riscv64/wheel/breathe/renderer copying build/lib/breathe/apidoc.py -> build/bdist.linux-riscv64/wheel/breathe copying build/lib/breathe/project.py -> build/bdist.linux-riscv64/wheel/breathe copying build/lib/breathe/path_handler.py -> build/bdist.linux-riscv64/wheel/breathe copying build/lib/breathe/__init__.py -> build/bdist.linux-riscv64/wheel/breathe copying build/lib/breathe/file_state_cache.py -> build/bdist.linux-riscv64/wheel/breathe copying build/lib/breathe/exception.py -> build/bdist.linux-riscv64/wheel/breathe copying build/lib/breathe/filetypes.py -> build/bdist.linux-riscv64/wheel/breathe running install_egg_info Copying breathe.egg-info to build/bdist.linux-riscv64/wheel/breathe-4.35.0-py3.12.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/breathe-4.35.0.dist-info/WHEEL creating '/build/python-breathe/src/breathe-4.35.0/dist/.tmp-kivzf9bz/breathe-4.35.0-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'breathe/__init__.py' adding 'breathe/apidoc.py' adding 'breathe/exception.py' adding 'breathe/file_state_cache.py' adding 'breathe/filetypes.py' adding 'breathe/path_handler.py' adding 'breathe/process.py' adding 'breathe/project.py' adding 'breathe/directives/__init__.py' adding 'breathe/directives/class_like.py' adding 'breathe/directives/content_block.py' adding 'breathe/directives/file.py' adding 'breathe/directives/function.py' adding 'breathe/directives/index.py' adding 'breathe/directives/item.py' adding 'breathe/directives/setup.py' adding 'breathe/finder/__init__.py' adding 'breathe/finder/compound.py' adding 'breathe/finder/factory.py' adding 'breathe/finder/index.py' adding 'breathe/parser/__init__.py' adding 'breathe/parser/compound.py' adding 'breathe/parser/compoundsuper.py' adding 'breathe/parser/index.py' adding 'breathe/parser/indexsuper.py' adding 'breathe/renderer/__init__.py' adding 'breathe/renderer/filter.py' adding 'breathe/renderer/mask.py' adding 'breathe/renderer/sphinxrenderer.py' adding 'breathe/renderer/target.py' adding 'breathe-4.35.0.dist-info/LICENSE' adding 'breathe-4.35.0.dist-info/METADATA' adding 'breathe-4.35.0.dist-info/WHEEL' adding 'breathe-4.35.0.dist-info/entry_points.txt' adding 'breathe-4.35.0.dist-info/top_level.txt' adding 'breathe-4.35.0.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Successfully built breathe-4.35.0-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.12.5, pytest-8.3.2, pluggy-1.5.0 rootdir: /build/python-breathe/src/breathe-4.35.0 configfile: pyproject.toml collected 21 items tests/test_renderer.py ..FFFFFFFFFFFFF... [ 85%] tests/test_utils.py ... [100%] =================================== FAILURES =================================== _______________________________ test_render_func _______________________________ app = def test_render_func(app): member_def = WrappedMemberDef( kind="function", definition="void foo", type_="void", name="foo", argsstring="(int)", virt="non-virtual", param=[ WrappedParam(type_=WrappedLinkedText(content_=[WrappedMixedContainer(value="int")])) ], ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:331: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2511: in dispatch_memberdef return self.visit_function(node) breathe/renderer/sphinxrenderer.py:2003: in visit_function nodes = self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: _____________________________ test_render_typedef ______________________________ app = def test_render_typedef(app): member_def = WrappedMemberDef( kind="typedef", definition="typedef int foo", type_="int", name="foo" ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:354: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2515: in dispatch_memberdef return self.visit_typedef(node) breathe/renderer/sphinxrenderer.py:2134: in visit_typedef return self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ____________________________ test_render_c_typedef _____________________________ app = def test_render_c_typedef(app): member_def = WrappedMemberDef( kind="typedef", definition="typedef unsigned int bar", type_="unsigned int", name="bar" ) > signature = find_node(render(app, member_def, domain="c"), "desc_signature") tests/test_renderer.py:362: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2515: in dispatch_memberdef return self.visit_typedef(node) breathe/renderer/sphinxrenderer.py:2134: in visit_typedef return self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/c/__init__.py:219: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ________________________ test_render_c_function_typedef ________________________ app = def test_render_c_function_typedef(app): member_def = WrappedMemberDef( kind="typedef", definition="typedef void* (*voidFuncPtr)(float, int)", type_="void* (*", name="voidFuncPtr", argsstring=")(float, int)", ) > signature = find_node(render(app, member_def, domain="c"), "desc_signature") tests/test_renderer.py:374: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2515: in dispatch_memberdef return self.visit_typedef(node) breathe/renderer/sphinxrenderer.py:2134: in visit_typedef return self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/c/__init__.py:219: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ___________________________ test_render_using_alias ____________________________ app = def test_render_using_alias(app): member_def = WrappedMemberDef( kind="typedef", definition="using foo = int", type_="int", name="foo" ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:391: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2515: in dispatch_memberdef return self.visit_typedef(node) breathe/renderer/sphinxrenderer.py:2134: in visit_typedef return self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ____________________________ test_render_const_func ____________________________ app = def test_render_const_func(app): member_def = WrappedMemberDef( kind="function", definition="void f", type_="void", name="f", argsstring="() const", virt="non-virtual", const="yes", ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:405: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2511: in dispatch_memberdef return self.visit_function(node) breathe/renderer/sphinxrenderer.py:2003: in visit_function nodes = self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ___________________________ test_render_lvalue_func ____________________________ app = def test_render_lvalue_func(app): member_def = WrappedMemberDef( kind="function", definition="void f", type_="void", name="f", argsstring="() &", virt="non-virtual", refqual="lvalue", ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:419: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2511: in dispatch_memberdef return self.visit_function(node) breathe/renderer/sphinxrenderer.py:2003: in visit_function nodes = self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ___________________________ test_render_rvalue_func ____________________________ app = def test_render_rvalue_func(app): member_def = WrappedMemberDef( kind="function", definition="void f", type_="void", name="f", argsstring="() &&", virt="non-virtual", refqual="rvalue", ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:433: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2511: in dispatch_memberdef return self.visit_function(node) breathe/renderer/sphinxrenderer.py:2003: in visit_function nodes = self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ________________________ test_render_const_lvalue_func _________________________ app = def test_render_const_lvalue_func(app): member_def = WrappedMemberDef( kind="function", definition="void f", type_="void", name="f", argsstring="() const &", virt="non-virtual", const="yes", refqual="lvalue", ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:448: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2511: in dispatch_memberdef return self.visit_function(node) breathe/renderer/sphinxrenderer.py:2003: in visit_function nodes = self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ________________________ test_render_const_rvalue_func _________________________ app = def test_render_const_rvalue_func(app): member_def = WrappedMemberDef( kind="function", definition="void f", type_="void", name="f", argsstring="() const &&", virt="non-virtual", const="yes", refqual="rvalue", ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:463: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2511: in dispatch_memberdef return self.visit_function(node) breathe/renderer/sphinxrenderer.py:2003: in visit_function nodes = self.handle_declaration(node, declaration) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: _______________________ test_render_variable_initializer _______________________ app = def test_render_variable_initializer(app): member_def = WrappedMemberDef( kind="variable", definition="const int EOF", type_="const int", name="EOF", initializer=WrappedMixedContainer(value="= -1"), ) > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:475: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2517: in dispatch_memberdef return self.visit_variable(node) breathe/renderer/sphinxrenderer.py:2197: in visit_variable return self.handle_declaration(node, declaration, options=options) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/cpp/__init__.py:319: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ________________________ test_render_define_initializer ________________________ app = def test_render_define_initializer(app): member_def = WrappedMemberDef( kind="define", name="MAX_LENGTH", initializer=WrappedLinkedText(content_=[WrappedMixedContainer(value="100")]), ) signature_w_initializer = find_node( > render(app, member_def, show_define_initializer=True), "desc_signature" ) tests/test_renderer.py:486: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2525: in dispatch_memberdef return self.visit_define(node) breathe/renderer/sphinxrenderer.py:2080: in visit_define return self.handle_declaration(node, declaration, declarator_callback=add_definition) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/c/__init__.py:219: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: ______________________ test_render_define_no_initializer _______________________ app = def test_render_define_no_initializer(app): sphinx.addnodes.setup(app) member_def = WrappedMemberDef(kind="define", name="USE_MILK") > signature = find_node(render(app, member_def), "desc_signature") tests/test_renderer.py:505: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test_renderer.py:316: in render return renderer.render(member_def) breathe/renderer/sphinxrenderer.py:2624: in render result = method(self, node) breathe/renderer/sphinxrenderer.py:2525: in dispatch_memberdef return self.visit_define(node) breathe/renderer/sphinxrenderer.py:2080: in visit_define return self.handle_declaration(node, declaration, declarator_callback=add_definition) breathe/renderer/sphinxrenderer.py:667: in handle_declaration nodes_ = self.run_directive(obj_type, declaration, content_callback, options) breathe/renderer/sphinxrenderer.py:619: in run_directive nodes = directive.run() /usr/lib/python3.12/site-packages/sphinx/domains/c/__init__.py:219: in run return super().run() /usr/lib/python3.12/site-packages/sphinx/directives/__init__.py:286: in run content_children = self.parse_content_to_nodes(allow_section_headings=True) /usr/lib/python3.12/site-packages/sphinx/util/docutils.py:415: in parse_content_to_nodes return nested_parse_to_nodes( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:55: in nested_parse_to_nodes content = _text_to_string_list( /usr/lib/python3.12/site-packages/sphinx/util/parsing.py:92: in _text_to_string_list content = string2lines(text, tab_width, convert_whitespace=True) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ astring = None, tab_width = 8, convert_whitespace = True whitespace = re.compile('[\x0b\x0c]') def string2lines(astring, tab_width=8, convert_whitespace=False, whitespace=re.compile('[\v\f]')): """ Return a list of one-line strings with tabs expanded, no newlines, and trailing whitespace stripped. Each tab is expanded with between 1 and `tab_width` spaces, so that the next character's index becomes a multiple of `tab_width` (8 by default). Parameters: - `astring`: a multi-line string. - `tab_width`: the number of columns between tab stops. - `convert_whitespace`: convert form feeds and vertical tabs to spaces? - `whitespace`: pattern object with the to-be-converted whitespace characters (default [\\v\\f]). """ if convert_whitespace: > astring = whitespace.sub(' ', astring) E TypeError: expected string or bytes-like object, got 'NoneType' /usr/lib/python3.12/site-packages/docutils/statemachine.py:1506: TypeError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/pytest-of-builduser/pytest-0/root # outdir: /tmp/pytest-of-builduser/pytest-0/root/_build/html # status: Running Sphinx v7.4.7 loading translations [en]... done # warning: WARNING: node class 'toctree' is already registered, its visitors will be overridden WARNING: node class 'desc' is already registered, its visitors will be overridden WARNING: node class 'desc_signature' is already registered, its visitors will be overridden WARNING: node class 'desc_signature_line' is already registered, its visitors will be overridden WARNING: node class 'desc_content' is already registered, its visitors will be overridden WARNING: node class 'desc_inline' is already registered, its visitors will be overridden WARNING: node class 'desc_name' is already registered, its visitors will be overridden WARNING: node class 'desc_addname' is already registered, its visitors will be overridden WARNING: node class 'desc_type' is already registered, its visitors will be overridden WARNING: node class 'desc_returns' is already registered, its visitors will be overridden WARNING: node class 'desc_parameterlist' is already registered, its visitors will be overridden WARNING: node class 'desc_type_parameter_list' is already registered, its visitors will be overridden WARNING: node class 'desc_parameter' is already registered, its visitors will be overridden WARNING: node class 'desc_type_parameter' is already registered, its visitors will be overridden WARNING: node class 'desc_optional' is already registered, its visitors will be overridden WARNING: node class 'desc_annotation' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_operator' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_space' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_literal_char' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_literal_string' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_keyword_type' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_punctuation' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_name' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_literal_number' is already registered, its visitors will be overridden WARNING: node class 'desc_sig_keyword' is already registered, its visitors will be overridden WARNING: node class 'versionmodified' is already registered, its visitors will be overridden WARNING: node class 'seealso' is already registered, its visitors will be overridden WARNING: node class 'productionlist' is already registered, its visitors will be overridden WARNING: node class 'production' is already registered, its visitors will be overridden WARNING: node class 'index' is already registered, its visitors will be overridden WARNING: node class 'centered' is already registered, its visitors will be overridden WARNING: node class 'acks' is already registered, its visitors will be overridden WARNING: node class 'hlist' is already registered, its visitors will be overridden WARNING: node class 'hlistcol' is already registered, its visitors will be overridden WARNING: node class 'compact_paragraph' is already registered, its visitors will be overridden WARNING: node class 'glossary' is already registered, its visitors will be overridden WARNING: node class 'only' is already registered, its visitors will be overridden WARNING: node class 'start_of_file' is already registered, its visitors will be overridden WARNING: node class 'highlightlang' is already registered, its visitors will be overridden WARNING: node class 'tabular_col_spec' is already registered, its visitors will be overridden WARNING: node class 'pending_xref' is already registered, its visitors will be overridden WARNING: node class 'number_reference' is already registered, its visitors will be overridden WARNING: node class 'download_reference' is already registered, its visitors will be overridden WARNING: node class 'literal_emphasis' is already registered, its visitors will be overridden WARNING: node class 'literal_strong' is already registered, its visitors will be overridden WARNING: node class 'manpage' is already registered, its visitors will be overridden =============================== warnings summary =============================== tests/test_renderer.py:26 /build/python-breathe/src/breathe-4.35.0/tests/test_renderer.py:26: RemovedInSphinx90Warning: 'sphinx.testing.path' is deprecated. Use 'os.path' or 'pathlib' instead. from sphinx.testing.path import path tests/test_renderer.py: 17 warnings /build/python-breathe/src/breathe-4.35.0/breathe/project.py:116: RemovedInSphinx80Warning: Sphinx 8 will drop support for representing paths as strings. Use "pathlib.Path" or "os.fspath" instead. self._default_build_dir = os.path.dirname(app.doctreedir.rstrip(os.sep)) tests/test_renderer.py: 17 warnings /build/python-breathe/src/breathe-4.35.0/tests/test_renderer.py:128: DeprecationWarning: The frontend.OptionParser class will be replaced by a subclass of argparse.ArgumentParser in Docutils 0.21 or later. settings = frontend.OptionParser(components=(parsers.rst.Parser,)).get_default_values() tests/test_renderer.py: 1190 warnings /usr/lib/python3.12/optparse.py:1000: DeprecationWarning: The frontend.Option class will be removed in Docutils 0.21 or later. option = self.option_class(*args, **kwargs) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_renderer.py::test_render_func - TypeError: expected string ... FAILED tests/test_renderer.py::test_render_typedef - TypeError: expected stri... FAILED tests/test_renderer.py::test_render_c_typedef - TypeError: expected st... FAILED tests/test_renderer.py::test_render_c_function_typedef - TypeError: ex... FAILED tests/test_renderer.py::test_render_using_alias - TypeError: expected ... FAILED tests/test_renderer.py::test_render_const_func - TypeError: expected s... FAILED tests/test_renderer.py::test_render_lvalue_func - TypeError: expected ... FAILED tests/test_renderer.py::test_render_rvalue_func - TypeError: expected ... FAILED tests/test_renderer.py::test_render_const_lvalue_func - TypeError: exp... FAILED tests/test_renderer.py::test_render_const_rvalue_func - TypeError: exp... FAILED tests/test_renderer.py::test_render_variable_initializer - TypeError: ... FAILED tests/test_renderer.py::test_render_define_initializer - TypeError: ex... FAILED tests/test_renderer.py::test_render_define_no_initializer - TypeError:... ============ 13 failed, 8 passed, 1225 warnings in 87.50s (0:01:27) ============ ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/root4/build [?25h[?25hreceiving incremental file list python-breathe-4.35.0-3-riscv64-build.log python-breathe-4.35.0-3-riscv64-check.log python-breathe-4.35.0-3-riscv64-prepare.log sent 81 bytes received 4,871 bytes 9,904.00 bytes/sec total size is 59,754 speedup is 12.07