Mock Version: 5.0 Mock Version: 5.0 Mock Version: 5.0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-execnet.spec'], chrootPath='/var/lib/mock/f40-build-2314731-57810/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-execnet.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1706227200 Wrote: /builddir/build/SRPMS/python-execnet-1.9.0-14.fc40.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-execnet.spec'], chrootPath='/var/lib/mock/f40-build-2314731-57810/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-execnet.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1706227200 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.64LM4T + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf execnet-1.9.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/execnet-1.9.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd execnet-1.9.0 + rm -rf /builddir/build/BUILD/execnet-1.9.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/execnet-1.9.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + find . -type f -a '(' -name '*.py' -o -name 'py.*' ')' -exec sed -i '1{/^#!/d}' '{}' ';' -exec chmod u=rw,go=r '{}' ';' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.gSwkdc + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd execnet-1.9.0 + SETUPTOOLS_SCM_PRETEND_VERSION=1.9.0 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -sP' /usr/lib/python3.12/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! ******************************************************************************** Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`. ******************************************************************************** !! dist.fetch_build_eggs(dist.setup_requires) WARNING: The wheel package is not available. WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section' running build running build_py creating build creating build/lib creating build/lib/execnet copying execnet/multi.py -> build/lib/execnet copying execnet/gateway_io.py -> build/lib/execnet copying execnet/_version.py -> build/lib/execnet copying execnet/gateway_bootstrap.py -> build/lib/execnet copying execnet/rsync.py -> build/lib/execnet copying execnet/deprecated.py -> build/lib/execnet copying execnet/gateway.py -> build/lib/execnet copying execnet/gateway_socket.py -> build/lib/execnet copying execnet/rsync_remote.py -> build/lib/execnet copying execnet/__init__.py -> build/lib/execnet copying execnet/xspec.py -> build/lib/execnet copying execnet/gateway_base.py -> build/lib/execnet creating build/lib/execnet/script copying execnet/script/shell.py -> build/lib/execnet/script copying execnet/script/xx.py -> build/lib/execnet/script copying execnet/script/socketserverservice.py -> build/lib/execnet/script copying execnet/script/socketserver.py -> build/lib/execnet/script copying execnet/script/loop_socketserver.py -> build/lib/execnet/script copying execnet/script/__init__.py -> build/lib/execnet/script copying execnet/script/quitserver.py -> build/lib/execnet/script ++ pwd + make -C doc html PYTHONPATH=/builddir/build/BUILD/execnet-1.9.0 make: Entering directory '/builddir/build/BUILD/execnet-1.9.0/doc' sphinx-build -b html -d _build/doctrees . _build/html Running Sphinx v7.2.6 making output directory... done building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 14 source files that are out of date updating environment: [new config] 14 added, 0 changed, 0 removed reading sources... [ 7%] basics reading sources... [ 14%] changelog reading sources... [ 21%] example/hybridpython reading sources... [ 29%] example/test_debug reading sources... [ 36%] example/test_group reading sources... [ 43%] example/test_info reading sources... [ 50%] example/test_multi reading sources... [ 57%] example/test_proxy reading sources... [ 64%] example/test_ssh_fileserver reading sources... [ 71%] examples reading sources... [ 79%] implnotes reading sources... [ 86%] index reading sources... [ 93%] install reading sources... [100%] support looking for now-outdated files... /builddir/build/BUILD/execnet-1.9.0/doc/support.rst:10: WARNING: Inline interpreted text or phrase reference start-string without end-string. /builddir/build/BUILD/execnet-1.9.0/doc/support.rst:11: WARNING: Bullet list ends without a blank line; unexpected unindent. none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... done copying extra files... done done writing output... [ 7%] basics writing output... [ 14%] changelog writing output... [ 21%] example/hybridpython writing output... [ 29%] example/test_debug writing output... [ 36%] example/test_group writing output... [ 43%] example/test_info writing output... [ 50%] example/test_multi writing output... [ 57%] example/test_proxy writing output... [ 64%] example/test_ssh_fileserver writing output... [ 71%] examples writing output... [ 79%] implnotes writing output... [ 86%] index writing output... [ 93%] install writing output... [100%] support generating indices... genindex done writing additional pages... search done copying images... [ 50%] _static/basic1.png copying images... [100%] _static/pythonring.png dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 2 warnings. The HTML pages are in _build/html. Build finished. The HTML pages are in _build/html. make: Leaving directory '/builddir/build/BUILD/execnet-1.9.0/doc' + rm doc/_build/html/.buildinfo + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.WBEYfN + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch ++ dirname /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd execnet-1.9.0 + SETUPTOOLS_SCM_PRETEND_VERSION=1.9.0 + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch --prefix /usr /usr/lib/python3.12/site-packages/setuptools/__init__.py:80: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! ******************************************************************************** Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`. ******************************************************************************** !! dist.fetch_build_eggs(dist.setup_requires) WARNING: The wheel package is not available. WARNING setuptools_scm.pyproject_reading toml section missing 'pyproject.toml does not contain a tool.setuptools_scm section' running install /usr/lib/python3.12/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. Follow the current Python packaging guidelines when building Python RPM packages. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html and https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/ for details. ******************************************************************************** !! self.initialize_options() running install_lib creating /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr creating /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib creating /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12 creating /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages creating /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/multi.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet creating /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/script/shell.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/script/xx.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/script/socketserverservice.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/script/socketserver.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/script/loop_socketserver.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/script/__init__.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/script/quitserver.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script copying build/lib/execnet/gateway_io.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/_version.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/gateway_bootstrap.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/rsync.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/deprecated.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/gateway.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/gateway_socket.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/rsync_remote.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/__init__.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/xspec.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet copying build/lib/execnet/gateway_base.py -> /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/multi.py to multi.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script/shell.py to shell.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script/xx.py to xx.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script/socketserverservice.py to socketserverservice.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script/socketserver.py to socketserver.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script/loop_socketserver.py to loop_socketserver.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/script/quitserver.py to quitserver.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/gateway_io.py to gateway_io.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/_version.py to _version.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/gateway_bootstrap.py to gateway_bootstrap.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/rsync.py to rsync.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/deprecated.py to deprecated.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/gateway.py to gateway.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/gateway_socket.py to gateway_socket.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/rsync_remote.py to rsync_remote.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/xspec.py to xspec.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet/gateway_base.py to gateway_base.cpython-312.pyc writing byte-compilation script '/tmp/tmpigeojwj6.py' /usr/bin/python3 /tmp/tmpigeojwj6.py removing /tmp/tmpigeojwj6.py running install_egg_info running egg_info writing execnet.egg-info/PKG-INFO writing dependency_links to execnet.egg-info/dependency_links.txt writing requirements to execnet.egg-info/requires.txt writing top-level names to execnet.egg-info/top_level.txt reading manifest file 'execnet.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'execnet.egg-info/SOURCES.txt' Copying execnet.egg-info to /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12/site-packages/execnet-1.9.0-py3.12.egg-info running install_scripts + rm -rfv /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/bin/__pycache__ + /usr/bin/find-debuginfo -j8 --strict-build-id -m -i --build-id-seed 1.9.0-14.fc40 --unique-debug-suffix -1.9.0-14.fc40.noarch --unique-debug-src-base python-execnet-1.9.0-14.fc40.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/execnet-1.9.0 find-debuginfo: starting Extracting debug info from 0 files Creating .debug symlinks for symlinks to ELF files find: ‘debug’: No such file or directory find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j8 Bytecompiling .py files below /builddir/build/BUILDROOT/python-execnet-1.9.0-14.fc40.noarch/usr/lib/python3.12 using python3.12 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.gqKu11 + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd execnet-1.9.0 + PYTEST_SELECT='not test_popen_io[gevent-sys.executable]' + PYTEST_SELECT+=' and not [gevent-socket]' + PYTEST_SELECT+=' and not [eventlet-socket]' + PYTEST_SELECT+=' and not [python2.7]' ++ pwd + PYTHONPATH=/builddir/build/BUILD/execnet-1.9.0 + py.test-3.12 -r s -k 'not test_popen_io[gevent-sys.executable] and not [gevent-socket] and not [eventlet-socket] and not [python2.7]' testing --timeout=30 ============================= test session starts ============================== platform linux -- Python 3.12.0, pytest-7.3.2, pluggy-1.3.0 rootdir: /builddir/build/BUILD/execnet-1.9.0 configfile: tox.ini plugins: timeout-2.2.0 timeout: 30.0s timeout method: signal timeout func_only: False collected 917 items / 110 deselected / 807 selected testing/test_basics.py ...............ss.sss.sss....... [ 3%] testing/test_channel.py ..sE..s...s...s...s...s...s...s...s...s...s...s. [ 9%] ..s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s...s. [ 18%] [ 18%] testing/test_gateway.py ..s...s...s...s...s...s.XXsX..s...s...s...s...s. [ 24%] ..s...s...s...s...s...s...s...s......s.ss [ 29%] testing/test_multi.py ..s.xx [ 30%] testing/test_termination.py .sss.xsss [ 31%] testing/test_threadpool.py ......x....... [ 33%] testing/test_basics.py EEEEEEEEEEEEEEE [ 35%] testing/test_channel.py EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 41%] EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 46%] testing/test_gateway.py EEEEEEEEEEEEEEEEEExxxEEEEEEEEEEEEEEEEEEEEEEEEEEE [ 52%] EEEEEEEEEEEEEEEEEEEE [ 54%] testing/test_multi.py EEEEE [ 55%] testing/test_termination.py EEEEEEEEE [ 56%] testing/test_threadpool.py EEEEEExEEEEEEE [ 58%] testing/test_basics.py .ssssss....... [ 60%] testing/test_channel.py .s..s..s..s..s..s..s..s..s..s..s..s..s..s..s..s. [ 66%] .s..s..s..s..s..s..s..s..s..s..s..s..s..s. [ 71%] testing/test_gateway.py .s..s..s..s..s..s.XsX.s..s..s..s..s..s..s..s..s. [ 77%] .s..s..s..s.....s.ss [ 79%] testing/test_multi.py .s.xx [ 80%] testing/test_termination.py .sssxxsss [ 81%] testing/test_threadpool.py ......x......s [ 83%] testing/test_basics.py .ss.ss............ss.. [ 85%] testing/test_channel.py ss [ 86%] testing/test_compatibility_regressions.py . [ 86%] testing/test_gateway.py ..F.....X.X.ss.... [ 88%] testing/test_multi.py ........F....F [ 90%] testing/test_rsync.py .EE..E....s [ 91%] testing/test_serializer.py sssssssssssssssssssssssssssssssssssssss [ 96%] testing/test_termination.py .Fss [ 96%] testing/test_xspec.py ...............x....sxss.E [100%] ==================================== ERRORS ==================================== _ ERROR at setup of TestChannelBasicBehaviour.test_serialize_error[thread-proxy] _ request = > execmodel = group = @pytest.fixture def gw(request, execmodel, group): try: > return group[request.param] testing/conftest.py:170: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , key = 'proxy' def __getitem__(self, key): if isinstance(key, int): return self._gateways[key] for gw in self._gateways: if gw == key or gw.id == key: return gw > raise KeyError(key) E KeyError: 'proxy' execnet/multi.py:83: KeyError During handling of the above exception, another exception occurred: request = > execmodel = group = @pytest.fixture def gw(request, execmodel, group): try: return group[request.param] except KeyError: if request.param == "popen": gw = group.makegateway("popen//id=popen//execmodel=%s" % execmodel.backend) elif request.param == "socket": # if execmodel.backend != "thread": # pytest.xfail( # "cannot set remote non-thread execmodel for sockets") pname = "sproxy1" if pname not in group: proxygw = group.makegateway("popen//id=%s" % pname) # assert group['proxygw'].remote_status().receiving gw = group.makegateway( "socket//id=socket//installvia=%s" "//execmodel=%s" % (pname, execmodel.backend) ) gw.proxygw = proxygw assert pname in group elif request.param == "ssh": sshhost = request.getfixturevalue("specssh").ssh # we don't use execmodel.backend here # but you can set it when specifying the ssh spec gw = group.makegateway("ssh={}//id=ssh".format(sshhost)) elif request.param == "proxy": group.makegateway("popen//id=proxy-transport") > gw = group.makegateway( "popen//via=proxy-transport//id=proxy" "//execmodel=%s" % execmodel.backend ) testing/conftest.py:195: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:131: in makegateway gw = gateway_bootstrap.bootstrap(proxy_io_master, spec) execnet/gateway_bootstrap.py:99: in bootstrap bootstrap_exec(io, spec) execnet/gateway_bootstrap.py:49: in bootstrap_exec s = io.read(1) execnet/gateway_io.py:163: in read return self.iochan_file.read(nbytes) execnet/gateway_base.py:908: in read self._buffer = self.channel.receive() execnet/gateway_base.py:744: in receive x = itemqueue.get(timeout=timeout) /usr/lib64/python3.12/queue.py:171: in get self.not_empty.wait() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 0)> timeout = None def wait(self, timeout=None): """Wait until notified or until a timeout occurs. If the calling thread has not acquired the lock when this method is called, a RuntimeError is raised. This method releases the underlying lock, and then blocks until it is awakened by a notify() or notify_all() call for the same condition variable in another thread, or until the optional timeout occurs. Once awakened or timed out, it re-acquires the lock and returns. When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). When the underlying lock is an RLock, it is not released using its release() method, since this may not actually unlock the lock when it was acquired multiple times recursively. Instead, an internal interface of the RLock class is used, which really unlocks it even when it has been recursively acquired several times. Another internal interface is then used to restore the recursion level when the lock is reacquired. """ if not self._is_owned(): raise RuntimeError("cannot wait on un-acquired lock") waiter = _allocate_lock() waiter.acquire() self._waiters.append(waiter) saved_state = self._release_save() gotit = False try: # restore state no matter what (e.g., KeyboardInterrupt) if timeout is None: > waiter.acquire() E Failed: Timeout >30.0s /usr/lib64/python3.12/threading.py:334: Failed ---------------------------- Captured stderr setup ----------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) __________ ERROR at setup of test_io_message[eventlet-sys.executable] __________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ---------------------------- Captured stderr setup ----------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591672328576) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 163, in read return self.iochan_file.read(nbytes) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 910, in read self._buffer += self.channel.receive() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 744, in receive x = itemqueue.get(timeout=timeout) File "/usr/lib64/python3.12/queue.py", line 171, in get self.not_empty.wait() File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591680721280) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ____________ ERROR at setup of test_io_message[eventlet-python2.7] _____________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______________ ERROR at setup of test_io_message[eventlet-pypy] _______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ______________ ERROR at setup of test_io_message[eventlet-jython] ______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___________ ERROR at setup of test_popen_io[eventlet-sys.executable] ___________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____________ ERROR at setup of test_popen_io[eventlet-python2.7] ______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ________________ ERROR at setup of test_popen_io[eventlet-pypy] ________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______________ ERROR at setup of test_popen_io[eventlet-jython] _______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ______________ ERROR at setup of test_popen_io_readloop[eventlet] ______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____________ ERROR at setup of test_stdouterrin_setnull[eventlet] _____________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __________________ ERROR at setup of test_exectask[eventlet] ___________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______ ERROR at setup of TestPureChannel.test_factory_create[eventlet] ________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______ ERROR at setup of TestPureChannel.test_factory_getitem[eventlet] _______ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____ ERROR at setup of TestPureChannel.test_channel_timeouterror[eventlet] _____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestPureChannel.test_channel_makefile_incompatmode[eventlet] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_serialize_error[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_serialize_error[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_serialize_error[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_close_and_then_receive_error[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_close_and_then_receive_error[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_close_and_then_receive_error[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_finish_and_then_EOFError[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_finish_and_then_EOFError[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_finish_and_then_EOFError[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_waitclose_timeouterror[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_waitclose_timeouterror[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_waitclose_timeouterror[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receive_timeout[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receive_timeout[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receive_timeout[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receive_internal_timeout[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receive_internal_timeout[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receive_internal_timeout[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_close_and_then_receive_error_multiple[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_close_and_then_receive_error_multiple[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_close_and_then_receive_error_multiple[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel__local_close[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel__local_close[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel__local_close[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel__local_close_error[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel__local_close_error[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel__local_close_error[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_error_reporting[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_error_reporting[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_error_reporting[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_syntax_error[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_syntax_error[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_syntax_error[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_iter[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_iter[eventlet-ssh] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_iter[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_pass_in_structure[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_pass_in_structure[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_pass_in_structure[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_multipass[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_multipass[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_multipass[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_passing_over_channel[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_passing_over_channel[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_passing_over_channel[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receiver_callback[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receiver_callback[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_receiver_callback[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_after_receive[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_after_receive[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_after_receive[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_waiting_for_callbacks[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_waiting_for_callbacks[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_waiting_for_callbacks[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_stays_active[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_stays_active[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_stays_active[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_remote_freed[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_remote_freed[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_remote_freed[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_endmarker_callback[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_endmarker_callback[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_endmarker_callback[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_endmarker_callback_error[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_endmarker_callback_error[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_endmarker_callback_error[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_error[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_error[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelBasicBehaviour.test_channel_callback_error[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestChannelFile.test_channel_file_write[eventlet-popen] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of TestChannelFile.test_channel_file_write[eventlet-ssh] ____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestChannelFile.test_channel_file_write[eventlet-proxy] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_write_error[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_write_error[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_write_error[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_proxyclose[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_proxyclose[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_proxyclose[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of TestChannelFile.test_channel_file_read[eventlet-popen] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____ ERROR at setup of TestChannelFile.test_channel_file_read[eventlet-ssh] ____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of TestChannelFile.test_channel_file_read[eventlet-proxy] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_read_empty[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_read_empty[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_read_empty[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_readline_remote[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_readline_remote[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_file_readline_remote[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_makefile_incompatmode[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_makefile_incompatmode[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestChannelFile.test_channel_makefile_incompatmode[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____ ERROR at setup of TestBasicGateway.test_correct_setup[eventlet-popen] _____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____ ERROR at setup of TestBasicGateway.test_correct_setup[eventlet-ssh] ______ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____ ERROR at setup of TestBasicGateway.test_correct_setup[eventlet-proxy] _____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestBasicGateway.test_repr_doesnt_crash[eventlet-popen] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of TestBasicGateway.test_repr_doesnt_crash[eventlet-ssh] ____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestBasicGateway.test_repr_doesnt_crash[eventlet-proxy] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestBasicGateway.test_attribute__name__[eventlet-popen] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of TestBasicGateway.test_attribute__name__[eventlet-ssh] ____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestBasicGateway.test_attribute__name__[eventlet-proxy] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_gateway_status_simple[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_gateway_status_simple[eventlet-ssh] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_gateway_status_simple[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_exc_info_is_clear_after_gateway_startup[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_exc_info_is_clear_after_gateway_startup[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_exc_info_is_clear_after_gateway_startup[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_gateway_status_no_real_channel[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_gateway_status_no_real_channel[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_gateway_status_no_real_channel[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestBasicGateway.test_remote_exec_module[eventlet-popen] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of TestBasicGateway.test_remote_exec_module[eventlet-ssh] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestBasicGateway.test_remote_exec_module[eventlet-proxy] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_module_is_removed[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_module_is_removed[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_module_is_removed[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_module_with_traceback[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_module_with_traceback[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_module_with_traceback[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_correct_setup_no_py[eventlet-popen] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of TestBasicGateway.test_correct_setup_no_py[eventlet-ssh] ___ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_correct_setup_no_py[eventlet-proxy] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose[eventlet-ssh] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose_2[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose_2[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose_2[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose_noarg[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose_noarg[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_waitclose_noarg[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_error_after_close[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_error_after_close[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_error_after_close[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_no_explicit_close[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_no_explicit_close[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_no_explicit_close[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_channel_anonymous[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_channel_anonymous[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_remote_exec_channel_anonymous[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_confusion_from_os_write_stdout[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_confusion_from_os_write_stdout[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_confusion_from_os_write_stdout[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_confusion_from_os_write_stderr[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_confusion_from_os_write_stderr[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestBasicGateway.test_confusion_from_os_write_stderr[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ________ ERROR at setup of TestBasicGateway.test__rinfo[eventlet-popen] ________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _________ ERROR at setup of TestBasicGateway.test__rinfo[eventlet-ssh] _________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ________ ERROR at setup of TestBasicGateway.test__rinfo[eventlet-proxy] ________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestPopenGateway.test_remoteerror_readable_traceback[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____ ERROR at setup of TestPopenGateway.test_rinfo_popen[eventlet-popen] ______ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestPopenGateway.test_receive_on_remote_sysexit[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______ ERROR at setup of test_socket_gw_host_not_found[eventlet-popen] ________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ________ ERROR at setup of test_socket_gw_host_not_found[eventlet-ssh] _________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______ ERROR at setup of test_socket_gw_host_not_found[eventlet-proxy] ________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____ ERROR at setup of TestSshPopenGateway.test_sshaddress[eventlet-ssh] ______ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of TestSshPopenGateway.test_host_not_found[eventlet-ssh] ____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestMultiChannelAndGateway.test_multichannel_container_basics[eventlet-popen] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestMultiChannelAndGateway.test_multichannel_container_basics[eventlet-ssh] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of TestMultiChannelAndGateway.test_multichannel_container_basics[eventlet-proxy] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______________ ERROR at setup of test_safe_terminate[eventlet] ________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______________ ERROR at setup of test_safe_terminate2[eventlet] _______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of test_exit_blocked_worker_execution_gateway[eventlet-sys.executable] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of test_exit_blocked_worker_execution_gateway[eventlet-python2.7] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of test_exit_blocked_worker_execution_gateway[eventlet-pypy] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of test_exit_blocked_worker_execution_gateway[eventlet-jython] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____ ERROR at setup of test_endmarker_delivery_on_remote_killterm[eventlet] ____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _ ERROR at setup of test_terminate_implicit_does_trykill[eventlet-sys.executable] _ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __ ERROR at setup of test_terminate_implicit_does_trykill[eventlet-python2.7] __ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____ ERROR at setup of test_terminate_implicit_does_trykill[eventlet-pypy] _____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___ ERROR at setup of test_terminate_implicit_does_trykill[eventlet-jython] ____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed __________________ ERROR at setup of test_execmodel[eventlet] __________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____________ ERROR at setup of test_execmodel_basic_attrs[eventlet] ____________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___________________ ERROR at setup of test_simple[eventlet] ____________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ____________________ ERROR at setup of test_some[eventlet] _____________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ______________ ERROR at setup of test_running_semnatics[eventlet] ______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____________ ERROR at setup of test_waitfinish_on_reply[eventlet] _____________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____________________ ERROR at setup of test_get[eventlet] _____________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _________________ ERROR at setup of test_get_timeout[eventlet] _________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _________________ ERROR at setup of test_get_excinfo[eventlet] _________________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _______________ ERROR at setup of test_waitall_timeout[eventlet] _______________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____________ ERROR at setup of test_pool_clean_shutdown[eventlet] _____________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _________ ERROR at setup of test_primary_thread_integration[eventlet] __________ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed _____ ERROR at setup of test_primary_thread_integration_shutdown[eventlet] _____ request = > @pytest.fixture(params=["thread", "eventlet", "gevent"], scope="session") def execmodel(request): if request.param != "thread": > pytest.importorskip(request.param) testing/conftest.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/site-packages/eventlet/__init__.py:17: in from eventlet import convenience /usr/lib/python3.12/site-packages/eventlet/convenience.py:7: in from eventlet.green import socket /usr/lib/python3.12/site-packages/eventlet/green/socket.py:21: in from eventlet.support import greendns /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:74: in setattr(dns.rdtypes.ANY, pkg, import_patched('dns.rdtypes.ANY.' + pkg)) /usr/lib/python3.12/site-packages/eventlet/support/greendns.py:61: in import_patched return patcher.import_patched(module_name, **modules) /usr/lib/python3.12/site-packages/eventlet/patcher.py:132: in import_patched return inject( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ module_name = 'dns.rdtypes.ANY.AMTRELAY', new_globals = None additional_modules = (('select', ), ('tim...ket_nodns.py'>), ('ssl', )) patched_name = '__patched_module_dns.rdtypes.ANY.AMTRELAY', name = 'ssl' def inject(module_name, new_globals, *additional_modules): """Base method for "injecting" greened modules into an imported module. It imports the module specified in *module_name*, arranging things so that the already-imported modules in *additional_modules* are used when *module_name* makes its imports. **Note:** This function does not create or change any sys.modules item, so if your greened module use code like 'sys.modules["your_module_name"]', you need to update sys.modules by yourself. *new_globals* is either None or a globals dictionary that gets populated with the contents of the *module_name* module. This is useful when creating a "green" version of some other module. *additional_modules* should be a collection of two-element tuples, of the form (, ). If it's not specified, a default selection of name/module pairs is used, which should cover all use cases but may be slower because there are inevitably redundant or unnecessary imports. """ patched_name = '__patched_module_' + module_name if patched_name in sys.modules: # returning already-patched module so as not to destroy existing # references to patched modules return sys.modules[patched_name] if not additional_modules: # supply some defaults additional_modules = ( _green_os_modules() + _green_select_modules() + _green_socket_modules() + _green_thread_modules() + _green_time_modules()) # _green_MySQLdb()) # enable this after a short baking-in period # after this we are gonna screw with sys.modules, so capture the # state of all the modules we're going to mess with, and lock saver = SysModulesSaver([name for name, m in additional_modules]) saver.save(module_name) # Cover the target modules so that when you import the module it # sees only the patched versions for name, mod in additional_modules: sys.modules[name] = mod # Remove the old module from sys.modules and reimport it while # the specified modules are in place sys.modules.pop(module_name, None) # Also remove sub modules and reimport. Use copy the keys to list # because of the pop operations will change the content of sys.modules # within th loop for imported_module_name in list(sys.modules.keys()): > if imported_module_name.startswith(module_name + '.'): E Failed: Timeout >30.0s /usr/lib/python3.12/site-packages/eventlet/patcher.py:106: Failed ___________________ ERROR at setup of TestRSync.test_dirsync ___________________ request = > group = @pytest.fixture(scope="module") def gw2(request, group): > gw = group.makegateway("popen//id=gw2") testing/test_rsync.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:134: in makegateway gw = gateway_bootstrap.bootstrap(io, spec) execnet/gateway_bootstrap.py:101: in bootstrap bootstrap_import(io, spec) execnet/gateway_bootstrap.py:35: in bootstrap_import s = io.read(1) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = numbytes = 1 def read(self, numbytes): """Read exactly 'numbytes' bytes from the pipe.""" # a file in non-blocking mode may return less bytes, so we loop buf = bytes() while numbytes > len(buf): > data = self._read(numbytes - len(buf)) E Failed: Timeout >30.0s execnet/gateway_base.py:400: Failed ---------------------------- Captured stderr setup ----------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591105749376) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057590741197184) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591097356672) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591130927488) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591122534784) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591663935872) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591139320192) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591147712896) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591647150464) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591672328576) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 163, in read return self.iochan_file.read(nbytes) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 910, in read self._buffer += self.channel.receive() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 744, in receive x = itemqueue.get(timeout=timeout) File "/usr/lib64/python3.12/queue.py", line 171, in get self.not_empty.wait() File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591680721280) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ________________ ERROR at setup of TestRSync.test_dirsync_twice ________________ request = > group = @pytest.fixture(scope="module") def gw2(request, group): > gw = group.makegateway("popen//id=gw2") testing/test_rsync.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:134: in makegateway gw = gateway_bootstrap.bootstrap(io, spec) execnet/gateway_bootstrap.py:101: in bootstrap bootstrap_import(io, spec) execnet/gateway_bootstrap.py:35: in bootstrap_import s = io.read(1) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = numbytes = 1 def read(self, numbytes): """Read exactly 'numbytes' bytes from the pipe.""" # a file in non-blocking mode may return less bytes, so we loop buf = bytes() while numbytes > len(buf): > data = self._read(numbytes - len(buf)) E Failed: Timeout >30.0s execnet/gateway_base.py:400: Failed _________________ ERROR at setup of TestRSync.test_permissions _________________ request = > group = @pytest.fixture(scope="module") def gw2(request, group): > gw = group.makegateway("popen//id=gw2") testing/test_rsync.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:134: in makegateway gw = gateway_bootstrap.bootstrap(io, spec) execnet/gateway_bootstrap.py:101: in bootstrap bootstrap_import(io, spec) execnet/gateway_bootstrap.py:35: in bootstrap_import s = io.read(1) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = numbytes = 1 def read(self, numbytes): """Read exactly 'numbytes' bytes from the pipe.""" # a file in non-blocking mode may return less bytes, so we loop buf = bytes() while numbytes > len(buf): > data = self._read(numbytes - len(buf)) E Failed: Timeout >30.0s execnet/gateway_base.py:400: Failed _________ ERROR at teardown of TestMakegateway.test_socket_installvia __________ @pytest.fixture(scope="session") def group(): g = execnet.Group() yield g > g.terminate(timeout=1) testing/conftest.py:164: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:215: in terminate safe_terminate( execnet/multi.py:311: in safe_terminate reply.get() execnet/gateway_base.py:206: in get self.waitfinish(timeout) execnet/gateway_base.py:213: in waitfinish if not self._result_ready.wait(timeout): /usr/lib64/python3.12/threading.py:634: in wait signaled = self._cond.wait(timeout) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 0)> timeout = None def wait(self, timeout=None): """Wait until notified or until a timeout occurs. If the calling thread has not acquired the lock when this method is called, a RuntimeError is raised. This method releases the underlying lock, and then blocks until it is awakened by a notify() or notify_all() call for the same condition variable in another thread, or until the optional timeout occurs. Once awakened or timed out, it re-acquires the lock and returns. When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). When the underlying lock is an RLock, it is not released using its release() method, since this may not actually unlock the lock when it was acquired multiple times recursively. Instead, an internal interface of the RLock class is used, which really unlocks it even when it has been recursively acquired several times. Another internal interface is then used to restore the recursion level when the lock is reacquired. """ if not self._is_owned(): raise RuntimeError("cannot wait on un-acquired lock") waiter = _allocate_lock() waiter.acquire() self._waiters.append(waiter) saved_state = self._release_save() gotit = False try: # restore state no matter what (e.g., KeyboardInterrupt) if timeout is None: > waiter.acquire() E Failed: Timeout >30.0s /usr/lib64/python3.12/threading.py:334: Failed --------------------------- Captured stderr teardown --------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591672328576) ~~~~~~~~~~~~~~~~~~~~ Exception ignored in: File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/multi.py", line 209, in join_wait gw._io.wait() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 26, in wait return self.popen.wait() File "/usr/lib64/python3.12/subprocess.py", line 1264, in wait return self._wait(timeout=timeout) File "/usr/lib64/python3.12/subprocess.py", line 2046, in _wait (pid, sts) = self._try_wait(0) File "/usr/lib64/python3.12/subprocess.py", line 2004, in _try_wait (pid, sts) = os.waitpid(self.pid, wait_flags) Traceback (most recent call last): File "", line 618, in __del__ ~~~~~~~~~~~~~~~~~~~~ Stack of (72057590724411776) ~~~~~~~~~~~~~~~~~~~~ AttributeError: 'str' object has no attribute 'warn' File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/multi.py", line 209, in join_wait gw._io.wait() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 179, in wait return self._controll(RIO_WAIT) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 170, in _controll return self.controlchan.receive() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 744, in receive x = itemqueue.get(timeout=timeout) File "/usr/lib64/python3.12/queue.py", line 171, in get self.not_empty.wait() File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057590732804480) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/multi.py", line 208, in join_wait gw.join() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 1020, in join self._receivepool.waitall() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 333, in waitall return my_waitall_event.wait(timeout=timeout) File "/usr/lib64/python3.12/threading.py", line 634, in wait signaled = self._cond.wait(timeout) File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057590749589888) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/multi.py", line 208, in join_wait gw.join() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 1020, in join self._receivepool.waitall() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 333, in waitall return my_waitall_event.wait(timeout=timeout) File "/usr/lib64/python3.12/threading.py", line 634, in wait signaled = self._cond.wait(timeout) File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591105749376) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/multi.py", line 302, in termkill termreply.get(timeout=timeout) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 206, in get self.waitfinish(timeout) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 213, in waitfinish if not self._result_ready.wait(timeout): File "/usr/lib64/python3.12/threading.py", line 634, in wait signaled = self._cond.wait(timeout) File "/usr/lib64/python3.12/threading.py", line 338, in wait gotit = waiter.acquire(True, timeout) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591638757760) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/multi.py", line 302, in termkill termreply.get(timeout=timeout) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 206, in get self.waitfinish(timeout) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 213, in waitfinish if not self._result_ready.wait(timeout): File "/usr/lib64/python3.12/threading.py", line 634, in wait signaled = self._cond.wait(timeout) File "/usr/lib64/python3.12/threading.py", line 338, in wait gotit = waiter.acquire(True, timeout) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/multi.py", line 302, in termkill termreply.get(timeout=timeout) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 206, in get self.waitfinish(timeout) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 213, in waitfinish if not self._result_ready.wait(timeout): File "/usr/lib64/python3.12/threading.py", line 634, in wait signaled = self._cond.wait(timeout) File "/usr/lib64/python3.12/threading.py", line 338, in wait gotit = waiter.acquire(True, timeout) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057590741197184) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591097356672) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591130927488) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591122534784) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591663935872) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591139320192) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591147712896) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591647150464) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591680721280) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) =================================== FAILURES =================================== _______________________ TestPopenGateway.test_many_popen _______________________ self = makegateway = > def test_many_popen(self, makegateway): num = 4 l = [] for i in range(num): > l.append(makegateway("popen")) testing/test_gateway.py:315: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:134: in makegateway gw = gateway_bootstrap.bootstrap(io, spec) execnet/gateway_bootstrap.py:101: in bootstrap bootstrap_import(io, spec) execnet/gateway_bootstrap.py:35: in bootstrap_import s = io.read(1) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = numbytes = 1 def read(self, numbytes): """Read exactly 'numbytes' bytes from the pipe.""" # a file in non-blocking mode may return less bytes, so we loop buf = bytes() while numbytes > len(buf): > data = self._read(numbytes - len(buf)) E Failed: Timeout >30.0s execnet/gateway_base.py:400: Failed ----------------------------- Captured stderr call ----------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591647150464) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591638757760) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591672328576) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 163, in read return self.iochan_file.read(nbytes) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 910, in read self._buffer += self.channel.receive() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 744, in receive x = itemqueue.get(timeout=timeout) File "/usr/lib64/python3.12/queue.py", line 171, in get self.not_empty.wait() File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591680721280) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ________________ TestGroup.test_group_ordering_and_termination _________________ self = def test_group_ordering_and_termination(self): group = Group() group.makegateway("popen//id=3") group.makegateway("popen//id=2") > group.makegateway("popen//id=5") testing/test_multi.py:159: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:134: in makegateway gw = gateway_bootstrap.bootstrap(io, spec) execnet/gateway_bootstrap.py:101: in bootstrap bootstrap_import(io, spec) execnet/gateway_bootstrap.py:35: in bootstrap_import s = io.read(1) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = numbytes = 1 def read(self, numbytes): """Read exactly 'numbytes' bytes from the pipe.""" # a file in non-blocking mode may return less bytes, so we loop buf = bytes() while numbytes > len(buf): > data = self._read(numbytes - len(buf)) E Failed: Timeout >30.0s execnet/gateway_base.py:400: Failed ----------------------------- Captured stderr call ----------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591130927488) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591122534784) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591663935872) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591139320192) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591147712896) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591647150464) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591672328576) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 163, in read return self.iochan_file.read(nbytes) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 910, in read self._buffer += self.channel.receive() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 744, in receive x = itemqueue.get(timeout=timeout) File "/usr/lib64/python3.12/queue.py", line 171, in get self.not_empty.wait() File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591680721280) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ____________________ TestGroup.test_terminate_with_proxying ____________________ self = def test_terminate_with_proxying(self): group = Group() group.makegateway("popen//id=master") > group.makegateway("popen//via=master//id=worker") testing/test_multi.py:224: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ execnet/multi.py:131: in makegateway gw = gateway_bootstrap.bootstrap(proxy_io_master, spec) execnet/gateway_bootstrap.py:99: in bootstrap bootstrap_exec(io, spec) execnet/gateway_bootstrap.py:49: in bootstrap_exec s = io.read(1) execnet/gateway_io.py:163: in read return self.iochan_file.read(nbytes) execnet/gateway_base.py:908: in read self._buffer = self.channel.receive() execnet/gateway_base.py:744: in receive x = itemqueue.get(timeout=timeout) /usr/lib64/python3.12/queue.py:171: in get self.not_empty.wait() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , 0)> timeout = None def wait(self, timeout=None): """Wait until notified or until a timeout occurs. If the calling thread has not acquired the lock when this method is called, a RuntimeError is raised. This method releases the underlying lock, and then blocks until it is awakened by a notify() or notify_all() call for the same condition variable in another thread, or until the optional timeout occurs. Once awakened or timed out, it re-acquires the lock and returns. When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). When the underlying lock is an RLock, it is not released using its release() method, since this may not actually unlock the lock when it was acquired multiple times recursively. Instead, an internal interface of the RLock class is used, which really unlocks it even when it has been recursively acquired several times. Another internal interface is then used to restore the recursion level when the lock is reacquired. """ if not self._is_owned(): raise RuntimeError("cannot wait on un-acquired lock") waiter = _allocate_lock() waiter.acquire() self._waiters.append(waiter) saved_state = self._release_save() gotit = False try: # restore state no matter what (e.g., KeyboardInterrupt) if timeout is None: > waiter.acquire() E Failed: Timeout >30.0s /usr/lib64/python3.12/threading.py:334: Failed ----------------------------- Captured stderr call ----------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057590741197184) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591097356672) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591130927488) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591122534784) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591663935872) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591139320192) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591147712896) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591647150464) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591672328576) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 163, in read return self.iochan_file.read(nbytes) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 910, in read self._buffer += self.channel.receive() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 744, in receive x = itemqueue.get(timeout=timeout) File "/usr/lib64/python3.12/queue.py", line 171, in get self.not_empty.wait() File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591680721280) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ____________ test_close_initiating_remote_no_error[sys.executable] _____________ testdir = anypython = local('/usr/bin/python3') def test_close_initiating_remote_no_error(testdir, anypython): p = testdir.makepyfile( """ import sys sys.path.insert(0, sys.argv[1]) import execnet gw = execnet.makegateway("popen") print ("remote_exec1") ch1 = gw.remote_exec("channel.receive()") print ("remote_exec1") ch2 = gw.remote_exec("channel.receive()") print ("termination") execnet.default_group.terminate() """ ) popen = subprocess.Popen( [str(anypython), str(p), str(execnetdir)], stdout=None, stderr=subprocess.PIPE ) > out, err = popen.communicate() /builddir/build/BUILD/execnet-1.9.0/testing/test_termination.py:91: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = input = None, timeout = None def communicate(self, input=None, timeout=None): """Interact with process: Send data to stdin and close it. Read data from stdout and stderr, until end-of-file is reached. Wait for process to terminate. The optional "input" argument should be data to be sent to the child process, or None, if no data should be sent to the child. communicate() returns a tuple (stdout, stderr). By default, all communication is in bytes, and therefore any "input" should be bytes, and the (stdout, stderr) will be bytes. If in text mode (indicated by self.text_mode), any "input" should be a string, and (stdout, stderr) will be strings decoded according to locale encoding, or by "encoding" if set. Text mode is triggered by setting any of text, encoding, errors or universal_newlines. """ if self._communication_started and input: raise ValueError("Cannot send input after starting communication") # Optimization: If we are not worried about timeouts, we haven't # started communicating, and we have one or zero pipes, using select() # or threads is unnecessary. if (timeout is None and not self._communication_started and [self.stdin, self.stdout, self.stderr].count(None) >= 2): stdout = None stderr = None if self.stdin: self._stdin_write(input) elif self.stdout: stdout = self.stdout.read() self.stdout.close() elif self.stderr: > stderr = self.stderr.read() E Failed: Timeout >30.0s /usr/lib64/python3.12/subprocess.py:1199: Failed ----------------------------- Captured stderr call ----------------------------- ~~~~~~~~~~~~~~~~~~~~ Stack of (72057590741197184) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591097356672) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591130927488) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591122534784) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591663935872) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591139320192) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591147712896) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591647150464) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591672328576) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_io.py", line 163, in read return self.iochan_file.read(nbytes) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 910, in read self._buffer += self.channel.receive() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 744, in receive x = itemqueue.get(timeout=timeout) File "/usr/lib64/python3.12/queue.py", line 171, in get self.not_empty.wait() File "/usr/lib64/python3.12/threading.py", line 334, in wait waiter.acquire() ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591680721280) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591689113984) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591906677120) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_socket.py", line 28, in read t = self.sock.recv(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591915086208) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) ~~~~~~~~~~~~~~~~~~~~ Stack of (72057591923478912) ~~~~~~~~~~~~~~~~~~~~ File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 285, in _perform_spawn reply.run() File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 220, in run self._result = func(*args, **kwargs) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 967, in _thread_receiver msg = Message.from_io(io) File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 432, in from_io header = io.read(9) # type 1, channel 4, payload 4 File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 400, in read data = self._read(numbytes - len(buf)) --------------------------- Captured stdout teardown --------------------------- remote_exec1 remote_exec1 termination =============================== warnings summary =============================== ../../../../usr/lib/python3.12/site-packages/_pytest/config/__init__.py:1314 /usr/lib/python3.12/site-packages/_pytest/config/__init__.py:1314: PytestConfigWarning: Unknown config option: rsyncdirs self._warn_or_fail_if_strict(f"Unknown config option: {key}\n") testing/test_basics.py::TestPureChannel::test_factory_create[thread] testing/test_basics.py::TestPureChannel::test_factory_getitem[thread] testing/test_basics.py::TestPureChannel::test_channel_timeouterror[thread] testing/test_basics.py::TestPureChannel::test_channel_makefile_incompatmode[thread] testing/test_basics.py::TestPureChannel::test_factory_create[gevent] testing/test_basics.py::TestPureChannel::test_factory_getitem[gevent] testing/test_basics.py::TestPureChannel::test_channel_timeouterror[gevent] testing/test_basics.py::TestPureChannel::test_channel_makefile_incompatmode[gevent] /usr/lib/python3.12/site-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: Traceback (most recent call last): File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 613, in __del__ self._trace("channel.__del__") File "/builddir/build/BUILD/execnet-1.9.0/execnet/gateway_base.py", line 572, in _trace self.gateway._trace(self.id, *msg) ^^^^^^^^^^^^^^^^^^^ AttributeError: type object 'Gateway' has no attribute '_trace' warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ SKIPPED [5] testing/conftest.py:27: pypy tests skipped, use --pypy to run them. SKIPPED [1] testing/test_basics.py:71: no jython found SKIPPED [2] testing/test_basics.py:125: no python2.7 found SKIPPED [2] testing/test_basics.py:125: no pypy found SKIPPED [2] testing/test_basics.py:125: no jython found SKIPPED [2] testing/test_basics.py:166: no python2.7 found SKIPPED [2] testing/test_basics.py:166: no pypy found SKIPPED [2] testing/test_basics.py:166: no jython found SKIPPED [2] testing/test_channel.py:18: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:23: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:27: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:35: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:41: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:48: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:59: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:65: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:70: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:75: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:83: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:91: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:101: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:116: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:129: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:153: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:170: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:188: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:206: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:247: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:253: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:270: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:284: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:306: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:320: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:328: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:341: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:357: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:365: no 'gspecs' option found SKIPPED [2] testing/test_channel.py:378: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:47: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:53: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:56: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:61: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:65: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:81: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:90: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:112: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:125: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:156: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:191: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:201: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:205: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:209: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:213: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:218: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:224: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:235: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:252: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:269: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:374: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:394: no 'gspecs' option found SKIPPED [2] testing/test_gateway.py:397: no 'gspecs' option found SKIPPED [2] testing/test_multi.py:18: no 'gspecs' option found SKIPPED [2] testing/test_termination.py:18: no python2.7 found SKIPPED [2] testing/test_termination.py:18: no pypy found SKIPPED [2] testing/test_termination.py:18: no jython found SKIPPED [2] testing/test_termination.py:99: no python2.7 found SKIPPED [2] testing/test_termination.py:99: no pypy found SKIPPED [2] testing/test_termination.py:99: no jython found SKIPPED [1] testing/test_threadpool.py:200: can only run with threading SKIPPED [1] testing/test_basics.py:207: no jython found SKIPPED [1] testing/test_basics.py:228: no jython found SKIPPED [1] testing/test_basics.py:413: no jython found SKIPPED [1] testing/test_channel.py:385: condition: sys.version>="3.0" SKIPPED [41] testing/test_serializer.py:29: can't find a 'python2' executable SKIPPED [1] testing/test_gateway.py:501: condition: sys.version>="3.0" SKIPPED [1] testing/test_rsync.py:233: condition: sys.version_info >= (3,) SKIPPED [1] testing/test_termination.py:73: no jython found SKIPPED [1] testing/test_xspec.py:188: no 'gspecs' option found SKIPPED [1] testing/test_xspec.py:213: no 'gspecs' option found SKIPPED [1] testing/test_xspec.py:222: no 'gspecs' option found = 4 failed, 390 passed, 190 skipped, 110 deselected, 15 xfailed, 7 xpassed, 9 warnings, 202 errors in 3086.85s (0:51:26) = error: Bad exit status from /var/tmp/rpm-tmp.gqKu11 (%check) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.gqKu11 (%check) Child return code was: 1 EXCEPTION: [Error('Command failed: \n # bash --login -c /usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-execnet.spec\n', 1)] Traceback (most recent call last): File "/usr/lib/python3.11/site-packages/mockbuild/trace_decorator.py", line 93, in trace result = func(*args, **kw) ^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/site-packages/mockbuild/util.py", line 597, in do_with_status raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode) mockbuild.exception.Error: Command failed: # bash --login -c /usr/bin/rpmbuild -bb --noclean --target noarch --nodeps /builddir/build/SPECS/python-execnet.spec