<86>May 2 04:24:50 userdel[2259342]: delete user 'rooter' <86>May 2 04:24:50 userdel[2259342]: removed group 'rooter' owned by 'rooter' <86>May 2 04:24:50 userdel[2259342]: removed shadow group 'rooter' owned by 'rooter' <86>May 2 04:24:50 groupadd[2259372]: group added to /etc/group: name=rooter, GID=1853 <86>May 2 04:24:50 groupadd[2259372]: group added to /etc/gshadow: name=rooter <86>May 2 04:24:50 groupadd[2259372]: new group: name=rooter, GID=1853 <86>May 2 04:24:50 useradd[2259397]: new user: name=rooter, UID=1853, GID=1853, home=/root, shell=/bin/bash, from=none <86>May 2 04:24:50 userdel[2259433]: delete user 'builder' <86>May 2 04:24:50 userdel[2259433]: removed group 'builder' owned by 'builder' <86>May 2 04:24:50 userdel[2259433]: removed shadow group 'builder' owned by 'builder' <86>May 2 04:24:50 groupadd[2259476]: group added to /etc/group: name=builder, GID=1854 <86>May 2 04:24:50 groupadd[2259476]: group added to /etc/gshadow: name=builder <86>May 2 04:24:50 groupadd[2259476]: new group: name=builder, GID=1854 <86>May 2 04:24:50 useradd[2259525]: new user: name=builder, UID=1854, GID=1854, home=/usr/src, shell=/bin/bash, from=none <13>May 2 04:24:54 rpmi: libsqlite3-3.50.4-alt1 sisyphus+391668.100.1.1 1754321138 installed <13>May 2 04:24:54 rpmi: libmpdec3-2.5.1-alt3 sisyphus+314490.500.5.1 1675432033 installed <13>May 2 04:24:54 rpmi: libexpat-2.7.4-alt1 sisyphus+407132.100.1.1 1770196717 installed <13>May 2 04:24:54 rpmi: openssl-config-3.5.0-alt1 sisyphus+399237.100.1.1 1762346864 installed <13>May 2 04:24:54 rpmi: libb2-0.98.1-alt1_1 sisyphus+291614.100.1.1 1638962878 installed <13>May 2 04:24:54 rpmi: libp11-kit-1:0.25.10-alt2 sisyphus+400858.600.6.1 1764517196 installed <13>May 2 04:24:54 rpmi: libtasn1-4.21.0-alt1 sisyphus+407792.100.1.1 1770718027 installed <13>May 2 04:24:54 rpmi: rpm-macros-alternatives-0.5.3-alt1 sisyphus+371878.100.1.1 1737988822 installed <13>May 2 04:24:54 rpmi: alternatives-0.5.3-alt1 sisyphus+371878.100.1.1 1737988822 installed <13>May 2 04:24:54 rpmi: ca-certificates-2026.04.22-alt1 sisyphus+415942.100.6.1 1777316293 installed <13>May 2 04:24:54 rpmi: ca-trust-0.2.0-alt1 sisyphus+344843.100.1.1 1712743326 installed <13>May 2 04:24:54 rpmi: p11-kit-trust-1:0.25.10-alt2 sisyphus+400858.600.6.1 1764517196 installed <13>May 2 04:24:54 rpmi: libcrypto3-3.5.4-alt1 sisyphus+399237.200.1.1 1762349280 installed <13>May 2 04:24:54 rpmi: libssl3-3.5.4-alt1 sisyphus+399237.200.1.1 1762349280 installed <13>May 2 04:24:54 rpmi: python3-modules-sqlite3-3.13.12-alt3 sisyphus+415436.40.2.1 1776619563 installed <13>May 2 04:24:54 rpmi: python3-3.13.12-alt3 sisyphus+415436.40.2.1 1776619563 installed <13>May 2 04:24:55 rpmi: python3-base-3.13.12-alt3 sisyphus+415436.40.2.1 1776619563 installed <13>May 2 04:24:55 rpmi: python3-module-py3dephell-0.3.1-alt1 sisyphus+365261.200.1.1 1734463433 installed <13>May 2 04:24:55 rpmi: tests-for-installed-python3-pkgs-0.1.29-alt1 sisyphus+398029.2500.12.1 1762716341 installed <13>May 2 04:24:55 rpmi: rpm-build-python3-0.1.29-alt1 sisyphus+398029.2500.12.1 1762716341 installed <13>May 2 04:24:55 rpmi: rpm-macros-sphinx3-1:8.2.3-alt1 sisyphus+407419.100.1.1 1770402836 installed WARNING: %python3_build_debug is deprecated and will be removed in future, please use %pyproject_build instead WARNING: %python3_install is deprecated and will be removed in future, please use %pyproject_install instead <13>May 2 04:24:58 rpmi: python3-module-docutils-0.22.4-alt1.1 sisyphus+413479.400.1.1 1774818008 installed <13>May 2 04:24:58 rpmi: python3-module-Pygments-2.20.0-alt1 sisyphus+413985.100.1.1 1775208360 installed <13>May 2 04:24:58 rpmi: python3-module-urllib3-2:2.6.3-alt1 sisyphus+404979.100.1.1 1768302431 installed <13>May 2 04:24:58 rpmi: python3-module-packaging-26.2-alt1 sisyphus+416502.100.2.1 1777385153 installed <13>May 2 04:24:58 rpmi: python3-module-alabaster-0.7.16-alt1 sisyphus+349698.100.1.1 1716897815 installed <13>May 2 04:24:58 rpmi: python3-module-snowballstemmer-2.2.0-alt1 sisyphus+319215.100.1.1 1682346633 installed <13>May 2 04:24:58 rpmi: python3-module-roman_numerals-3.1.0-alt2 sisyphus+401838.100.1.1 1764869457 installed <13>May 2 04:24:58 rpmi: python3-module-pluggy-1.6.0-alt1.1 sisyphus+413474.300.2.1 1774829688 installed <13>May 2 04:24:58 rpmi: python3-module-typing_extensions-4.15.0-alt2 sisyphus+399838.100.1.1 1762946472 installed <13>May 2 04:24:58 rpmi: python3-module-pathspec-1.1.1-alt1 sisyphus+416503.100.2.1 1777393721 installed <13>May 2 04:24:58 rpmi: python3-module-mypy_extensions-1.1.0-alt1 sisyphus+386398.100.1.1 1749196276 installed <13>May 2 04:24:58 rpmi: python3-module-librt-0.9.0-alt1 sisyphus+414844.100.1.1 1775834438 installed <13>May 2 04:24:58 rpmi: python3-module-markupsafe-1:3.0.3-alt1 sisyphus+396886.100.1.1 1760186182 installed <13>May 2 04:24:58 rpmi: python3-module-jinja2-3.1.6-alt2 sisyphus+413629.100.1.1 1774945546 installed <13>May 2 04:24:58 rpmi: python3-module-iniconfig-2.3.0-alt1 sisyphus+397749.100.2.1 1761040670 installed <13>May 2 04:24:58 rpmi: python3-module-imagesize-2.0.0-alt1 sisyphus+412569.100.1.1 1774449715 installed <13>May 2 04:24:58 rpmi: python3-module-idna-3.13-alt1 sisyphus+416721.100.1.1 1777469407 installed <13>May 2 04:24:58 rpmi: python3-module-webencodings-0.5.1-alt3 sisyphus+359244.100.1.1 1728381102 installed <13>May 2 04:24:58 rpmi: python3-module-six-1.17.0-alt1.1 sisyphus+373470.100.1.1 1738920023 installed <13>May 2 04:24:58 rpmi: python3-module-genshi-0.7.10-alt1 sisyphus+406244.100.1.1 1769411850 installed <13>May 2 04:24:58 rpmi: python3-module-cssselect-1.4.0-alt1.1 sisyphus+413473.200.3.2 1774836663 installed <13>May 2 04:24:58 rpmi: python3-module-charset-normalizer-3.4.7-alt1 sisyphus+414686.100.1.1 1775727174 installed <13>May 2 04:24:58 rpmi: python3-module-requests-2.33.1-alt1 sisyphus+413709.100.2.1 1775115946 installed <13>May 2 04:24:59 rpmi: python3-module-babel-1:2.17.0-alt1 sisyphus+383519.100.1.1 1746611672 installed <13>May 2 04:24:59 rpmi: python-sphinx-objects.inv-1:2.3.15.20251025-alt1 sisyphus+398356.100.1.1 1761384354 installed <13>May 2 04:24:59 rpmi: libxslt-1.1.43-alt1 sisyphus+398184.100.1.1 1761304862 installed <13>May 2 04:24:59 rpmi: libxml2_16-1:2.14.6-alt3 sisyphus+409701.100.2.4 1772455765 installed <13>May 2 04:24:59 rpmi: python3-module-html5lib-1:1.1-alt1 sisyphus+278096.120.5.1 1626086978 installed <13>May 2 04:24:59 rpmi: python3-module-lxml-6.0.2-alt1 sisyphus+405789.100.1.1 1769040143 installed <13>May 2 04:24:59 rpmi: python3-module-defusedxml-0.7.1-alt2 sisyphus+397015.100.1.2 1760452737 installed <13>May 2 04:24:59 rpmi: python3-module-sphinxcontrib-applehelp-2.0.0-alt1 sisyphus+353872.100.1.1 1722243556 installed <13>May 2 04:24:59 rpmi: python3-module-sphinxcontrib-devhelp-2.0.0-alt1 sisyphus+353872.200.1.1 1722243589 installed <13>May 2 04:24:59 rpmi: python3-module-sphinxcontrib-jquery-4.1-alt3 sisyphus+339023.100.1.1 1706234262 installed <13>May 2 04:24:59 rpmi: python3-module-sphinxcontrib-jsmath-1.0.1-alt3 sisyphus+386352.100.2.1 1749139465 installed <13>May 2 04:24:59 rpmi: python3-module-sphinxcontrib-htmlhelp-2.1.0-alt1.1 sisyphus+413488.600.3.1 1774831636 installed <13>May 2 04:24:59 rpmi: python3-module-sphinxcontrib-serializinghtml-2.0.0-alt1 sisyphus+361088.100.1.1 1730215552 installed <13>May 2 04:24:59 rpmi: python3-module-sphinxcontrib-qthelp-2.0.0-alt1 sisyphus+353872.300.1.1 1722243619 installed <13>May 2 04:24:59 rpmi: python3-module-sphinx-sphinx-build-symlink-1:8.2.3-alt1 sisyphus+407419.100.1.1 1770402836 installed <13>May 2 04:24:59 rpmi: python3-module-sphinx-1:8.2.3-alt1 sisyphus+407419.100.1.1 1770402836 installed <13>May 2 04:24:59 rpmi: libpython3-3.13.12-alt3 sisyphus+415436.40.2.1 1776619563 installed <13>May 2 04:25:00 rpmi: python3-dev-3.13.12-alt3 sisyphus+415436.40.2.1 1776619563 installed <13>May 2 04:25:01 rpmi: python3-module-sphinx_rtd_theme-3.1.0-alt1 sisyphus+407413.100.1.1 1770401397 installed <13>May 2 04:25:01 rpmi: python3-module-pytest-9.0.3-alt1 sisyphus+414567.100.1.1 1775647126 installed <13>May 2 04:25:01 rpmi: python3-module-mypy-1.20.2-alt1 sisyphus+416073.100.1.1 1776932234 installed WARNING: %python3_build_debug is deprecated and will be removed in future, please use %pyproject_build instead WARNING: %python3_install is deprecated and will be removed in future, please use %pyproject_install instead Building target platforms: i586 Building for target i586 Wrote: /usr/src/in/nosrpm/python3-module-wrapt-2.1.2-alt1.nosrc.rpm (w1.gzdio) <13>May 2 04:25:03 rpmi: python3-module-more-itertools-11.0.2-alt1 sisyphus+414850.100.1.1 1775836149 installed <13>May 2 04:25:03 rpmi: python3-module-jaraco.functools-4.4.0-alt1 sisyphus+403451.100.1.1 1766321214 installed <13>May 2 04:25:03 rpmi: python3-module-wheel-0.47.0-alt1 sisyphus+416101.100.1.1 1776938753 installed <13>May 2 04:25:03 rpmi: python3-module-platformdirs-4.9.6-alt1 sisyphus+414708.100.1.1 1775732602 installed <13>May 2 04:25:03 rpmi: python3-module-shellingham-1.5.4-alt1 sisyphus+332574.100.1.1 1698135363 installed <13>May 2 04:25:03 rpmi: python3-module-uc-micro-py-2.0.0-alt1 sisyphus+411114.100.1.1 1773327270 installed <13>May 2 04:25:03 rpmi: python3-module-linkify-it-py-2.1.0-alt1.1 sisyphus+413476.100.1.1 1774817789 installed <13>May 2 04:25:03 rpmi: python3-module-mdurl-0.1.2-alt1 sisyphus+318894.1000.3.1 1682420700 installed <13>May 2 04:25:03 rpmi: python3-module-markdown-it-4.0.0-alt1 sisyphus+394327.100.1.1 1757330325 installed <13>May 2 04:25:03 rpmi: python3-module-rich-15.0.0-alt1 sisyphus+415092.100.2.1 1776162196 installed <13>May 2 04:25:03 rpmi: python3-module-jaraco.context-6.1.2-alt1 sisyphus+412384.100.1.1 1774283927 installed <13>May 2 04:25:03 rpmi: python3-module-click-8.3.3-alt1 sisyphus+416095.100.2.1 1777275479 installed <13>May 2 04:25:03 rpmi: python3-module-annotated_doc-0.0.4-alt1 sisyphus+401429.100.1.1 1764433640 installed <13>May 2 04:25:03 rpmi: python3-module-typer-0.25.0-alt1 sisyphus+416602.200.2.1 1777391273 installed <13>May 2 04:25:03 rpmi: python3-module-typer-slim-0.25.0-alt1 sisyphus+416602.200.2.1 1777391273 installed <13>May 2 04:25:03 rpmi: python3-module-jaraco.text-4.2.0-alt1 sisyphus+408107.100.3.1 1771429608 installed <13>May 2 04:25:03 rpmi: python3-module-pkg-resources-1:80.10.2-alt2.1 sisyphus+413485.1000.2.3 1774838477 installed <13>May 2 04:25:03 rpmi: python3-module-setuptools-1:82.0.1-alt1 sisyphus+411188.340.5.1 1773852239 installed WARNING: %python3_build_debug is deprecated and will be removed in future, please use %pyproject_build instead WARNING: %python3_install is deprecated and will be removed in future, please use %pyproject_install instead Installing python3-module-wrapt-2.1.2-alt1.src.rpm Building target platforms: i586 Building for target i586 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.34546 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf python3-module-wrapt-2.1.2 + echo 'Source #0 (python3-module-wrapt-2.1.2.tar):' Source #0 (python3-module-wrapt-2.1.2.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-wrapt-2.1.2.tar + cd python3-module-wrapt-2.1.2 + /bin/chmod -c -Rf u+rwX,go-w . + install -pm644 /usr/share/python-sphinx/objects.inv ./ + '[' -e ./conf.py ']' + cp -u /usr/lib/python3/site-packages/sphinx/conf.py.template ./conf.py + ln -s ../objects.inv docs/ + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.34546 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-wrapt-2.1.2 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing' + export FFLAGS + /usr/bin/python3 setup.py build --debug running build running build_py creating build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/wrappers.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/weakrefs.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/proxies.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/patches.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/importer.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/decorators.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/arguments.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/__wrapt__.py -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/__init__.py -> build/lib.linux-i686-cpython-313/wrapt running egg_info creating src/wrapt.egg-info writing src/wrapt.egg-info/PKG-INFO writing dependency_links to src/wrapt.egg-info/dependency_links.txt writing requirements to src/wrapt.egg-info/requires.txt writing top-level names to src/wrapt.egg-info/top_level.txt writing manifest file 'src/wrapt.egg-info/SOURCES.txt' reading manifest file 'src/wrapt.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE' writing manifest file 'src/wrapt.egg-info/SOURCES.txt' copying src/wrapt/__init__.pyi -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/_wrappers.c -> build/lib.linux-i686-cpython-313/wrapt copying src/wrapt/py.typed -> build/lib.linux-i686-cpython-313/wrapt running build_ext building 'wrapt._wrappers' extension creating build/temp.linux-i686-cpython-313/src/wrapt i586-alt-linux-gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -g -O3 -Wall -pipe -frecord-gcc-switches -Wall -g -O3 -flto=auto -ffat-lto-objects -march=i586 -mtune=generic -pipe -frecord-gcc-switches -Wall -g -O3 -flto=auto -ffat-lto-objects -march=i586 -mtune=generic -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing -fPIC -g -I/usr/include/python3.13 -c src/wrapt/_wrappers.c -o build/temp.linux-i686-cpython-313/src/wrapt/_wrappers.o src/wrapt/_wrappers.c:2460:18: warning: ‘WraptObjectProxy_iter’ defined but not used [-Wunused-function] 2460 | static PyObject *WraptObjectProxy_iter(WraptObjectProxyObject *self) | ^~~~~~~~~~~~~~~~~~~~~ i586-alt-linux-gcc -shared -pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing -g build/temp.linux-i686-cpython-313/src/wrapt/_wrappers.o -L/usr/lib -o build/lib.linux-i686-cpython-313/wrapt/_wrappers.cpython-313.so + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.52589 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/python3-module-wrapt-buildroot + : + /bin/rm -rf -- /usr/src/tmp/python3-module-wrapt-buildroot + PATH=/usr/libexec/rpm-build:/usr/src/bin:/usr/bin:/bin:/usr/local/bin:/usr/games + cd python3-module-wrapt-2.1.2 + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing' + export CFLAGS + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing' + export CXXFLAGS + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic -fno-strict-aliasing' + export FFLAGS + /usr/bin/python3 setup.py install --skip-build --root=/usr/src/tmp/python3-module-wrapt-buildroot --force running install /usr/lib/python3/site-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. This deprecation is overdue, please update your project and remove deprecated calls to avoid build errors in the future. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() running install_lib creating /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages creating /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/_wrappers.cpython-313.so -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/py.typed -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/_wrappers.c -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/__init__.pyi -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/__init__.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/__wrapt__.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/arguments.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/decorators.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/importer.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/patches.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/proxies.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/weakrefs.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt copying build/lib.linux-i686-cpython-313/wrapt/wrappers.py -> /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__init__.py to __init__.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__wrapt__.py to __wrapt__.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/arguments.py to arguments.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/decorators.py to decorators.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/importer.py to importer.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/patches.py to patches.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/proxies.py to proxies.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/weakrefs.py to weakrefs.cpython-313.pyc byte-compiling /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/wrappers.py to wrappers.cpython-313.pyc running install_egg_info running egg_info writing src/wrapt.egg-info/PKG-INFO writing dependency_links to src/wrapt.egg-info/dependency_links.txt writing requirements to src/wrapt.egg-info/requires.txt writing top-level names to src/wrapt.egg-info/top_level.txt reading manifest file 'src/wrapt.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' adding license file 'LICENSE' writing manifest file 'src/wrapt.egg-info/SOURCES.txt' Copying src/wrapt.egg-info to /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt-2.1.2-py3.13.egg-info running install_scripts + make SPHINXBUILD=sphinx-build-3 -C docs pickle make: Entering directory '/usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs' sphinx-build-3 -b pickle -d _build/doctrees . _build/pickle Running Sphinx v8.2.3 WARNING: Calling get_html_theme_path is deprecated. If you are calling it to define html_theme_path, you are safe to remove that code. loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. building [mo]: targets for 0 po files that are out of date writing output... building [pickle]: targets for 9 source files that are out of date updating environment: [new config] 9 added, 0 changed, 0 removed reading sources... [ 11%] benchmarks reading sources... [ 22%] changes reading sources... [ 33%] decorators reading sources... [ 44%] examples reading sources... [ 56%] index reading sources... [ 67%] issues reading sources... [ 78%] quick-start reading sources... [ 89%] typing reading sources... [100%] wrappers looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/pickle/_static/language_data.js Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/pickle/_static/documentation_options.js Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/pickle/_static/basic.css Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/pickle/_static/js/versions.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 11%] benchmarks writing output... [ 22%] changes writing output... [ 33%] decorators writing output... [ 44%] examples writing output... [ 56%] index writing output... [ 67%] issues writing output... [ 78%] quick-start writing output... [ 89%] typing writing output... [100%] wrappers generating indices... genindex done writing additional pages... search done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 1 warning. You can now process the pickle files in _build/pickle. Build finished; now you can process the pickle files. make: Leaving directory '/usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs' + make SPHINXBUILD=sphinx-build-3 -C docs html make: Entering directory '/usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs' sphinx-build-3 -b html -d _build/doctrees . _build/html Running Sphinx v8.2.3 WARNING: Calling get_html_theme_path is deprecated. If you are calling it to define html_theme_path, you are safe to remove that code. loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. loading pickled environment... The configuration has changed (1 option: 'html_js_files') done building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 9 source files that are out of date updating environment: 0 added, 0 changed, 0 removed reading sources... looking for now-outdated files... none found preparing documents... done copying assets... copying static files... Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/html/_static/language_data.js Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/html/_static/documentation_options.js Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/html/_static/basic.css Writing evaluated template result to /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs/_build/html/_static/js/versions.js copying static files: done copying extra files... copying extra files: done copying assets: done writing output... [ 11%] benchmarks writing output... [ 22%] changes writing output... [ 33%] decorators writing output... [ 44%] examples writing output... [ 56%] index writing output... [ 67%] issues writing output... [ 78%] quick-start writing output... [ 89%] typing writing output... [100%] wrappers generating indices... genindex done writing additional pages... search done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 1 warning. The HTML pages are in _build/html. Build finished. The HTML pages are in _build/html. make: Leaving directory '/usr/src/RPM/BUILD/python3-module-wrapt-2.1.2/docs' + cp -fR docs/_build/pickle /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/ + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/python3-module-wrapt-buildroot (auto) mode of './usr/lib/python3/site-packages/wrapt/_wrappers.cpython-313.so' changed from 0755 (rwxr-xr-x) to 0644 (rw-r--r--) Verifying and fixing files in /usr/src/tmp/python3-module-wrapt-buildroot (binconfig,pkgconfig,libtool,desktop,gnuconfig) Checking contents of files in /usr/src/tmp/python3-module-wrapt-buildroot/ (default) Compressing files in /usr/src/tmp/python3-module-wrapt-buildroot (auto) Adjusting library links in /usr/src/tmp/python3-module-wrapt-buildroot ./usr/lib: (from :0) Verifying ELF objects in /usr/src/tmp/python3-module-wrapt-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Splitting links to aliased files under /{,s}bin in /usr/src/tmp/python3-module-wrapt-buildroot Bytecompiling python3 modules in /usr/src/tmp/python3-module-wrapt-buildroot using /usr/bin/python3 unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/__init__.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/__wrapt__.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/arguments.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/decorators.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/importer.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/patches.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/proxies.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/weakrefs.cpython-313.pyc unlink /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__pycache__/wrappers.cpython-313.pyc compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__init__.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__wrapt__.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/arguments.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/decorators.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/importer.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/patches.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/proxies.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/weakrefs.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/wrappers.py Bytecompiling python3 modules with optimization in /usr/src/tmp/python3-module-wrapt-buildroot using /usr/bin/python3 -O compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__init__.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__wrapt__.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/arguments.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/decorators.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/importer.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/patches.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/proxies.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/weakrefs.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/wrappers.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python3-module-wrapt-buildroot using /usr/bin/python3 -OO compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__init__.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/__wrapt__.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/arguments.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/decorators.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/importer.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/patches.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/proxies.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/weakrefs.py compile /usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages/wrapt/wrappers.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/wrapt/__pycache__/__init__.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/__init__.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/__wrapt__.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/__wrapt__.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/arguments.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/arguments.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/decorators.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/decorators.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/importer.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/importer.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/patches.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/patches.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/proxies.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/proxies.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/weakrefs.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/weakrefs.cpython-313.pyc' './usr/lib/python3/site-packages/wrapt/__pycache__/wrappers.cpython-313.opt-1.pyc' => './usr/lib/python3/site-packages/wrapt/__pycache__/wrappers.cpython-313.pyc' Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.57747 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-wrapt-2.1.2 + export PYTHONPATH=/usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages + PYTHONPATH=/usr/src/tmp/python3-module-wrapt-buildroot/usr/lib/python3/site-packages + py.test3 ============================= test session starts ============================== platform linux -- Python 3.13.12, pytest-9.0.3, pluggy-1.6.0 rootdir: /usr/src/RPM/BUILD/python3-module-wrapt-2.1.2 configfile: pytest.ini collected 567 items tests/conftest.py ............FF......F.......... [ 5%] tests/core/test_adapter.py ........... [ 7%] tests/core/test_adapter_py3.py ........ [ 8%] tests/core/test_adapter_py33.py .. [ 9%] tests/core/test_attribute_wrapper.py . [ 9%] tests/core/test_auto_object_proxy.py ....... [ 10%] tests/core/test_callable_object_proxy.py ...... [ 11%] tests/core/test_class.py .. [ 11%] tests/core/test_class_py37.py ... [ 12%] tests/core/test_copy.py .... [ 13%] tests/core/test_decorators.py .......... [ 14%] tests/core/test_descriptors_py36.py . [ 15%] tests/core/test_entry_points.py ......... [ 16%] tests/core/test_formatargspec_py35.py . [ 16%] tests/core/test_formatargspec_py38.py . [ 17%] tests/core/test_function.py ........ [ 18%] tests/core/test_function_wrapper.py .............................. [ 23%] tests/core/test_inheritance_py37.py ... [ 24%] tests/core/test_inner_classmethod.py .................... [ 27%] tests/core/test_inner_staticmethod.py .................. [ 31%] tests/core/test_inplace_operators.py ................................... [ 37%] .............................. [ 42%] tests/core/test_instancemethod.py ................................. [ 48%] tests/core/test_lazy_object_proxy.py ...... [ 49%] tests/core/test_memoize.py .... [ 50%] tests/core/test_monkey_patching.py .................... [ 53%] tests/core/test_nested_function.py ....... [ 54%] tests/core/test_object_proxy.py ........................................ [ 61%] ........................................................................ [ 74%] ........................................................................ [ 87%] [ 87%] tests/core/test_outer_classmethod.py .............. [ 89%] tests/core/test_outer_staticmethod.py .............. [ 92%] tests/core/test_pickle.py .. [ 92%] tests/core/test_post_import_hooks.py ........ [ 94%] tests/core/test_synchronized_lock.py ......... [ 95%] tests/core/test_update_attributes.py .............. [ 98%] tests/core/test_weak_function_proxy.py ........... [100%] =================================== FAILURES =================================== __________________ mypy-pair: mypy_function_wrapper_fn_t4.py ___________________ cls = func = . at 0xf7000e88>, when = 'call' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, ) -> CallInfo[TResult]: """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :type func: Callable[[], _pytest.runner.TResult] :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None instant = timing.Instant() try: > result: TResult | None = func() ^^^^^^ /usr/lib/python3/site-packages/_pytest/runner.py:353: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > lambda: runtest_hook(item=item, **kwds), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ when=when, reraise=get_reraise_exceptions(item.config), ) /usr/lib/python3/site-packages/_pytest/runner.py:245: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'item': } firstresult = False def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0xf71c0538> hook_name = 'pytest_runtest_call' methods = [>, >] kwargs = {'item': } firstresult = False def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.logging.LoggingPlugin object at 0xf7003030> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: nodes.Item) -> Generator[None]: self.log_cli_handler.set_when("call") with self._runtest_for(item, "call"): > yield /usr/lib/python3/site-packages/_pytest/logging.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = > _state='suspended' _in_suspended=False> _capture_fixture=None> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: Item) -> Generator[None]: with self.item_capture("call", item): > return (yield) ^^^^^ /usr/lib/python3/site-packages/_pytest/capture.py:900: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(wrapper=True) def pytest_runtest_call(item: Item) -> Generator[None]: xfailed = item.stash.get(xfailed_key, None) if xfailed is None: item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: xfail("[NOTRUN] " + xfailed.reason) try: > return (yield) ^^^^^ /usr/lib/python3/site-packages/_pytest/skipping.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = def pytest_runtest_call(item: Item) -> None: _update_current_test_var(item, "call") try: del sys.last_type del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): del sys.last_exc # type:ignore[attr-defined] except AttributeError: pass try: > item.runtest() /usr/lib/python3/site-packages/_pytest/runner.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def runtest(self): # Try to run mypy; if it's not found, skip the test try: actual_output = run_custom_action(self.py_path) except FileNotFoundError: warnings.warn( f"mypy not found; skipping test {self.py_path.name}", UserWarning, stacklevel=2, ) pytest.skip("mypy command not found") expected_output = self.out_path.read_text(encoding="utf-8") # Normalize line endings to avoid platform discrepancies if actual_output.replace("\r\n", "\n") != expected_output.replace("\r\n", "\n"): > raise AssertionError( f"Output did not match expected for {self.py_path.name}\n" f"Expected (from {self.out_path.name}):\n{expected_output}\n" f"Actual:\n{actual_output}" ) E AssertionError: Output did not match expected for mypy_function_wrapper_fn_t4.py E Expected (from mypy_function_wrapper_fn_t4.out): E tests/mypy/mypy_function_wrapper_fn_t4.py:26: error: No overload variant of "__call__" of "FunctionDecorator" matches argument type "str" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t4.py:26: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t4.py:26: note: def [P`7, R, T: Any] __call__(self, callable: Callable[P, R] | Callable[[type[T], **P], R] | Callable[[type[T]], R]) -> FunctionWrapper[P, R] E tests/mypy/mypy_function_wrapper_fn_t4.py:26: note: def [P`10] __call__(self, callable: Descriptor) -> FunctionWrapper[P, Any] E tests/mypy/mypy_function_wrapper_fn_t4.py:27: error: No overload variant of "__call__" of "FunctionDecorator" matches argument type "None" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t4.py:27: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t4.py:27: note: def [P`15, R, T: Any] __call__(self, callable: Callable[P, R] | Callable[[type[T], **P], R] | Callable[[type[T]], R]) -> FunctionWrapper[P, R] E tests/mypy/mypy_function_wrapper_fn_t4.py:27: note: def [P`18] __call__(self, callable: Descriptor) -> FunctionWrapper[P, Any] E Found 2 errors in 1 file (checked 1 source file) E E Actual: E tests/mypy/mypy_function_wrapper_fn_t4.py:26: error: No overload variant of "__call__" of "FunctionDecorator" matches argument type "str" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t4.py:26: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t4.py:26: note: def [P, R, T: Any] __call__(self, callable: Callable[P, R] | Callable[[type[T], **P], R] | Callable[[type[T]], R]) -> FunctionWrapper[P, R] E tests/mypy/mypy_function_wrapper_fn_t4.py:26: note: def [P] __call__(self, callable: Descriptor) -> FunctionWrapper[P, Any] E tests/mypy/mypy_function_wrapper_fn_t4.py:27: error: No overload variant of "__call__" of "FunctionDecorator" matches argument type "None" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t4.py:27: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t4.py:27: note: def [P, R, T: Any] __call__(self, callable: Callable[P, R] | Callable[[type[T], **P], R] | Callable[[type[T]], R]) -> FunctionWrapper[P, R] E tests/mypy/mypy_function_wrapper_fn_t4.py:27: note: def [P] __call__(self, callable: Descriptor) -> FunctionWrapper[P, Any] E Found 2 errors in 1 file (checked 1 source file) tests/conftest.py:122: AssertionError __________________ mypy-pair: mypy_function_wrapper_fn_t5.py ___________________ cls = func = . at 0xf6422348>, when = 'call' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, ) -> CallInfo[TResult]: """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :type func: Callable[[], _pytest.runner.TResult] :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None instant = timing.Instant() try: > result: TResult | None = func() ^^^^^^ /usr/lib/python3/site-packages/_pytest/runner.py:353: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > lambda: runtest_hook(item=item, **kwds), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ when=when, reraise=get_reraise_exceptions(item.config), ) /usr/lib/python3/site-packages/_pytest/runner.py:245: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'item': } firstresult = False def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0xf71c0538> hook_name = 'pytest_runtest_call' methods = [>, >] kwargs = {'item': } firstresult = False def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.logging.LoggingPlugin object at 0xf7003030> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: nodes.Item) -> Generator[None]: self.log_cli_handler.set_when("call") with self._runtest_for(item, "call"): > yield /usr/lib/python3/site-packages/_pytest/logging.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = > _state='suspended' _in_suspended=False> _capture_fixture=None> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: Item) -> Generator[None]: with self.item_capture("call", item): > return (yield) ^^^^^ /usr/lib/python3/site-packages/_pytest/capture.py:900: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(wrapper=True) def pytest_runtest_call(item: Item) -> Generator[None]: xfailed = item.stash.get(xfailed_key, None) if xfailed is None: item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: xfail("[NOTRUN] " + xfailed.reason) try: > return (yield) ^^^^^ /usr/lib/python3/site-packages/_pytest/skipping.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = def pytest_runtest_call(item: Item) -> None: _update_current_test_var(item, "call") try: del sys.last_type del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): del sys.last_exc # type:ignore[attr-defined] except AttributeError: pass try: > item.runtest() /usr/lib/python3/site-packages/_pytest/runner.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def runtest(self): # Try to run mypy; if it's not found, skip the test try: actual_output = run_custom_action(self.py_path) except FileNotFoundError: warnings.warn( f"mypy not found; skipping test {self.py_path.name}", UserWarning, stacklevel=2, ) pytest.skip("mypy command not found") expected_output = self.out_path.read_text(encoding="utf-8") # Normalize line endings to avoid platform discrepancies if actual_output.replace("\r\n", "\n") != expected_output.replace("\r\n", "\n"): > raise AssertionError( f"Output did not match expected for {self.py_path.name}\n" f"Expected (from {self.out_path.name}):\n{expected_output}\n" f"Actual:\n{actual_output}" ) E AssertionError: Output did not match expected for mypy_function_wrapper_fn_t5.py E Expected (from mypy_function_wrapper_fn_t5.out): E tests/mypy/mypy_function_wrapper_fn_t5.py:13: error: No overload variant of "function_wrapper" matches argument type "str" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def function_wrapper(wrapper: type[Any]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def [P`-1, R] function_wrapper(wrapper: Callable[[Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def [P`-1, R] function_wrapper(wrapper: Callable[[type[Any], Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def [P`-1, R] function_wrapper(wrapper: Callable[[Any, Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: error: No overload variant of "function_wrapper" matches argument type "None" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def function_wrapper(wrapper: type[Any]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def [P`-1, R] function_wrapper(wrapper: Callable[[Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def [P`-1, R] function_wrapper(wrapper: Callable[[type[Any], Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def [P`-1, R] function_wrapper(wrapper: Callable[[Any, Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E Found 2 errors in 1 file (checked 1 source file) E E Actual: E tests/mypy/mypy_function_wrapper_fn_t5.py:13: error: No overload variant of "function_wrapper" matches argument type "str" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def function_wrapper(wrapper: type[Any]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def [P, R] function_wrapper(wrapper: Callable[[Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def [P, R] function_wrapper(wrapper: Callable[[type[Any], Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:13: note: def [P, R] function_wrapper(wrapper: Callable[[Any, Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: error: No overload variant of "function_wrapper" matches argument type "None" [call-overload] E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: Possible overload variants: E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def function_wrapper(wrapper: type[Any]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def [P, R] function_wrapper(wrapper: Callable[[Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def [P, R] function_wrapper(wrapper: Callable[[type[Any], Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E tests/mypy/mypy_function_wrapper_fn_t5.py:14: note: def [P, R] function_wrapper(wrapper: Callable[[Any, Callable[P, R], Any, tuple[Any, ...], dict[str, Any]], R]) -> FunctionDecorator E Found 2 errors in 1 file (checked 1 source file) tests/conftest.py:122: AssertionError ___________________ mypy-pair: mypy_synchronized_lock_t1.py ____________________ cls = func = . at 0xf6296d98>, when = 'call' reraise = (, ) @classmethod def from_call( cls, func: Callable[[], TResult], when: Literal["collect", "setup", "call", "teardown"], reraise: type[BaseException] | tuple[type[BaseException], ...] | None = None, ) -> CallInfo[TResult]: """Call func, wrapping the result in a CallInfo. :param func: The function to call. Called without arguments. :type func: Callable[[], _pytest.runner.TResult] :param when: The phase in which the function is called. :param reraise: Exception or exceptions that shall propagate if raised by the function, instead of being wrapped in the CallInfo. """ excinfo = None instant = timing.Instant() try: > result: TResult | None = func() ^^^^^^ /usr/lib/python3/site-packages/_pytest/runner.py:353: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > lambda: runtest_hook(item=item, **kwds), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ when=when, reraise=get_reraise_exceptions(item.config), ) /usr/lib/python3/site-packages/_pytest/runner.py:245: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = kwargs = {'item': }, firstresult = False def __call__(self, **kwargs: object) -> Any: """Call the hook. Only accepts keyword arguments, which should match the hook specification. Returns the result(s) of calling all registered plugins, see :ref:`calling`. """ assert not self.is_historic(), ( "Cannot directly call a historic hook - use call_historic instead." ) self._verify_all_args_are_provided(kwargs) firstresult = self.spec.opts.get("firstresult", False) if self.spec else False # Copy because plugins may register other plugins during iteration (#438). > return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_hooks.py:512: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.config.PytestPluginManager object at 0xf71c0538> hook_name = 'pytest_runtest_call' methods = [>, >] kwargs = {'item': }, firstresult = False def _hookexec( self, hook_name: str, methods: Sequence[HookImpl], kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: # called from all hookcaller instances. # enable_tracing will set its own wrapping function at self._inner_hookexec > return self._inner_hookexec(hook_name, methods, kwargs, firstresult) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_manager.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: teardown.throw(exception) except RuntimeError as re: # StopIteration from generator causes RuntimeError # even for coroutine usage - see #544 if ( isinstance(exception, StopIteration) and re.__cause__ is exception ): teardown.close() continue else: raise else: teardown.send(result) # Following is unreachable for a well behaved hook wrapper. # Try to force finalizers otherwise postponed till GC action. # Note: close() may raise if generator handles GeneratorExit. teardown.close() except StopIteration as si: result = si.value exception = None continue except BaseException as e: exception = e continue _raise_wrapfail(teardown, "has second yield") if exception is not None: > raise exception /usr/lib/python3/site-packages/pluggy/_callers.py:167: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_pytest.logging.LoggingPlugin object at 0xf7003030> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: nodes.Item) -> Generator[None]: self.log_cli_handler.set_when("call") with self._runtest_for(item, "call"): > yield /usr/lib/python3/site-packages/_pytest/logging.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = > _state='suspended' _in_suspended=False> _capture_fixture=None> item = @hookimpl(wrapper=True) def pytest_runtest_call(self, item: Item) -> Generator[None]: with self.item_capture("call", item): > return (yield) ^^^^^ /usr/lib/python3/site-packages/_pytest/capture.py:900: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: res = hook_impl.function(*args) if res is not None: results.append(res) if firstresult: # halt further impl calls break except BaseException as exc: exception = exc finally: if firstresult: # first result hooks return a single value result = results[0] if results else None else: result = results # run all wrapper post-yield blocks for teardown in reversed(teardowns): try: if exception is not None: try: > teardown.throw(exception) /usr/lib/python3/site-packages/pluggy/_callers.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = @hookimpl(wrapper=True) def pytest_runtest_call(item: Item) -> Generator[None]: xfailed = item.stash.get(xfailed_key, None) if xfailed is None: item.stash[xfailed_key] = xfailed = evaluate_xfail_marks(item) if xfailed and not item.config.option.runxfail and not xfailed.run: xfail("[NOTRUN] " + xfailed.reason) try: > return (yield) ^^^^^ /usr/lib/python3/site-packages/_pytest/skipping.py:268: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ hook_name = 'pytest_runtest_call' hook_impls = [>, >] caller_kwargs = {'item': } firstresult = False def _multicall( hook_name: str, hook_impls: Sequence[HookImpl], caller_kwargs: Mapping[str, object], firstresult: bool, ) -> object | list[object]: """Execute a call into multiple python functions/methods and return the result(s). ``caller_kwargs`` comes from HookCaller.__call__(). """ __tracebackhide__ = True results: list[object] = [] exception = None try: # run impl and wrapper setup functions in a loop teardowns: list[Teardown] = [] try: for hook_impl in reversed(hook_impls): try: args = [caller_kwargs[argname] for argname in hook_impl.argnames] except KeyError as e: # coverage bug - this is tested for argname in hook_impl.argnames: # pragma: no cover if argname not in caller_kwargs: raise HookCallError( f"hook call must provide argument {argname!r}" ) from e if hook_impl.hookwrapper: function_gen = run_old_style_hookwrapper(hook_impl, hook_name, args) next(function_gen) # first yield teardowns.append(function_gen) elif hook_impl.wrapper: try: # If this cast is not valid, a type error is raised below, # which is the desired response. res = hook_impl.function(*args) function_gen = cast(Generator[None, object, object], res) next(function_gen) # first yield teardowns.append(function_gen) except StopIteration: _raise_wrapfail(function_gen, "did not yield") else: > res = hook_impl.function(*args) ^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3/site-packages/pluggy/_callers.py:121: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ item = def pytest_runtest_call(item: Item) -> None: _update_current_test_var(item, "call") try: del sys.last_type del sys.last_value del sys.last_traceback if sys.version_info >= (3, 12, 0): del sys.last_exc # type:ignore[attr-defined] except AttributeError: pass try: > item.runtest() /usr/lib/python3/site-packages/_pytest/runner.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def runtest(self): # Try to run mypy; if it's not found, skip the test try: actual_output = run_custom_action(self.py_path) except FileNotFoundError: warnings.warn( f"mypy not found; skipping test {self.py_path.name}", UserWarning, stacklevel=2, ) pytest.skip("mypy command not found") expected_output = self.out_path.read_text(encoding="utf-8") # Normalize line endings to avoid platform discrepancies if actual_output.replace("\r\n", "\n") != expected_output.replace("\r\n", "\n"): > raise AssertionError( f"Output did not match expected for {self.py_path.name}\n" f"Expected (from {self.out_path.name}):\n{expected_output}\n" f"Actual:\n{actual_output}" ) E AssertionError: Output did not match expected for mypy_synchronized_lock_t1.py E Expected (from mypy_synchronized_lock_t1.out): E tests/mypy/mypy_synchronized_lock_t1.py:93: error: All overload variants of "synchronized" require at least one argument [call-overload] E tests/mypy/mypy_synchronized_lock_t1.py:93: note: Possible overload variants: E tests/mypy/mypy_synchronized_lock_t1.py:93: note: def [P`-1, R] synchronized(wrapped: Callable[P, R]) -> Callable[P, R] E tests/mypy/mypy_synchronized_lock_t1.py:93: note: def synchronized(wrapped: Any) -> SynchronizedObject E tests/mypy/mypy_synchronized_lock_t1.py:100: error: Too many arguments for "synchronized_function" [call-arg] E Found 2 errors in 1 file (checked 1 source file) E E Actual: E tests/mypy/mypy_synchronized_lock_t1.py:93: error: All overload variants of "synchronized" require at least one argument [call-overload] E tests/mypy/mypy_synchronized_lock_t1.py:93: note: Possible overload variants: E tests/mypy/mypy_synchronized_lock_t1.py:93: note: def [P, R] synchronized(wrapped: Callable[P, R]) -> Callable[P, R] E tests/mypy/mypy_synchronized_lock_t1.py:93: note: def synchronized(wrapped: Any) -> SynchronizedObject E tests/mypy/mypy_synchronized_lock_t1.py:100: error: Too many arguments for "synchronized_function" [call-arg] E Found 2 errors in 1 file (checked 1 source file) tests/conftest.py:122: AssertionError =========================== short test summary info ============================ FAILED tests/conftest.py::mypy_function_wrapper_fn_t4 - AssertionError: Outpu... FAILED tests/conftest.py::mypy_function_wrapper_fn_t5 - AssertionError: Outpu... FAILED tests/conftest.py::mypy_synchronized_lock_t1 - AssertionError: Output ... ======================== 3 failed, 564 passed in 17.48s ======================== error: Bad exit status from /usr/src/tmp/rpm-tmp.57747 (%check) RPM build errors: Bad exit status from /usr/src/tmp/rpm-tmp.57747 (%check) Command exited with non-zero status 1 21.21user 2.37system 0:23.41elapsed 100%CPU (0avgtext+0avgdata 53480maxresident)k 0inputs+0outputs (0major+438974minor)pagefaults 0swaps hsh-rebuild: rebuild of `python3-module-wrapt-2.1.2-alt1.src.rpm' failed. Command exited with non-zero status 1 5.44user 3.96system 0:41.80elapsed 22%CPU (0avgtext+0avgdata 142516maxresident)k 5104inputs+0outputs (0major+333652minor)pagefaults 0swaps