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-mutagen.spec'], chrootPath='/var/lib/mock/f40-build-2407088-60558/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-mutagen.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-mutagen-1.47.0-3.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-mutagen.spec'], chrootPath='/var/lib/mock/f40-build-2407088-60558/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-mutagen.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.o6uSxW + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf mutagen-1.47.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/mutagen-1.47.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd mutagen-1.47.0 + rm -rf /builddir/build/BUILD/mutagen-1.47.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/mutagen-1.47.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.xQxXt7 + 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 mutagen-1.47.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' running build running build_py creating build creating build/lib creating build/lib/mutagen copying mutagen/easymp4.py -> build/lib/mutagen copying mutagen/monkeysaudio.py -> build/lib/mutagen copying mutagen/m4a.py -> build/lib/mutagen copying mutagen/oggopus.py -> build/lib/mutagen copying mutagen/wave.py -> build/lib/mutagen copying mutagen/aiff.py -> build/lib/mutagen copying mutagen/easyid3.py -> build/lib/mutagen copying mutagen/_constants.py -> build/lib/mutagen copying mutagen/trueaudio.py -> build/lib/mutagen copying mutagen/_vorbis.py -> build/lib/mutagen copying mutagen/oggvorbis.py -> build/lib/mutagen copying mutagen/_iff.py -> build/lib/mutagen copying mutagen/tak.py -> build/lib/mutagen copying mutagen/flac.py -> build/lib/mutagen copying mutagen/_riff.py -> build/lib/mutagen copying mutagen/dsf.py -> build/lib/mutagen copying mutagen/wavpack.py -> build/lib/mutagen copying mutagen/optimfrog.py -> build/lib/mutagen copying mutagen/oggspeex.py -> build/lib/mutagen copying mutagen/ogg.py -> build/lib/mutagen copying mutagen/apev2.py -> build/lib/mutagen copying mutagen/aac.py -> build/lib/mutagen copying mutagen/dsdiff.py -> build/lib/mutagen copying mutagen/smf.py -> build/lib/mutagen copying mutagen/__init__.py -> build/lib/mutagen copying mutagen/musepack.py -> build/lib/mutagen copying mutagen/oggflac.py -> build/lib/mutagen copying mutagen/ac3.py -> build/lib/mutagen copying mutagen/_tags.py -> build/lib/mutagen copying mutagen/oggtheora.py -> build/lib/mutagen copying mutagen/_util.py -> build/lib/mutagen copying mutagen/_file.py -> build/lib/mutagen creating build/lib/mutagen/id3 copying mutagen/id3/_id3v1.py -> build/lib/mutagen/id3 copying mutagen/id3/_frames.py -> build/lib/mutagen/id3 copying mutagen/id3/__init__.py -> build/lib/mutagen/id3 copying mutagen/id3/_specs.py -> build/lib/mutagen/id3 copying mutagen/id3/_tags.py -> build/lib/mutagen/id3 copying mutagen/id3/_util.py -> build/lib/mutagen/id3 copying mutagen/id3/_file.py -> build/lib/mutagen/id3 creating build/lib/mutagen/mp4 copying mutagen/mp4/__init__.py -> build/lib/mutagen/mp4 copying mutagen/mp4/_atom.py -> build/lib/mutagen/mp4 copying mutagen/mp4/_as_entry.py -> build/lib/mutagen/mp4 copying mutagen/mp4/_util.py -> build/lib/mutagen/mp4 creating build/lib/mutagen/asf copying mutagen/asf/_attrs.py -> build/lib/mutagen/asf copying mutagen/asf/_objects.py -> build/lib/mutagen/asf copying mutagen/asf/__init__.py -> build/lib/mutagen/asf copying mutagen/asf/_util.py -> build/lib/mutagen/asf creating build/lib/mutagen/mp3 copying mutagen/mp3/__init__.py -> build/lib/mutagen/mp3 copying mutagen/mp3/_util.py -> build/lib/mutagen/mp3 creating build/lib/mutagen/_tools copying mutagen/_tools/moggsplit.py -> build/lib/mutagen/_tools copying mutagen/_tools/mid3cp.py -> build/lib/mutagen/_tools copying mutagen/_tools/mid3iconv.py -> build/lib/mutagen/_tools copying mutagen/_tools/mid3v2.py -> build/lib/mutagen/_tools copying mutagen/_tools/mutagen_pony.py -> build/lib/mutagen/_tools copying mutagen/_tools/__init__.py -> build/lib/mutagen/_tools copying mutagen/_tools/mutagen_inspect.py -> build/lib/mutagen/_tools copying mutagen/_tools/_util.py -> build/lib/mutagen/_tools copying mutagen/py.typed -> build/lib/mutagen + sphinx-build -b html -n docs docs/_build Running Sphinx v7.2.6 making output directory... done loading intersphinx inventory from https://docs.python.org/3/objects.inv... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://docs.python.org/3/objects.inv' not fetchable due to : HTTPSConnectionPool(host='docs.python.org', port=443): Max retries exceeded with url: /3/objects.inv (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')) building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 48 source files that are out of date updating environment: [new config] 48 added, 0 changed, 0 removed reading sources... [ 2%] api/aac reading sources... [ 4%] api/ac3 reading sources... [ 6%] api/aiff reading sources... [ 8%] api/ape reading sources... [ 10%] api/asf reading sources... [ 12%] api/base reading sources... [ 15%] api/dsdiff reading sources... [ 17%] api/dsf reading sources... [ 19%] api/flac reading sources... [ 21%] api/id3 reading sources... [ 23%] api/id3_frames reading sources... [ 25%] api/index reading sources... [ 27%] api/monkeysaudio reading sources... [ 29%] api/mp3 reading sources... [ 31%] api/mp4 reading sources... [ 33%] api/musepack reading sources... [ 35%] api/ogg reading sources... [ 38%] api/oggflac reading sources... [ 40%] api/oggopus reading sources... [ 42%] api/oggspeex reading sources... [ 44%] api/oggtheora reading sources... [ 46%] api/oggvorbis reading sources... [ 48%] api/optimfrog reading sources... [ 50%] api/smf reading sources... [ 52%] api/tak reading sources... [ 54%] api/trueaudio reading sources... [ 56%] api/vcomment reading sources... [ 58%] api/wave reading sources... [ 60%] api/wavpack reading sources... [ 62%] changelog reading sources... [ 65%] contact reading sources... [ 67%] index reading sources... [ 69%] man/index reading sources... [ 71%] man/mid3cp reading sources... [ 73%] man/mid3iconv reading sources... [ 75%] man/mid3v2 reading sources... [ 77%] man/moggsplit reading sources... [ 79%] man/mutagen-inspect reading sources... [ 81%] man/mutagen-pony reading sources... [ 83%] user/apev2 reading sources... [ 85%] user/classes reading sources... [ 88%] user/filelike reading sources... [ 90%] user/gettingstarted reading sources... [ 92%] user/id3 reading sources... [ 94%] user/index reading sources... [ 96%] user/mp4 reading sources... [ 98%] user/padding reading sources... [100%] user/vcomment looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... done copying extra files... done done writing output... [ 2%] api/aac writing output... [ 4%] api/ac3 writing output... [ 6%] api/aiff writing output... [ 8%] api/ape writing output... [ 10%] api/asf writing output... [ 12%] api/base writing output... [ 15%] api/dsdiff writing output... [ 17%] api/dsf writing output... [ 19%] api/flac writing output... [ 21%] api/id3 writing output... [ 23%] api/id3_frames writing output... [ 25%] api/index writing output... [ 27%] api/monkeysaudio writing output... [ 29%] api/mp3 writing output... [ 31%] api/mp4 writing output... [ 33%] api/musepack writing output... [ 35%] api/ogg writing output... [ 38%] api/oggflac writing output... [ 40%] api/oggopus writing output... [ 42%] api/oggspeex writing output... [ 44%] api/oggtheora writing output... [ 46%] api/oggvorbis writing output... [ 48%] api/optimfrog writing output... [ 50%] api/smf writing output... [ 52%] api/tak writing output... [ 54%] api/trueaudio writing output... [ 56%] api/vcomment writing output... [ 58%] api/wave writing output... [ 60%] api/wavpack writing output... [ 62%] changelog writing output... [ 65%] contact writing output... [ 67%] index writing output... [ 69%] man/index writing output... [ 71%] man/mid3cp writing output... [ 73%] man/mid3iconv writing output... [ 75%] man/mid3v2 writing output... [ 77%] man/moggsplit writing output... [ 79%] man/mutagen-inspect writing output... [ 81%] man/mutagen-pony writing output... [ 83%] user/apev2 writing output... [ 85%] user/classes writing output... [ 88%] user/filelike writing output... [ 90%] user/gettingstarted writing output... [ 92%] user/id3 writing output... [ 94%] user/index writing output... [ 96%] user/mp4 writing output... [ 98%] user/padding writing output... [100%] user/vcomment /builddir/build/BUILD/mutagen-1.47.0/docs/api/base.rst:54: WARNING: py:obj reference target not found: python:str /builddir/build/BUILD/mutagen-1.47.0/docs/api/base.rst:60: WARNING: py:obj reference target not found: python:bytes /builddir/build/BUILD/mutagen-1.47.0/docs/api/base.rst:66: WARNING: py:obj reference target not found: python:str /builddir/build/BUILD/mutagen-1.47.0/docs/api/base.rst:66: WARNING: py:obj reference target not found: python:bytes /builddir/build/BUILD/mutagen-1.47.0/mutagen/mp4/__init__.py:docstring of mutagen.mp4.MP4Chapters:1: WARNING: py:class reference target not found: collections.abc.Sequence /builddir/build/BUILD/mutagen-1.47.0/docs/user/filelike.rst:7: WARNING: py:obj reference target not found: io.BytesIO generating indices... genindex py-modindex done writing additional pages... search done copying images... [100%] images/logo.svg dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 7 warnings. The HTML pages are in docs/_build. + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.KhUg0J + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch ++ dirname /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.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 mutagen-1.47.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-mutagen-1.47.0-3.fc40.noarch --prefix /usr 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-mutagen-1.47.0-3.fc40.noarch/usr creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12 creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/easymp4.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/monkeysaudio.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/m4a.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/oggopus.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/moggsplit.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/mid3cp.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/mid3iconv.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/mid3v2.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/mutagen_pony.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/__init__.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/mutagen_inspect.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/_tools/_util.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools copying build/lib/mutagen/wave.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/aiff.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/easyid3.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/_constants.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/trueaudio.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/_vorbis.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/oggvorbis.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp3 copying build/lib/mutagen/mp3/__init__.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp3 copying build/lib/mutagen/mp3/_util.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp3 copying build/lib/mutagen/_iff.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/tak.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/flac.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/_riff.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/dsf.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4 copying build/lib/mutagen/mp4/__init__.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4 copying build/lib/mutagen/mp4/_atom.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4 copying build/lib/mutagen/mp4/_as_entry.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4 copying build/lib/mutagen/mp4/_util.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4 creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/id3/_id3v1.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/id3/_frames.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/id3/__init__.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/id3/_specs.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/id3/_tags.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/id3/_util.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/id3/_file.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3 copying build/lib/mutagen/wavpack.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/optimfrog.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/py.typed -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/oggspeex.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/ogg.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/apev2.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/aac.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/dsdiff.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/smf.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/__init__.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/musepack.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/oggflac.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/ac3.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/_tags.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf copying build/lib/mutagen/asf/_attrs.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf copying build/lib/mutagen/asf/_objects.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf copying build/lib/mutagen/asf/__init__.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf copying build/lib/mutagen/asf/_util.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf copying build/lib/mutagen/oggtheora.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/_util.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen copying build/lib/mutagen/_file.py -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/easymp4.py to easymp4.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/monkeysaudio.py to monkeysaudio.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/m4a.py to m4a.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/oggopus.py to oggopus.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/moggsplit.py to moggsplit.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/mid3cp.py to mid3cp.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/mid3iconv.py to mid3iconv.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/mid3v2.py to mid3v2.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/mutagen_pony.py to mutagen_pony.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/mutagen_inspect.py to mutagen_inspect.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tools/_util.py to _util.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/wave.py to wave.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/aiff.py to aiff.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/easyid3.py to easyid3.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_constants.py to _constants.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/trueaudio.py to trueaudio.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_vorbis.py to _vorbis.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/oggvorbis.py to oggvorbis.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp3/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp3/_util.py to _util.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_iff.py to _iff.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/tak.py to tak.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/flac.py to flac.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_riff.py to _riff.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/dsf.py to dsf.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4/_atom.py to _atom.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4/_as_entry.py to _as_entry.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/mp4/_util.py to _util.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3/_id3v1.py to _id3v1.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3/_frames.py to _frames.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3/_specs.py to _specs.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3/_tags.py to _tags.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3/_util.py to _util.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/id3/_file.py to _file.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/wavpack.py to wavpack.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/optimfrog.py to optimfrog.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/oggspeex.py to oggspeex.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/ogg.py to ogg.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/apev2.py to apev2.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/aac.py to aac.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/dsdiff.py to dsdiff.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/smf.py to smf.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/musepack.py to musepack.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/oggflac.py to oggflac.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/ac3.py to ac3.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_tags.py to _tags.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf/_attrs.py to _attrs.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf/_objects.py to _objects.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf/__init__.py to __init__.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/asf/_util.py to _util.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/oggtheora.py to oggtheora.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_util.py to _util.cpython-312.pyc byte-compiling /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen/_file.py to _file.cpython-312.pyc writing byte-compilation script '/tmp/tmpnr2ma_40.py' /usr/bin/python3 /tmp/tmpnr2ma_40.py removing /tmp/tmpnr2ma_40.py running install_data creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man creating /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 copying man/mid3cp.1 -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 copying man/mid3iconv.1 -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 copying man/mutagen-inspect.1 -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 copying man/mutagen-pony.1 -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 copying man/moggsplit.1 -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 copying man/mid3v2.1 -> /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 running install_egg_info running egg_info writing mutagen.egg-info/PKG-INFO writing dependency_links to mutagen.egg-info/dependency_links.txt writing entry points to mutagen.egg-info/entry_points.txt writing top-level names to mutagen.egg-info/top_level.txt reading manifest file 'mutagen.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching '*.pyi' under directory 'mutagen' warning: no files found matching 'README.rst' under directory 'mutagen' adding license file 'COPYING' writing manifest file 'mutagen.egg-info/SOURCES.txt' Copying mutagen.egg-info to /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages/mutagen-1.47.0-py3.12.egg-info running install_scripts Installing mid3cp script to /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin Installing mid3iconv script to /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin Installing mid3v2 script to /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin Installing moggsplit script to /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin Installing mutagen-inspect script to /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin Installing mutagen-pony script to /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin + rm -rfv /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin/__pycache__ + install -D -p -m 0644 man/mid3cp.1 man/mid3iconv.1 man/mid3v2.1 man/moggsplit.1 man/mutagen-inspect.1 man/mutagen-pony.1 /builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/share/man/man1 + rm -rf docs/_build/.buildinfo docs/_build/.doctrees + /usr/bin/find-debuginfo -j8 --strict-build-id -m -i --build-id-seed 1.47.0-3.fc40 --unique-debug-suffix -1.47.0-3.fc40.noarch --unique-debug-src-base python-mutagen-1.47.0-3.fc40.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/mutagen-1.47.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-mutagen-1.47.0-3.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.tXmgLP + 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 mutagen-1.47.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 ' + PATH=/builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-mutagen-1.47.0-3.fc40.noarch/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_XDIST_AUTO_NUM_WORKERS=8 + /usr/bin/pytest ============================= test session starts ============================== platform linux -- Python 3.12.0, pytest-7.3.2, pluggy-1.3.0 rootdir: /builddir/build/BUILD/mutagen-1.47.0 plugins: hypothesis-6.82.0 collected 4033 items tests/test___init__.py ....................................FFF.......... [ 1%] ...........F.....................FFF.....................F.............. [ 3%] .......FFF.....................F......................F................. [ 4%] ....FF......................F.....................FF.................... [ 6%] ..F......................FF....................FFF....................FF [ 8%] F....................FFF.....................F.....................FF... [ 10%] ..................FFF....................FF.....................FF...... [ 11%] ...............FFF....................FF.....................FFF........ [ 13%] ............FFF.....................F.....................FFF........... [ 15%] ..........F.....................FFF.....................F............... [ 17%] ......FFF.....................F.....................FFF................. [ 19%] ....FF.....................FF....................FFF.................... [ 20%] FFF....................FFF.....................F......................F. [ 22%] .....................FF.....................F.....................FF.... [ 24%] ..................FF....................FFF....................FFF...... [ 26%] ..............FFF....................FFF....................FFF......... [ 27%] ............F......................FF.....................FF............ [ 29%] .........F.....................FFF....................FF................ [ 31%] .....FFF.....................FF....................FFF.................. [ 33%] ..FFF........F...... [ 33%] tests/test__id3frames.py ............................................... [ 35%] ........................................................................ [ 36%] ........................................................................ [ 38%] ........................................................................ [ 40%] ........................................................................ [ 42%] ........................................................................ [ 43%] ........................................................................ [ 45%] ........................................................................ [ 47%] ........................................................................ [ 49%] ........................................................................ [ 51%] ........................................................................ [ 52%] ........................................................................ [ 54%] ........................................................................ [ 56%] ........................................................................ [ 58%] ...................................................... [ 59%] tests/test__id3specs.py .......................................... [ 60%] tests/test__id3util.py ......................... [ 61%] tests/test__iff.py . [ 61%] tests/test__riff.py ......... [ 61%] tests/test__util.py .................................................... [ 62%] ............................................. [ 63%] tests/test__vorbis.py .................................................. [ 65%] ........ [ 65%] tests/test_aac.py ............ [ 65%] tests/test_ac3.py ........ [ 65%] tests/test_aiff.py .................................. [ 66%] tests/test_apev2.py .................................................... [ 67%] .................................... [ 68%] tests/test_asf.py ...................................................... [ 70%] ....................................................................... [ 71%] tests/test_dsdiff.py ........... [ 72%] tests/test_dsf.py .................. [ 72%] tests/test_easyid3.py ............................................... [ 73%] tests/test_easymp4.py .............. [ 74%] tests/test_flac.py ..................................................... [ 75%] ........................................................................ [ 77%] ............................... [ 78%] tests/test_id3.py ...................................................... [ 79%] ........................................................................ [ 81%] ... [ 81%] tests/test_m4a.py . [ 81%] tests/test_monkeysaudio.py ........ [ 81%] tests/test_mp3.py ................................................ [ 82%] tests/test_mp4.py ...................................................... [ 83%] ........................................................................ [ 85%] ........................................................................ [ 87%] ........................................................................ [ 89%] ........................................................................ [ 91%] . [ 91%] tests/test_musepack.py ............ [ 91%] tests/test_ogg.py ................................................. [ 92%] tests/test_oggflac.py ................................... [ 93%] tests/test_oggopus.py ............................. [ 94%] tests/test_oggspeex.py ................................ [ 95%] tests/test_oggtheora.py .............................. [ 95%] tests/test_oggvorbis.py ........................................... [ 96%] tests/test_optimfrog.py ....... [ 97%] tests/test_smf.py .... [ 97%] tests/test_tak.py ......... [ 97%] tests/test_tools_mid3cp.py .............. [ 97%] tests/test_tools_mid3iconv.py ....... [ 97%] tests/test_tools_mid3v2.py ................................ [ 98%] tests/test_tools_moggsplit.py . [ 98%] tests/test_tools_mutagen_inspect.py . [ 98%] tests/test_tools_mutagen_pony.py . [ 98%] tests/test_tools_util.py .. [ 98%] tests/test_trueaudio.py .......... [ 99%] tests/test_wave.py ................. [ 99%] tests/test_wavpack.py ...................... [100%] =================================== FAILURES =================================== ____________________ TFileTypeAAC.test_test_fileobj_delete _____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.36 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(73229800621653016483046272781678284950) to this test or run pytest with --hypothesis-seed=73229800621653016483046272781678284950 to reproduce this failure. _____________________ TFileTypeAAC.test_test_fileobj_load ______________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.21 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(71987890911840030874590725018635645459) to this test or run pytest with --hypothesis-seed=71987890911840030874590725018635645459 to reproduce this failure. _____________________ TFileTypeAAC.test_test_fileobj_save ______________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.02 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(260403058314782032288237380958839566515) to this test or run pytest with --hypothesis-seed=260403058314782032288237380958839566515 to reproduce this failure. ____________________ TFileTypeAAC_2.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.21 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(167110169805723142164047999069568722235) to this test or run pytest with --hypothesis-seed=167110169805723142164047999069568722235 to reproduce this failure. ____________________ TFileTypeAC3.test_test_fileobj_delete _____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.12 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(106983604589879086364778369617543436170) to this test or run pytest with --hypothesis-seed=106983604589879086364778369617543436170 to reproduce this failure. _____________________ TFileTypeAC3.test_test_fileobj_load ______________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7e1902c0> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, self.KIND)) > def run(t): tests/test___init__.py:345: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7943668.507082859, result = None finish = 7943668.825991486, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=318909) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 318.91ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:345: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 318.91ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 318.91ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(4), E ) E Unreliable test timings! On an initial run, this test took 318.91ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 1.13 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _____________________ TFileTypeAC3.test_test_fileobj_save ______________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.56 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(277292031526635303155216986033515147203) to this test or run pytest with --hypothesis-seed=277292031526635303155216986033515147203 to reproduce this failure. ____________________ TFileTypeAC3_2.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 8 valid examples in 1.33 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(220132351073602713546607814816068327743) to this test or run pytest with --hypothesis-seed=220132351073602713546607814816068327743 to reproduce this failure. ____________________ TFileTypeAIFF.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.14 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(75279835287967746055560969754074321160) to this test or run pytest with --hypothesis-seed=75279835287967746055560969754074321160 to reproduce this failure. _____________________ TFileTypeAIFF.test_test_fileobj_load _____________________ self = data = ConjectureData(INTERESTING, 4 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 4 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 4 bytes, frozen) function = .run at 0xffffff7e193420> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 4 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, self.KIND)) > def run(t): tests/test___init__.py:345: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7943732.458927715, result = None finish = 7943732.802419444, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=343492) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 343.49ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:345: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 4 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 343.49ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 343.49ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 343.49ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 1.32 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _____________________ TFileTypeAIFF.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.15 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(126669664810632090337590031301591518440) to this test or run pytest with --hypothesis-seed=126669664810632090337590031301591518440 to reproduce this failure. ____________________ TFileTypeAIFF_2.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.53 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(307306821021729555336337118755241622967) to this test or run pytest with --hypothesis-seed=307306821021729555336337118755241622967 to reproduce this failure. ____________________ TFileTypeAIFF_3.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.06 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(316973405285618072899147101333273883630) to this test or run pytest with --hypothesis-seed=316973405285618072899147101333273883630 to reproduce this failure. ___________________ TFileTypeAIFF_4.test_test_fileobj_delete ___________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.14 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(232770430299948752464590163015559173438) to this test or run pytest with --hypothesis-seed=232770430299948752464590163015559173438 to reproduce this failure. ____________________ TFileTypeAIFF_4.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.07 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(75408982900886374855018665619188473181) to this test or run pytest with --hypothesis-seed=75408982900886374855018665619188473181 to reproduce this failure. ____________________ TFileTypeAIFF_5.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.41 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(303392421803693093773421183230252098300) to this test or run pytest with --hypothesis-seed=303392421803693093773421183230252098300 to reproduce this failure. ___________________ TFileTypeAIFF_6.test_test_fileobj_delete ___________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.20 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(176669041404990845904560526885564092158) to this test or run pytest with --hypothesis-seed=176669041404990845904560526885564092158 to reproduce this failure. ____________________ TFileTypeAIFF_6.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.53 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(179944079992062559155776399586439295556) to this test or run pytest with --hypothesis-seed=179944079992062559155776399586439295556 to reproduce this failure. __________________ TFileTypeAPEv2File.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.18 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(42515639258184618099880567062631583067) to this test or run pytest with --hypothesis-seed=42515639258184618099880567062631583067 to reproduce this failure. _________________ TFileTypeAPEv2File_2.test_test_fileobj_load __________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.53 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(297860093764139146013414825373650642102) to this test or run pytest with --hypothesis-seed=297860093764139146013414825373650642102 to reproduce this failure. _________________ TFileTypeAPEv2File_2.test_test_fileobj_save __________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.31 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(319080565525383051372204633904296946651) to this test or run pytest with --hypothesis-seed=319080565525383051372204633904296946651 to reproduce this failure. ____________________ TFileTypeASF.test_test_fileobj_delete _____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.03 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(280941633646913409997589805540704188507) to this test or run pytest with --hypothesis-seed=280941633646913409997589805540704188507 to reproduce this failure. _____________________ TFileTypeASF.test_test_fileobj_load ______________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.12 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(315994242696640033295145712604513701524) to this test or run pytest with --hypothesis-seed=315994242696640033295145712604513701524 to reproduce this failure. _____________________ TFileTypeASF.test_test_fileobj_save ______________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.54 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(325380745801768242394769033646530240054) to this test or run pytest with --hypothesis-seed=325380745801768242394769033646530240054 to reproduce this failure. ___________________ TFileTypeASF_2.test_test_fileobj_delete ____________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7e0fdbc0> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) tests/test___init__.py:371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7943941.174498796, result = None finish = 7943941.625521434, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=451023) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 451.02ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:371: in run h, lambda t: o.delete(fileobj=t))) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 451.02ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 451.02ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 451.02ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 1.13 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ____________________ TFileTypeASF_2.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.28 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(239222204628831541728482311080947125800) to this test or run pytest with --hypothesis-seed=239222204628831541728482311080947125800 to reproduce this failure. ____________________ TFileTypeASF_2.test_test_fileobj_save _____________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7e1cc540> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7943968.074887349, result = None finish = 7943968.413372878, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=338486) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 338.49ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 338.49ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 338.49ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 338.49ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 4.13 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ___________________ TFileTypeASF_3.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.18 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(83705014193413841012384118104254963331) to this test or run pytest with --hypothesis-seed=83705014193413841012384118104254963331 to reproduce this failure. ____________________ TFileTypeASF_3.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.05 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(175601920138117553736685471271494257563) to this test or run pytest with --hypothesis-seed=175601920138117553736685471271494257563 to reproduce this failure. ____________________ TFileTypeASF_3.test_test_fileobj_save _____________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7e1ce660> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944018.279612054, result = None finish = 7944018.632080784, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=352469) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 352.47ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 352.47ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 352.47ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(7), E ) E Unreliable test timings! On an initial run, this test took 352.47ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 5.66 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ____________________ TFileTypeDSDIFF.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.19 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(177255991392613849922286532598409583338) to this test or run pytest with --hypothesis-seed=177255991392613849922286532598409583338 to reproduce this failure. __________________ TFileTypeDSDIFF_2.test_test_fileobj_delete __________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.17 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(187800939787558267122812572729063307155) to this test or run pytest with --hypothesis-seed=187800939787558267122812572729063307155 to reproduce this failure. ___________________ TFileTypeDSDIFF_2.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.24 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(185891217117684033972579401380403475818) to this test or run pytest with --hypothesis-seed=185891217117684033972579401380403475818 to reproduce this failure. __________________ TFileTypeDSDIFF_3.test_test_fileobj_delete __________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.33 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(131368544012777080923821818130383095717) to this test or run pytest with --hypothesis-seed=131368544012777080923821818130383095717 to reproduce this failure. ___________________ TFileTypeDSDIFF_3.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.34 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(165943222663816125488863583734893361165) to this test or run pytest with --hypothesis-seed=165943222663816125488863583734893361165 to reproduce this failure. ___________________ TFileTypeDSDIFF_3.test_test_fileobj_save ___________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.20 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(182981028475253672655380021736949569867) to this test or run pytest with --hypothesis-seed=182981028475253672655380021736949569867 to reproduce this failure. ____________________ TFileTypeDSF.test_test_fileobj_delete _____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.32 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(68941508356424244521935004314325494986) to this test or run pytest with --hypothesis-seed=68941508356424244521935004314325494986 to reproduce this failure. _____________________ TFileTypeDSF.test_test_fileobj_load ______________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 6 valid examples in 1.35 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(311208268050833461429629770265310702891) to this test or run pytest with --hypothesis-seed=311208268050833461429629770265310702891 to reproduce this failure. ___________________ TFileTypeDSF_2.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.13 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(277984482686610292308579244142857366415) to this test or run pytest with --hypothesis-seed=277984482686610292308579244142857366415 to reproduce this failure. ____________________ TFileTypeDSF_2.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.03 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(97815370763079297535544769388246448656) to this test or run pytest with --hypothesis-seed=97815370763079297535544769388246448656 to reproduce this failure. ___________________ TFileTypeDSF_3.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.21 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(218529164056887627087362882467075438597) to this test or run pytest with --hypothesis-seed=218529164056887627087362882467075438597 to reproduce this failure. ____________________ TFileTypeDSF_3.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.02 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(214590788844854239809594423150113143060) to this test or run pytest with --hypothesis-seed=214590788844854239809594423150113143060 to reproduce this failure. ____________________ TFileTypeDSF_3.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.38 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(142796649808568665763815931660608941583) to this test or run pytest with --hypothesis-seed=142796649808568665763815931660608941583 to reproduce this failure. ___________________ TFileTypeDSF_4.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.15 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(138772776998419177173107017195698652696) to this test or run pytest with --hypothesis-seed=138772776998419177173107017195698652696 to reproduce this failure. ____________________ TFileTypeDSF_4.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.15 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(190159268592714660687227651706508618041) to this test or run pytest with --hypothesis-seed=190159268592714660687227651706508618041 to reproduce this failure. ____________________ TFileTypeFLAC.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.17 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(154858985293226779351112724976893891631) to this test or run pytest with --hypothesis-seed=154858985293226779351112724976893891631 to reproduce this failure. _____________________ TFileTypeFLAC.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 6 valid examples in 1.23 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(120939326296088226211731613234233335635) to this test or run pytest with --hypothesis-seed=120939326296088226211731613234233335635 to reproduce this failure. _____________________ TFileTypeFLAC.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.12 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(33538543280954738146258196814934146146) to this test or run pytest with --hypothesis-seed=33538543280954738146258196814934146146 to reproduce this failure. ________________ TFileTypeID3FileType.test_test_fileobj_delete _________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.28 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(140336366480111442586613875497006730749) to this test or run pytest with --hypothesis-seed=140336366480111442586613875497006730749 to reproduce this failure. _________________ TFileTypeID3FileType.test_test_fileobj_load __________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7df6be20> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, self.KIND)) > def run(t): tests/test___init__.py:345: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944281.319853085, result = None finish = 7944281.834589028, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=514736) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 514.74ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:345: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 514.74ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 514.74ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(6), E ) E Unreliable test timings! On an initial run, this test took 514.74ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 29.37 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _________________ TFileTypeID3FileType.test_test_fileobj_save __________________ self = data = ConjectureData(INTERESTING, 3 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 3 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) function = .run at 0xffffff7e025120> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944306.102518161, result = None finish = 7944306.628791205, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=526273) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 526.27ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 3 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 526.27ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 526.27ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 526.27ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 9.26 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ________________ TFileTypeID3FileType_2.test_test_fileobj_load _________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.12 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(10072069413328275485428741964871401288) to this test or run pytest with --hypothesis-seed=10072069413328275485428741964871401288 to reproduce this failure. _______________ TFileTypeID3FileType_3.test_test_fileobj_delete ________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.12 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(239501793706923665140000873877638687713) to this test or run pytest with --hypothesis-seed=239501793706923665140000873877638687713 to reproduce this failure. ________________ TFileTypeID3FileType_3.test_test_fileobj_load _________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.39 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(321650332724362349910899707991047273045) to this test or run pytest with --hypothesis-seed=321650332724362349910899707991047273045 to reproduce this failure. ________________ TFileTypeID3FileType_3.test_test_fileobj_save _________________ self = data = ConjectureData(INTERESTING, 3 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 3 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) function = .run at 0xffffff7e1c8ea0> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944371.723416057, result = None finish = 7944372.221572599, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=498157) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 498.16ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 3 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 498.16ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 498.16ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 498.16ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 7.55 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ________________ TFileTypeID3FileType_4.test_test_fileobj_load _________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.15 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(35867534099238345385652323544335736779) to this test or run pytest with --hypothesis-seed=35867534099238345385652323544335736779 to reproduce this failure. ____________________ TFileTypeMP3.test_test_fileobj_delete _____________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7e0ddb20> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) tests/test___init__.py:371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944428.323770998, result = None finish = 7944428.658288526, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=334518) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 334.52ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:371: in run h, lambda t: o.delete(fileobj=t))) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 334.52ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 334.52ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 334.52ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 1.77 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _____________________ TFileTypeMP3.test_test_fileobj_load ______________________ self = data = ConjectureData(INTERESTING, 4 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 4 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 4 bytes, frozen) function = .run at 0xffffff7e0ad1c0> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 4 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, self.KIND)) > def run(t): tests/test___init__.py:345: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944453.093430772, result = None finish = 7944453.624860017, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=531429) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 531.43ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:345: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 4 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 531.43ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 531.43ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(731), E ) E Unreliable test timings! On an initial run, this test took 531.43ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 1.80 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _____________________ TFileTypeMP3.test_test_fileobj_save ______________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.05 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(232456979678064985830936527349990929882) to this test or run pytest with --hypothesis-seed=232456979678064985830936527349990929882 to reproduce this failure. ____________________ TFileTypeMP3_2.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.42 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(90815914142783339544161672789143608347) to this test or run pytest with --hypothesis-seed=90815914142783339544161672789143608347 to reproduce this failure. ___________________ TFileTypeMP3_3.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.27 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(319711393233819202366669852479252921398) to this test or run pytest with --hypothesis-seed=319711393233819202366669852479252921398 to reproduce this failure. ____________________ TFileTypeMP3_3.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.53 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(210241795719447367113898231124978783875) to this test or run pytest with --hypothesis-seed=210241795719447367113898231124978783875 to reproduce this failure. ____________________ TFileTypeMP3_3.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.12 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(207649923332797475630170480868468812832) to this test or run pytest with --hypothesis-seed=207649923332797475630170480868468812832 to reproduce this failure. ____________________ TFileTypeMP3_4.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.54 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ____________________ TFileTypeMP4.test_test_fileobj_delete _____________________ self = data = ConjectureData(INTERESTING, 5 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 5 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 5 bytes, frozen) function = .run at 0xffffff7df47880> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 5 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) tests/test___init__.py:371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944576.741366229, result = None finish = 7944577.10122496, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=359859) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 359.86ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:371: in run h, lambda t: o.delete(fileobj=t))) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 5 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 359.86ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 359.86ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(112), E ) E Unreliable test timings! On an initial run, this test took 359.86ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 5.61 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _____________________ TFileTypeMP4.test_test_fileobj_load ______________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.00 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(217132761517245938575489090418535685686) to this test or run pytest with --hypothesis-seed=217132761517245938575489090418535685686 to reproduce this failure. _____________________ TFileTypeMP4.test_test_fileobj_save ______________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.28 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(263796252035604232469767899962005773304) to this test or run pytest with --hypothesis-seed=263796252035604232469767899962005773304 to reproduce this failure. ____________________ TFileTypeMP4_2.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.35 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(285166600721571063600230462042302479189) to this test or run pytest with --hypothesis-seed=285166600721571063600230462042302479189 to reproduce this failure. ____________________ TFileTypeMP4_2.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.03 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(297498922946146900265549527508974540645) to this test or run pytest with --hypothesis-seed=297498922946146900265549527508974540645 to reproduce this failure. ____________________ TFileTypeMP4_3.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.55 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(145072176317687279110440494291198534964) to this test or run pytest with --hypothesis-seed=145072176317687279110440494291198534964 to reproduce this failure. ____________________ TFileTypeMP4_3.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.20 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(18231030102236913604795680532146279381) to this test or run pytest with --hypothesis-seed=18231030102236913604795680532146279381 to reproduce this failure. ___________________ TFileTypeMP4_4.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.49 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(135377708506557218807621224207865902310) to this test or run pytest with --hypothesis-seed=135377708506557218807621224207865902310 to reproduce this failure. ____________________ TFileTypeMP4_4.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.15 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(329161614525308145800634767489129379671) to this test or run pytest with --hypothesis-seed=329161614525308145800634767489129379671 to reproduce this failure. ____________________ TFileTypeMP4_4.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.14 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ___________________ TFileTypeMP4_5.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.30 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(336297396891341186932814203061893371983) to this test or run pytest with --hypothesis-seed=336297396891341186932814203061893371983 to reproduce this failure. ____________________ TFileTypeMP4_5.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.55 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(300345424842571240931140436171199823954) to this test or run pytest with --hypothesis-seed=300345424842571240931140436171199823954 to reproduce this failure. ____________________ TFileTypeMP4_5.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.49 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(14463102291743017396110579321895094138) to this test or run pytest with --hypothesis-seed=14463102291743017396110579321895094138 to reproduce this failure. ___________________ TFileTypeMP4_6.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.16 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(241091216535836587985800270991519979772) to this test or run pytest with --hypothesis-seed=241091216535836587985800270991519979772 to reproduce this failure. ____________________ TFileTypeMP4_6.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.03 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(104685867969406501800525135592190642969) to this test or run pytest with --hypothesis-seed=104685867969406501800525135592190642969 to reproduce this failure. ____________________ TFileTypeMP4_6.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.07 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(162548229968866117204321081366718953803) to this test or run pytest with --hypothesis-seed=162548229968866117204321081366718953803 to reproduce this failure. _________________ TFileTypeMonkeysAudio.test_test_fileobj_load _________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 3.25 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(91948123483858823127214829387289299748) to this test or run pytest with --hypothesis-seed=91948123483858823127214829387289299748 to reproduce this failure. ________________ TFileTypeMonkeysAudio_2.test_test_fileobj_load ________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.37 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(167820816604871999753300019114140384573) to this test or run pytest with --hypothesis-seed=167820816604871999753300019114140384573 to reproduce this failure. ___________________ TFileTypeMusepack.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.35 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(294410271398525478153126887251820780781) to this test or run pytest with --hypothesis-seed=294410271398525478153126887251820780781 to reproduce this failure. ___________________ TFileTypeMusepack.test_test_fileobj_save ___________________ self = data = ConjectureData(INTERESTING, 3 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 3 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) function = .run at 0xffffff7dd90cc0> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944837.692867398, result = None finish = 7944838.229111295, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=536244) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 536.24ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 3 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 536.24ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 536.24ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 536.24ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 0.69 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky __________________ TFileTypeMusepack_2.test_test_fileobj_load __________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.22 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(252839160083975618781869820723310235810) to this test or run pytest with --hypothesis-seed=252839160083975618781869820723310235810 to reproduce this failure. _________________ TFileTypeMusepack_3.test_test_fileobj_delete _________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.09 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(294118218910166611134754532126648210296) to this test or run pytest with --hypothesis-seed=294118218910166611134754532126648210296 to reproduce this failure. __________________ TFileTypeMusepack_3.test_test_fileobj_load __________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 6 valid examples in 1.37 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(184604972037241192928866817490582462204) to this test or run pytest with --hypothesis-seed=184604972037241192928866817490582462204 to reproduce this failure. __________________ TFileTypeMusepack_4.test_test_fileobj_load __________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.13 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(70331258464943375337250329169104768557) to this test or run pytest with --hypothesis-seed=70331258464943375337250329169104768557 to reproduce this failure. __________________ TFileTypeMusepack_4.test_test_fileobj_save __________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.52 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(12317972077292642377090834559845173686) to this test or run pytest with --hypothesis-seed=12317972077292642377090834559845173686 to reproduce this failure. __________________ TFileTypeOggFLAC.test_test_fileobj_delete ___________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.22 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(324775536346550035556273834956250972776) to this test or run pytest with --hypothesis-seed=324775536346550035556273834956250972776 to reproduce this failure. ___________________ TFileTypeOggFLAC.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.33 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(248942594056434707319108098462728362478) to this test or run pytest with --hypothesis-seed=248942594056434707319108098462728362478 to reproduce this failure. ___________________ TFileTypeOggFLAC.test_test_fileobj_save ____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.07 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(294831998386194722234494576468356814170) to this test or run pytest with --hypothesis-seed=294831998386194722234494576468356814170 to reproduce this failure. __________________ TFileTypeOggOpus.test_test_fileobj_delete ___________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.36 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(329771313395648910643639638625841663939) to this test or run pytest with --hypothesis-seed=329771313395648910643639638625841663939 to reproduce this failure. ___________________ TFileTypeOggOpus.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.36 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(123494060505985714569898466497065222066) to this test or run pytest with --hypothesis-seed=123494060505985714569898466497065222066 to reproduce this failure. ___________________ TFileTypeOggOpus.test_test_fileobj_save ____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.46 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(338383807096181968503892837989811232622) to this test or run pytest with --hypothesis-seed=338383807096181968503892837989811232622 to reproduce this failure. __________________ TFileTypeOggSpeex.test_test_fileobj_delete __________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.68 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(223445250019774604566108942552945001166) to this test or run pytest with --hypothesis-seed=223445250019774604566108942552945001166 to reproduce this failure. ___________________ TFileTypeOggSpeex.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.53 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(59606449915838974431228190803698405220) to this test or run pytest with --hypothesis-seed=59606449915838974431228190803698405220 to reproduce this failure. ___________________ TFileTypeOggSpeex.test_test_fileobj_save ___________________ self = data = ConjectureData(INTERESTING, 3 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 3 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) function = .run at 0xffffff7dd91800> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 3 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7944999.338496206, result = None finish = 7944999.63145165, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=292955) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 292.96ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 3 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 292.96ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 292.96ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(87), E ) E Unreliable test timings! On an initial run, this test took 292.96ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 0.98 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _________________ TFileTypeOggTheora.test_test_fileobj_delete __________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 6 valid examples in 1.47 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(185804249910427891748607232345343899017) to this test or run pytest with --hypothesis-seed=185804249910427891748607232345343899017 to reproduce this failure. __________________ TFileTypeOggTheora.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.19 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(269008399241802900008464177818802042684) to this test or run pytest with --hypothesis-seed=269008399241802900008464177818802042684 to reproduce this failure. __________________ TFileTypeOggTheora.test_test_fileobj_save ___________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.12 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(301422145853289617899687147909716924070) to this test or run pytest with --hypothesis-seed=301422145853289617899687147909716924070 to reproduce this failure. _________________ TFileTypeOggVorbis.test_test_fileobj_delete __________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.11 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(201358843236537603374133743013399629833) to this test or run pytest with --hypothesis-seed=201358843236537603374133743013399629833 to reproduce this failure. __________________ TFileTypeOggVorbis.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 7 valid examples in 1.39 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(312592252016815522346179023235377849744) to this test or run pytest with --hypothesis-seed=312592252016815522346179023235377849744 to reproduce this failure. __________________ TFileTypeOggVorbis.test_test_fileobj_save ___________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 5 valid examples in 1.02 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(18382705893058074330173644646975116182) to this test or run pytest with --hypothesis-seed=18382705893058074330173644646975116182 to reproduce this failure. __________________ TFileTypeOptimFROG.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.01 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(6009449989762479952181708248890374419) to this test or run pytest with --hypothesis-seed=6009449989762479952181708248890374419 to reproduce this failure. _________________ TFileTypeOptimFROG_2.test_test_fileobj_load __________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 2 valid examples in 1.17 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(240984599084219725763229407102381039660) to this test or run pytest with --hypothesis-seed=240984599084219725763229407102381039660 to reproduce this failure. _________________ TFileTypeOptimFROG_2.test_test_fileobj_save __________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.15 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(25392492335339989130964917253108321784) to this test or run pytest with --hypothesis-seed=25392492335339989130964917253108321784 to reproduce this failure. _____________________ TFileTypeSMF.test_test_fileobj_load ______________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.48 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(269812002664540556652724254546944788036) to this test or run pytest with --hypothesis-seed=269812002664540556652724254546944788036 to reproduce this failure. _____________________ TFileTypeSMF.test_test_fileobj_save ______________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7dd10400> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7945143.544682858, result = None finish = 7945143.892115992, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=347433) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 347.43ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 347.43ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 347.43ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(2), E ) E Unreliable test timings! On an initial run, this test took 347.43ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 0.36 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky _____________________ TFileTypeTAK.test_test_fileobj_load ______________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.28 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(92025881366534129773927254582470757764) to this test or run pytest with --hypothesis-seed=92025881366534129773927254582470757764 to reproduce this failure. ___________________ TFileTypeTAK_2.test_test_fileobj_delete ____________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7dd137e0> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) tests/test___init__.py:371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7945191.10216784, result = None finish = 7945191.443489575, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=341322) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 341.32ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:371: in run h, lambda t: o.delete(fileobj=t))) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 341.32ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 341.32ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(0), E ) E Unreliable test timings! On an initial run, this test took 341.32ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 2.16 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ____________________ TFileTypeTAK_2.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.27 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(281108877216754732730630703953081820020) to this test or run pytest with --hypothesis-seed=281108877216754732730630703953081820020 to reproduce this failure. ____________________ TFileTypeTAK_2.test_test_fileobj_save _____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.03 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(13659725477484503756392749863940596246) to this test or run pytest with --hypothesis-seed=13659725477484503756392749863940596246 to reproduce this failure. _________________ TFileTypeTrueAudio.test_test_fileobj_delete __________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7dd113a0> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) tests/test___init__.py:371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7945232.924492121, result = None finish = 7945233.237671062, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=313179) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 313.18ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:371: in run h, lambda t: o.delete(fileobj=t))) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 313.18ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 313.18ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, fail_after=i))(2), E ) E Unreliable test timings! On an initial run, this test took 313.18ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 0.39 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky __________________ TFileTypeTrueAudio.test_test_fileobj_load ___________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.21 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(282082249539715626492171635766344065574) to this test or run pytest with --hypothesis-seed=282082249539715626492171635766344065574 to reproduce this failure. ____________________ TFileTypeWAVE.test_test_fileobj_delete ____________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.17 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(19450296240793892056516234331738316716) to this test or run pytest with --hypothesis-seed=19450296240793892056516234331738316716 to reproduce this failure. _____________________ TFileTypeWAVE.test_test_fileobj_load _____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.17 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(300142467717355976814173604384802566576) to this test or run pytest with --hypothesis-seed=300142467717355976814173604384802566576 to reproduce this failure. _____________________ TFileTypeWAVE.test_test_fileobj_save _____________________ self = data = ConjectureData(INTERESTING, 2 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 2 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) function = .run at 0xffffff7ddfe700> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 2 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7945291.917720911, result = None finish = 7945292.439334811, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=521614) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 521.61ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 2 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 521.61ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 521.61ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(40), E ) E Unreliable test timings! On an initial run, this test took 521.61ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 9.51 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ____________________ TFileTypeWAVE_2.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.23 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(142079222445865037058511477693835429909) to this test or run pytest with --hypothesis-seed=142079222445865037058511477693835429909 to reproduce this failure. ____________________ TFileTypeWAVE_2.test_test_fileobj_save ____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.18 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(277694139312295906870769871947807709754) to this test or run pytest with --hypothesis-seed=277694139312295906870769871947807709754 to reproduce this failure. ___________________ TFileTypeWAVE_3.test_test_fileobj_delete ___________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.38 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(269330758613786543422106820013744421035) to this test or run pytest with --hypothesis-seed=269330758613786543422106820013744421035 to reproduce this failure. ____________________ TFileTypeWAVE_3.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 4 valid examples in 1.49 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(208049119264989593264938493828031370181) to this test or run pytest with --hypothesis-seed=208049119264989593264938493828031370181 to reproduce this failure. ____________________ TFileTypeWAVE_3.test_test_fileobj_save ____________________ self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 7 valid examples in 1.09 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:358: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(115658132168268315961815359450359627432) to this test or run pytest with --hypothesis-seed=115658132168268315961815359450359627432 to reproduce this failure. __________________ TFileTypeWavPack.test_test_fileobj_delete ___________________ self = def test_test_fileobj_delete(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects( h, lambda t: o.delete(fileobj=t))) def run(t): try: o.delete(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:378: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects( > h, lambda t: o.delete(fileobj=t))) E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.14 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:371: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(277201388403867685770525536947109704892) to this test or run pytest with --hypothesis-seed=277201388403867685770525536947109704892 to reproduce this failure. ___________________ TFileTypeWavPack.test_test_fileobj_load ____________________ self = def test_test_fileobj_load(self): with open(self.filename, "rb") as h: @given(generate_test_file_objects(h, self.KIND)) def run(t): try: self.KIND(t) except MutagenError: pass > run() tests/test___init__.py:351: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, self.KIND)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 6 valid examples in 1.40 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:345: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(314709798205632508747026642830956099073) to this test or run pytest with --hypothesis-seed=314709798205632508747026642830956099073 to reproduce this failure. ___________________ TFileTypeWavPack.test_test_fileobj_save ____________________ self = data = ConjectureData(INTERESTING, 4 bytes, frozen) def _execute_once_for_engine(self, data): """Wrapper around ``execute_once`` that intercepts test failure exceptions and single-test control exceptions, and turns them into appropriate method calls to `data` instead. This allows the engine to assume that any exception other than ``StopTest`` must be a fatal error, and should stop the entire engine. """ try: trace = frozenset() if ( self.failed_normally and not self.failed_due_to_deadline and Phase.shrink in self.settings.phases and Phase.explain in self.settings.phases and sys.gettrace() is None and not PYPY ): # pragma: no cover # This is in fact covered by our *non-coverage* tests, but due to the # settrace() contention *not* by our coverage tests. Ah well. tracer = Tracer() try: sys.settrace(tracer.trace) result = self.execute_once(data) if data.status == Status.VALID: self.explain_traces[None].add(frozenset(tracer.branches)) finally: sys.settrace(None) trace = frozenset(tracer.branches) else: > result = self.execute_once(data) /usr/lib/python3.12/site-packages/hypothesis/core.py:850: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(INTERESTING, 4 bytes, frozen), print_example = False is_final = False, expected_failure = None, example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. > result = self.test_runner(data, run) /usr/lib/python3.12/site-packages/hypothesis/core.py:789: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 4 bytes, frozen) function = .run at 0xffffff7dd11b20> def default_new_style_executor(data, function): > return function(data) /usr/lib/python3.12/site-packages/hypothesis/executors.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = ConjectureData(INTERESTING, 4 bytes, frozen) def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) > return test(*args, **kwargs) /usr/lib/python3.12/site-packages/hypothesis/core.py:785: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ t = @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) > def run(t): tests/test___init__.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ args = (,) kwargs = {}, initial_draws = 1, start = 7945401.71779266, result = None finish = 7945402.041115698, internal_draw_time = 0 runtime = datetime.timedelta(microseconds=323323) current_deadline = datetime.timedelta(microseconds=250000) @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: > raise DeadlineExceeded(runtime, self.settings.deadline) E hypothesis.errors.DeadlineExceeded: Test took 323.32ms, which exceeds the deadline of 200.00ms /usr/lib/python3.12/site-packages/hypothesis/core.py:737: DeadlineExceeded The above exception was the direct cause of the following exception: self = def test_test_fileobj_save(self): with open(self.filename, "rb+") as h: o = self.KIND(_TestFileObj(h)) @given(generate_test_file_objects(h, lambda t: o.save(fileobj=t))) def run(t): try: o.save(fileobj=t) except MutagenError: pass > run() tests/test___init__.py:364: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/test___init__.py:358: in run def run(t): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = data = ConjectureData(VALID, 4 bytes, frozen), print_example = True is_final = True expected_failure = (DeadlineExceeded('Test took 323.32ms, which exceeds the deadline of 200.00ms'), 'Traceback (most recent call last):\n....settings.deadline)\nhypothesis.errors.DeadlineExceeded: Test took 323.32ms, which exceeds the deadline of 200.00ms\n') example_kwargs = None def execute_once( self, data, print_example=False, is_final=False, expected_failure=None, example_kwargs=None, ): """Run the test function once, using ``data`` as input. If the test raises an exception, it will propagate through to the caller of this method. Depending on its type, this could represent an ordinary test failure, or a fatal error, or a control exception. If this method returns normally, the test might have passed, or it might have placed ``data`` in an unsuccessful state and then swallowed the corresponding control exception. """ self.ever_executed = True data.is_find = self.is_find text_repr = None if self.settings.deadline is None: test = self.test else: @proxies(self.test) def test(*args, **kwargs): self.__test_runtime = None initial_draws = len(data.draw_times) start = time.perf_counter() result = self.test(*args, **kwargs) finish = time.perf_counter() internal_draw_time = sum(data.draw_times[initial_draws:]) runtime = datetime.timedelta( seconds=finish - start - internal_draw_time ) self.__test_runtime = runtime current_deadline = self.settings.deadline if not is_final: current_deadline = (current_deadline // 4) * 5 if runtime >= current_deadline: raise DeadlineExceeded(runtime, self.settings.deadline) return result def run(data): # Set up dynamic context needed by a single test run. with local_settings(self.settings): with deterministic_PRNG(): with BuildContext(data, is_final=is_final) as context: if self.stuff.selfy is not None: data.hypothesis_runner = self.stuff.selfy # Generate all arguments to the test function. args = self.stuff.args kwargs = dict(self.stuff.kwargs) if example_kwargs is None: a, kw, argslices = context.prep_args_kwargs_from_strategies( (), self.stuff.given_kwargs ) assert not a, "strategies all moved to kwargs by now" else: kw = example_kwargs argslices = {} kwargs.update(kw) if expected_failure is not None: nonlocal text_repr text_repr = repr_call(test, args, kwargs) if print_example or current_verbosity() >= Verbosity.verbose: printer = RepresentationPrinter(context=context) if print_example: printer.text("Falsifying example:") else: printer.text("Trying example:") if self.print_given_args: printer.text(" ") printer.repr_call( test.__name__, args, kwargs, force_split=True, arg_slices=argslices, leading_comment=( "# " + context.data.slice_comments[(0, 0)] if (0, 0) in context.data.slice_comments else None ), ) report(printer.getvalue()) return test(*args, **kwargs) # Run the test function once, via the executor hook. # In most cases this will delegate straight to `run(data)`. result = self.test_runner(data, run) # If a failure was expected, it should have been raised already, so # instead raise an appropriate diagnostic error. if expected_failure is not None: exception, traceback = expected_failure if ( isinstance(exception, DeadlineExceeded) and self.__test_runtime is not None ): report( "Unreliable test timings! On an initial run, this " "test took %.2fms, which exceeded the deadline of " "%.2fms, but on a subsequent run it took %.2f ms, " "which did not. If you expect this sort of " "variability in your test timings, consider turning " "deadlines off for this test by setting deadline=None." % ( exception.runtime.total_seconds() * 1000, self.settings.deadline.total_seconds() * 1000, self.__test_runtime.total_seconds() * 1000, ) ) else: report("Failed to reproduce exception. Expected: \n" + traceback) > raise Flaky( f"Hypothesis {text_repr} produces unreliable results: " "Falsified on the first call but did not on a subsequent one" ) from exception E hypothesis.errors.Flaky: Hypothesis run(t=) produces unreliable results: Falsified on the first call but did not on a subsequent one E Falsifying example: run( E t=(lambda i: _TestFileObj(fileobj, stop_after=i))(92), E ) E Unreliable test timings! On an initial run, this test took 323.32ms, which exceeded the deadline of 200.00ms, but on a subsequent run it took 4.01 ms, which did not. If you expect this sort of variability in your test timings, consider turning deadlines off for this test by setting deadline=None. /usr/lib/python3.12/site-packages/hypothesis/core.py:814: Flaky ___________________________ TFile.test_mock_fileobj ____________________________ self = def test_mock_fileobj(self): for filename in self.filenames: with open(filename, "rb") as h: @given(generate_test_file_objects(h, File)) def run(t): try: File(t) except MutagenError: pass > run() tests/test___init__.py:623: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ @given(generate_test_file_objects(h, File)) > def run(t): E hypothesis.errors.FailedHealthCheck: Data generation is extremely slow: Only produced 3 valid examples in 1.03 seconds (0 invalid ones and 0 exceeded maximum size). Try decreasing size of the data you're generating (with e.g. max_size or max_leaves parameters). E See https://hypothesis.readthedocs.io/en/latest/healthchecks.html for more information about this. If you want to disable just this health check, add HealthCheck.too_slow to the suppress_health_check settings for this test. tests/test___init__.py:617: FailedHealthCheck ----------------------------- Captured stdout call ----------------------------- You can add @seed(126686362007726708992524513429372642598) to this test or run pytest with --hypothesis-seed=126686362007726708992524513429372642598 to reproduce this failure. =========================== short test summary info ============================ FAILED tests/test___init__.py::TFileTypeAAC::test_test_fileobj_delete - hypot... FAILED tests/test___init__.py::TFileTypeAAC::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeAAC::test_test_fileobj_save - hypothe... FAILED tests/test___init__.py::TFileTypeAAC_2::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeAC3::test_test_fileobj_delete - hypot... FAILED tests/test___init__.py::TFileTypeAC3::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeAC3::test_test_fileobj_save - hypothe... FAILED tests/test___init__.py::TFileTypeAC3_2::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeAIFF::test_test_fileobj_delete - hypo... FAILED tests/test___init__.py::TFileTypeAIFF::test_test_fileobj_load - hypoth... FAILED tests/test___init__.py::TFileTypeAIFF::test_test_fileobj_save - hypoth... FAILED tests/test___init__.py::TFileTypeAIFF_2::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeAIFF_3::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeAIFF_4::test_test_fileobj_delete - hy... FAILED tests/test___init__.py::TFileTypeAIFF_4::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeAIFF_5::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeAIFF_6::test_test_fileobj_delete - hy... FAILED tests/test___init__.py::TFileTypeAIFF_6::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeAPEv2File::test_test_fileobj_load - h... FAILED tests/test___init__.py::TFileTypeAPEv2File_2::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeAPEv2File_2::test_test_fileobj_save FAILED tests/test___init__.py::TFileTypeASF::test_test_fileobj_delete - hypot... FAILED tests/test___init__.py::TFileTypeASF::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeASF::test_test_fileobj_save - hypothe... FAILED tests/test___init__.py::TFileTypeASF_2::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeASF_2::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeASF_2::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeASF_3::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeASF_3::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeASF_3::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeDSDIFF::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeDSDIFF_2::test_test_fileobj_delete - ... FAILED tests/test___init__.py::TFileTypeDSDIFF_2::test_test_fileobj_load - hy... FAILED tests/test___init__.py::TFileTypeDSDIFF_3::test_test_fileobj_delete - ... FAILED tests/test___init__.py::TFileTypeDSDIFF_3::test_test_fileobj_load - hy... FAILED tests/test___init__.py::TFileTypeDSDIFF_3::test_test_fileobj_save - hy... FAILED tests/test___init__.py::TFileTypeDSF::test_test_fileobj_delete - hypot... FAILED tests/test___init__.py::TFileTypeDSF::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeDSF_2::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeDSF_2::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeDSF_3::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeDSF_3::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeDSF_3::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeDSF_4::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeDSF_4::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeFLAC::test_test_fileobj_delete - hypo... FAILED tests/test___init__.py::TFileTypeFLAC::test_test_fileobj_load - hypoth... FAILED tests/test___init__.py::TFileTypeFLAC::test_test_fileobj_save - hypoth... FAILED tests/test___init__.py::TFileTypeID3FileType::test_test_fileobj_delete FAILED tests/test___init__.py::TFileTypeID3FileType::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeID3FileType::test_test_fileobj_save FAILED tests/test___init__.py::TFileTypeID3FileType_2::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeID3FileType_3::test_test_fileobj_delete FAILED tests/test___init__.py::TFileTypeID3FileType_3::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeID3FileType_3::test_test_fileobj_save FAILED tests/test___init__.py::TFileTypeID3FileType_4::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeMP3::test_test_fileobj_delete - hypot... FAILED tests/test___init__.py::TFileTypeMP3::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeMP3::test_test_fileobj_save - hypothe... FAILED tests/test___init__.py::TFileTypeMP3_2::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP3_3::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeMP3_3::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP3_3::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeMP3_4::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP4::test_test_fileobj_delete - hypot... FAILED tests/test___init__.py::TFileTypeMP4::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeMP4::test_test_fileobj_save - hypothe... FAILED tests/test___init__.py::TFileTypeMP4_2::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP4_2::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeMP4_3::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP4_3::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeMP4_4::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeMP4_4::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP4_4::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeMP4_5::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeMP4_5::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP4_5::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeMP4_6::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeMP4_6::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeMP4_6::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeMonkeysAudio::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeMonkeysAudio_2::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeMusepack::test_test_fileobj_load - hy... FAILED tests/test___init__.py::TFileTypeMusepack::test_test_fileobj_save - hy... FAILED tests/test___init__.py::TFileTypeMusepack_2::test_test_fileobj_load - ... FAILED tests/test___init__.py::TFileTypeMusepack_3::test_test_fileobj_delete FAILED tests/test___init__.py::TFileTypeMusepack_3::test_test_fileobj_load - ... FAILED tests/test___init__.py::TFileTypeMusepack_4::test_test_fileobj_load - ... FAILED tests/test___init__.py::TFileTypeMusepack_4::test_test_fileobj_save - ... FAILED tests/test___init__.py::TFileTypeOggFLAC::test_test_fileobj_delete - h... FAILED tests/test___init__.py::TFileTypeOggFLAC::test_test_fileobj_load - hyp... FAILED tests/test___init__.py::TFileTypeOggFLAC::test_test_fileobj_save - hyp... FAILED tests/test___init__.py::TFileTypeOggOpus::test_test_fileobj_delete - h... FAILED tests/test___init__.py::TFileTypeOggOpus::test_test_fileobj_load - hyp... FAILED tests/test___init__.py::TFileTypeOggOpus::test_test_fileobj_save - hyp... FAILED tests/test___init__.py::TFileTypeOggSpeex::test_test_fileobj_delete - ... FAILED tests/test___init__.py::TFileTypeOggSpeex::test_test_fileobj_load - hy... FAILED tests/test___init__.py::TFileTypeOggSpeex::test_test_fileobj_save - hy... FAILED tests/test___init__.py::TFileTypeOggTheora::test_test_fileobj_delete FAILED tests/test___init__.py::TFileTypeOggTheora::test_test_fileobj_load - h... FAILED tests/test___init__.py::TFileTypeOggTheora::test_test_fileobj_save - h... FAILED tests/test___init__.py::TFileTypeOggVorbis::test_test_fileobj_delete FAILED tests/test___init__.py::TFileTypeOggVorbis::test_test_fileobj_load - h... FAILED tests/test___init__.py::TFileTypeOggVorbis::test_test_fileobj_save - h... FAILED tests/test___init__.py::TFileTypeOptimFROG::test_test_fileobj_load - h... FAILED tests/test___init__.py::TFileTypeOptimFROG_2::test_test_fileobj_load FAILED tests/test___init__.py::TFileTypeOptimFROG_2::test_test_fileobj_save FAILED tests/test___init__.py::TFileTypeSMF::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeSMF::test_test_fileobj_save - hypothe... FAILED tests/test___init__.py::TFileTypeTAK::test_test_fileobj_load - hypothe... FAILED tests/test___init__.py::TFileTypeTAK_2::test_test_fileobj_delete - hyp... FAILED tests/test___init__.py::TFileTypeTAK_2::test_test_fileobj_load - hypot... FAILED tests/test___init__.py::TFileTypeTAK_2::test_test_fileobj_save - hypot... FAILED tests/test___init__.py::TFileTypeTrueAudio::test_test_fileobj_delete FAILED tests/test___init__.py::TFileTypeTrueAudio::test_test_fileobj_load - h... FAILED tests/test___init__.py::TFileTypeWAVE::test_test_fileobj_delete - hypo... FAILED tests/test___init__.py::TFileTypeWAVE::test_test_fileobj_load - hypoth... FAILED tests/test___init__.py::TFileTypeWAVE::test_test_fileobj_save - hypoth... FAILED tests/test___init__.py::TFileTypeWAVE_2::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeWAVE_2::test_test_fileobj_save - hypo... FAILED tests/test___init__.py::TFileTypeWAVE_3::test_test_fileobj_delete - hy... FAILED tests/test___init__.py::TFileTypeWAVE_3::test_test_fileobj_load - hypo... FAILED tests/test___init__.py::TFileTypeWAVE_3::test_test_fileobj_save - hypo... FAILED tests/test___init__.py::TFileTypeWavPack::test_test_fileobj_delete - h... FAILED tests/test___init__.py::TFileTypeWavPack::test_test_fileobj_load - hyp... FAILED tests/test___init__.py::TFileTypeWavPack::test_test_fileobj_save - hyp... FAILED tests/test___init__.py::TFile::test_mock_fileobj - hypothesis.errors.F... ================ 127 failed, 3906 passed in 6708.61s (1:51:48) ================= error: Bad exit status from /var/tmp/rpm-tmp.tXmgLP (%check) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.tXmgLP (%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-mutagen.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-mutagen.spec