<86>Dec 21 02:11:02 userdel[1433251]: delete user 'rooter' <86>Dec 21 02:11:02 userdel[1433251]: removed group 'rooter' owned by 'rooter' <86>Dec 21 02:11:02 userdel[1433251]: removed shadow group 'rooter' owned by 'rooter' <86>Dec 21 02:11:02 groupadd[1433275]: group added to /etc/group: name=rooter, GID=1826 <86>Dec 21 02:11:02 groupadd[1433275]: group added to /etc/gshadow: name=rooter <86>Dec 21 02:11:02 groupadd[1433275]: new group: name=rooter, GID=1826 <86>Dec 21 02:11:02 useradd[1433297]: new user: name=rooter, UID=1826, GID=1826, home=/root, shell=/bin/bash, from=none <86>Dec 21 02:11:02 userdel[1433329]: delete user 'builder' <86>Dec 21 02:11:02 userdel[1433329]: removed group 'builder' owned by 'builder' <86>Dec 21 02:11:02 userdel[1433329]: removed shadow group 'builder' owned by 'builder' <86>Dec 21 02:11:02 groupadd[1433350]: group added to /etc/group: name=builder, GID=1827 <86>Dec 21 02:11:02 groupadd[1433350]: group added to /etc/gshadow: name=builder <86>Dec 21 02:11:02 groupadd[1433350]: new group: name=builder, GID=1827 <86>Dec 21 02:11:02 useradd[1433367]: new user: name=builder, UID=1827, GID=1827, home=/usr/src, shell=/bin/bash, from=none <13>Dec 21 02:11:05 rpmi: libmpdec3-2.5.1-alt3 sisyphus+314490.500.5.1 1675432004 installed <13>Dec 21 02:11:05 rpmi: libgdbm-1.8.3-alt10 sisyphus+346222.200.3.2 1716468404 installed <13>Dec 21 02:11:05 rpmi: libexpat-2.5.0-alt1 sisyphus+346180.200.2.1 1716349835 installed <13>Dec 21 02:11:05 rpmi: libb2-0.98.1-alt1_1 sisyphus+291614.100.1.1 1638962877 installed <13>Dec 21 02:11:05 rpmi: libp11-kit-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622573 installed <13>Dec 21 02:11:05 rpmi: libtasn1-4.19.0-alt3 sisyphus+327816.100.1.1 1692802615 installed <13>Dec 21 02:11:05 rpmi: rpm-macros-alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Dec 21 02:11:05 rpmi: alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Dec 21 02:11:05 rpmi: ca-certificates-2024.12.10-alt1 sisyphus+364633.200.3.1 1733918603 installed <13>Dec 21 02:11:05 rpmi: ca-trust-0.2.0-alt1 sisyphus+344843.100.1.1 1712743326 installed <13>Dec 21 02:11:05 rpmi: p11-kit-trust-1:0.25.5-alt1 sisyphus+352553.100.1.1 1720622573 installed <13>Dec 21 02:11:05 rpmi: libcrypto3-3.1.7-alt2 sisyphus+359910.100.1.1 1729080439 installed <13>Dec 21 02:11:05 rpmi: libssl3-3.1.7-alt2 sisyphus+359910.100.1.1 1729080439 installed <13>Dec 21 02:11:05 rpmi: python3-3.12.8-alt1 sisyphus+364336.100.1.1 1733526854 installed <13>Dec 21 02:11:06 rpmi: python3-base-3.12.8-alt1 sisyphus+364336.100.1.1 1733526854 installed <13>Dec 21 02:11:06 rpmi: python3-module-py3dephell-0.3.1-alt1 sisyphus+365261.200.1.1 1734463433 installed <13>Dec 21 02:11:06 rpmi: python3-module-pyproject-installer-0.5.5-alt1 sisyphus+362541.100.1.1 1731610714 installed <13>Dec 21 02:11:06 rpmi: rpm-macros-pyproject-0.0.9-alt1 sisyphus+362541.300.2.1 1731671840 installed <13>Dec 21 02:11:06 rpmi: tests-for-installed-python3-pkgs-0.1.26-alt2 sisyphus+365350.100.1.1 1734517486 installed <13>Dec 21 02:11:06 rpmi: rpm-build-python3-0.1.26-alt2 sisyphus+365350.100.1.1 1734517486 installed <13>Dec 21 02:11:06 rpmi: rpm-build-pyproject-0.0.9-alt1 sisyphus+362541.300.2.1 1731671840 installed <13>Dec 21 02:11:08 rpmi: python3-module-typing_extensions-4.12.2-alt1 sisyphus+351501.100.1.2 1719296652 installed <13>Dec 21 02:11:08 rpmi: libopenblas-0.3.28-alt1 sisyphus+356644.100.1.1 1725289674 installed <13>Dec 21 02:11:08 rpmi: python3-module-zipp-3.21.0-alt1 sisyphus+362195.100.2.1 1731487934 installed <13>Dec 21 02:11:08 rpmi: python3-module-natsort-8.4.0-alt2 sisyphus+339213.100.1.1 1706453992 installed <13>Dec 21 02:11:08 rpmi: python3-module-domdf-python-tools-3.9.0-alt1 sisyphus+352392.100.1.1 1720436309 installed <13>Dec 21 02:11:08 rpmi: python3-module-pluggy-1.5.0-alt1 sisyphus+345632.100.2.1 1713864244 installed <13>Dec 21 02:11:08 rpmi: python3-module-packaging-24.2-alt1 sisyphus+362183.100.1.1 1731315992 installed <13>Dec 21 02:11:08 rpmi: python3-module-iniconfig-2.0.0-alt1 sisyphus+314076.200.3.1 1674737275 installed <13>Dec 21 02:11:08 rpmi: python3-module-pytest-8.3.4-alt1 sisyphus+363889.100.1.1 1733152874 installed <13>Dec 21 02:11:08 rpmi: python3-module-pytest-datadir-1.5.0-alt1 sisyphus+330926.100.1.1 1696404893 installed <13>Dec 21 02:11:08 rpmi: libyaml2-0.2.5-alt1 sisyphus+278391.100.1.1 1626094928 installed <13>Dec 21 02:11:08 rpmi: python3-module-yaml-6.0.2-alt1 sisyphus+356896.100.1.1 1725541112 installed <13>Dec 21 02:11:08 rpmi: python3-module-pytest-regressions-2.6.0-alt1 sisyphus+365394.400.5.1 1734547404 installed <13>Dec 21 02:11:08 rpmi: libxblas-1.0.248-alt2 sisyphus+285045.40.2.1 1631388330 installed <13>Dec 21 02:11:08 rpmi: libquadmath0-14.2.1-alt1 sisyphus+360995.100.1.1 1730131018 installed <13>Dec 21 02:11:08 rpmi: libgfortran5-14.2.1-alt1 sisyphus+360995.100.1.1 1730131018 installed <13>Dec 21 02:11:08 rpmi: liblapack-1:3.8.0-alt7 sisyphus+340675.300.1.1 1707908338 installed <13>Dec 21 02:11:09 rpmi: python3-module-numpy-1:1.26.5-alt1 sisyphus+352832.100.1.1 1720965091 installed <13>Dec 21 02:11:09 rpmi: python3-module-coincidence-0.6.6-alt1 sisyphus+342029.100.1.1 1709628632 installed <13>Dec 21 02:11:09 rpmi: python3-module-pytest-randomly-3.16.0-alt1 sisyphus+361006.100.1.1 1730122881 installed <13>Dec 21 02:11:09 rpmi: python3-module-pytest-timeout-2.3.1-alt1 sisyphus+342480.100.2.1 1710234858 installed <13>Dec 21 02:11:09 rpmi: python3-module-importlib-metadata-8.5.0-alt1 sisyphus+357362.100.1.1 1726136861 installed <13>Dec 21 02:11:09 rpmi: python3-module-tomli-2.2.1-alt1 sisyphus+363592.100.1.1 1732803942 installed <13>Dec 21 02:11:09 rpmi: python3-module-flit-core-3.10.1-alt1 sisyphus+361771.100.1.1 1730823467 installed warning: File /usr/src/in/source/python3-module-dom-toml-2.0.0-alt.patch is smaller than 8 bytes Building target platforms: x86_64 Building for target x86_64 Wrote: /usr/src/in/nosrpm/python3-module-dom-toml-2.0.0-alt1.nosrc.rpm (w1.gzdio) warning: File /usr/src/RPM/SOURCES/python3-module-dom-toml-2.0.0-alt.patch is smaller than 8 bytes Installing python3-module-dom-toml-2.0.0-alt1.src.rpm Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.60978 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf python3-module-dom-toml-2.0.0 + echo 'Source #0 (python3-module-dom-toml-2.0.0.tar):' Source #0 (python3-module-dom-toml-2.0.0.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-dom-toml-2.0.0.tar + cd python3-module-dom-toml-2.0.0 + /bin/chmod -c -Rf u+rwX,go-w . + echo 'Patch #0 (python3-module-dom-toml-2.0.0-alt.patch):' Patch #0 (python3-module-dom-toml-2.0.0-alt.patch): + /usr/bin/patch -p1 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show pep518 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync pep518 --verify --verify-exclude 'wheel$' + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show pep517 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync pep517 --verify --verify-exclude 'wheel$' + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show metadata + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync metadata --verify INFO : Building metadata INFO : Building metadata with prepare_metadata_for_build_wheel INFO : Source tree: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0 INFO : Output dir: /usr/src/tmp/tmpl7ih81lr + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show check + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync check --verify + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.64670 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-dom-toml-2.0.0 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + /usr/bin/python3 -m pyproject_installer -v build INFO : pyproject_installer.build_cmd._build : Building wheel INFO : pyproject_installer.build_cmd._build : Source tree: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0 INFO : pyproject_installer.build_cmd._build : Output dir: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/dist DEBUG : pyproject_installer.lib.build_backend : Validating source path DEBUG : pyproject_installer.lib.build_backend : Checking for PEP517 spec DEBUG : pyproject_installer.lib.build_backend : Parsing configuration file: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/pyproject.toml INFO : backend_caller.py : Calling hook build_wheel in subprocess INFO : backend_caller.py : Build backend: flit_core.buildapi INFO : backend_caller.py : Hook args: ['/usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/dist'] INFO : backend_caller.py : Hook kwargs: {'config_settings': None} INFO : flit_core.wheel : Zip timestamps will be from SOURCE_DATE_EPOCH: 2024-04-11 09:30:07+00:00 INFO : flit_core.wheel : Copying package file(s) from dom_toml DEBUG : flit_core.wheel : Adding dom_toml/__init__.py to zip file DEBUG : flit_core.wheel : Adding dom_toml/decoder.py to zip file DEBUG : flit_core.wheel : Adding dom_toml/encoder.py to zip file DEBUG : flit_core.wheel : Adding dom_toml/parser.py to zip file DEBUG : flit_core.wheel : Adding dom_toml/py.typed to zip file INFO : flit_core.wheel : Writing metadata files DEBUG : flit_core.wheel : Adding LICENSE to zip file DEBUG : flit_core.wheel : Writing data to dom_toml-2.0.0.dist-info/WHEEL in zip file DEBUG : flit_core.wheel : Writing data to dom_toml-2.0.0.dist-info/METADATA in zip file INFO : flit_core.wheel : Writing the record of files DEBUG : flit_core.wheel : Writing data to dom_toml-2.0.0.dist-info/RECORD in zip file INFO : flit_core.wheel : Built wheel: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/dist/dom_toml-2.0.0-py3-none-any.whl INFO : pyproject_installer.build_cmd._build : Built wheel: dom_toml-2.0.0-py3-none-any.whl + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.64670 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/python3-module-dom-toml-buildroot + : + /bin/rm -rf -- /usr/src/tmp/python3-module-dom-toml-buildroot + PATH=/usr/libexec/rpm-build:/usr/src/bin:/usr/bin:/bin:/usr/local/bin:/usr/games + cd python3-module-dom-toml-2.0.0 + /usr/bin/python3 -m pyproject_installer -v install --destdir=/usr/src/tmp/python3-module-dom-toml-buildroot INFO : pyproject_installer.install_cmd._install : Installing wheel INFO : pyproject_installer.install_cmd._install : Wheel directory: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/dist INFO : pyproject_installer.install_cmd._install : Wheel filename: dom_toml-2.0.0-py3-none-any.whl INFO : pyproject_installer.install_cmd._install : Destination: /usr/src/tmp/python3-module-dom-toml-buildroot DEBUG : pyproject_installer.lib.wheel : Parsing wheel filename DEBUG : pyproject_installer.lib.wheel : Validating wheel file DEBUG : pyproject_installer.lib.wheel : Validating wheel spec version DEBUG : pyproject_installer.lib.wheel : Parsing wheel spec metadata DEBUG : pyproject_installer.lib.wheel : Validating RECORD INFO : pyproject_installer.install_cmd._install : Wheel installation root: /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages INFO : pyproject_installer.install_cmd._install : Extracting wheel DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: dom_toml-2.0.0.dist-info/LICENSE DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: dom_toml-2.0.0.dist-info/WHEEL DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: dom_toml-2.0.0.dist-info/RECORD INFO : pyproject_installer.install_cmd._install : Wheel was installed + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/python3-module-dom-toml-buildroot (auto) Verifying and fixing files in /usr/src/tmp/python3-module-dom-toml-buildroot (binconfig,pkgconfig,libtool,desktop,gnuconfig) Checking contents of files in /usr/src/tmp/python3-module-dom-toml-buildroot/ (default) Compressing files in /usr/src/tmp/python3-module-dom-toml-buildroot (auto) Adjusting library links in /usr/src/tmp/python3-module-dom-toml-buildroot ./usr/lib: (from :0) Verifying ELF objects in /usr/src/tmp/python3-module-dom-toml-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Splitting links to aliased files under /{,s}bin in /usr/src/tmp/python3-module-dom-toml-buildroot Bytecompiling python3 modules in /usr/src/tmp/python3-module-dom-toml-buildroot using /usr/bin/python3 compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/__init__.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/decoder.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/encoder.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/parser.py Bytecompiling python3 modules with optimization in /usr/src/tmp/python3-module-dom-toml-buildroot using /usr/bin/python3 -O compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/__init__.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/decoder.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/encoder.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/parser.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python3-module-dom-toml-buildroot using /usr/bin/python3 -OO compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/__init__.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/decoder.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/encoder.py compile /usr/src/tmp/python3-module-dom-toml-buildroot/usr/lib/python3/site-packages/dom_toml/parser.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/dom_toml/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/dom_toml/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/dom_toml/__pycache__/decoder.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/dom_toml/__pycache__/decoder.cpython-312.pyc' './usr/lib/python3/site-packages/dom_toml/__pycache__/encoder.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/dom_toml/__pycache__/encoder.cpython-312.pyc' './usr/lib/python3/site-packages/dom_toml/__pycache__/parser.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/dom_toml/__pycache__/parser.cpython-312.pyc' Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.64670 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-dom-toml-2.0.0 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto' + export NO_INTERNET=YES + NO_INTERNET=YES + /usr/bin/python3 -m pyproject_installer run -- python3 -m pytest -vra INFO : Creating venv INFO : Installing console scripts INFO : Installing package: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/dist/dom_toml-2.0.0-py3-none-any.whl INFO : Running command: ['/usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/.run_venv/bin/python3', '-m', 'pyproject_installer', 'install', '/usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/dist/dom_toml-2.0.0-py3-none-any.whl'] INFO : Running command: ['python3', '-m', 'pytest', '-vra'] ============================= test session starts ============================== platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 -- /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0/.run_venv/bin/python3 cachedir: .pytest_cache Using --randomly-seed=1574976884 Test session started at 02:11:13 rootdir: /usr/src/RPM/BUILD/python3-module-dom-toml-2.0.0 configfile: tox.ini plugins: datadir-1.5.0, regressions-2.6.0, randomly-3.16.0, timeout-2.3.1 timeout: 300.0s timeout method: signal timeout func_only: False collecting ... collected 331 items tests/tests_for_tomliw/test_types.py::test_tuple PASSED [ 0%] tests/tests_for_tomliw/test_types.py::test_decimal PASSED [ 0%] tests/test_decoder.py::test_decoder FAILED [ 0%] tests/tests_for_tomliw/test_write_file.py::test_dump PASSED [ 1%] tests/test_encoder.py::test_encoder[pep621] FAILED [ 1%] tests/test_encoder.py::test_encoder[section_string_value] PASSED [ 1%] tests/test_encoder.py::test_encoder[dotted.key] PASSED [ 2%] tests/test_encoder.py::test_encoder[section_list_value] PASSED [ 2%] tests/test_encoder.py::test_encoder[unicode] PASSED [ 2%] tests/test_encoder.py::test_encoder_tuples[section_tuple_value] PASSED [ 3%] tests/test_encoder.py::test_encoder[string_value] PASSED [ 3%] tests/test_encoder.py::test_encoder[long_list] PASSED [ 3%] tests/test_encoder.py::test_encoder_inline_table FAILED [ 3%] tests/test_encoder.py::test_encoder_inline_table_nested FAILED [ 4%] tests/test_encoder.py::test_encoder[array_of_tables] FAILED [ 4%] tests/test_encoder.py::test_encoder[dict_value] PASSED [ 4%] tests/test_encoder.py::test_encoder_tuples[tuple_value] PASSED [ 5%] tests/test_encoder.py::test_encoder[list_value] PASSED [ 5%] tests/test_parser.py::test_parse_valid_config[keywords] PASSED [ 5%] tests/test_parser.py::test_construct_path[path4-foo.bar] PASSED [ 6%] tests/test_parser.py::test_parse_valid_config[description] PASSED [ 6%] tests/test_parser.py::test_construct_path[path6-foo."hello world"] PASSED [ 6%] tests/test_parser.py::test_construct_path[path8-foo."hello world"] PASSED [ 6%] tests/test_parser.py::test_construct_path[path5-foo.bar] PASSED [ 7%] tests/test_parser.py::test_parse_config_errors[urls_wrong_type] FAILED [ 7%] tests/test_parser.py::test_parse_valid_config[dependencies] PASSED [ 7%] tests/test_parser.py::test_parse_config_errors[classifiers_wrong_type] PASSED [ 8%] tests/test_parser.py::test_construct_path[path3-foo.bar] PASSED [ 8%] tests/test_parser.py::test_construct_path[path0-foo] PASSED [ 8%] tests/test_parser.py::test_parse_valid_config[unicode] PASSED [ 9%] tests/test_parser.py::test_parse_valid_config[minimal] PASSED [ 9%] tests/test_parser.py::test_parse_config_errors[description_wrong_type1] PASSED [ 9%] tests/test_parser.py::test_construct_path[path2-foo] PASSED [ 9%] tests/test_parser.py::test_parse_config_errors[dependencies_wrong_type] PASSED [ 10%] tests/test_parser.py::test_badconfigerror_documentation PASSED [ 10%] tests/test_parser.py::test_parse_valid_config[classifiers] PASSED [ 10%] tests/test_parser.py::test_parse_valid_config[urls] PASSED [ 11%] tests/test_parser.py::test_parse_config_errors[description_wrong_type0] PASSED [ 11%] tests/test_parser.py::test_parse_config_errors[keywords_wrong_type] PASSED [ 11%] tests/test_parser.py::test_construct_path[path1-foo] PASSED [ 12%] tests/test_parser.py::test_construct_path[path7-foo."hello world"] PASSED [ 12%] tests/test_parser_defaults.py::test_parse_config_errors[urls_wrong_type] FAILED [ 12%] tests/test_parser_defaults.py::test_parse_valid_config[keywords] PASSED [ 12%] tests/test_parser_defaults.py::test_parse_valid_config[description] PASSED [ 13%] tests/test_parser_defaults.py::test_parse_valid_config[classifiers] PASSED [ 13%] tests/test_parser_defaults.py::test_parse_config_errors[classifiers_wrong_type] PASSED [ 13%] tests/test_parser_defaults.py::test_parse_config_errors[keywords_wrong_type] PASSED [ 14%] tests/test_parser_defaults.py::test_parse_config_errors[description_wrong_type0] PASSED [ 14%] tests/test_parser_defaults.py::test_parse_valid_config[dependencies] PASSED [ 14%] tests/test_parser_defaults.py::test_parse_valid_config[unicode] PASSED [ 15%] tests/test_parser_defaults.py::test_parse_valid_config[urls] PASSED [ 15%] tests/test_parser_defaults.py::test_parse_valid_config[minimal] PASSED [ 15%] tests/test_parser_defaults.py::test_parse_config_errors[dependencies_wrong_type] PASSED [ 16%] tests/test_parser_defaults.py::test_parse_config_errors[description_wrong_type1] PASSED [ 16%] tests/tests_for_tomliw/test_invalid.py::test_invalid_time PASSED [ 16%] tests/tests_for_tomliw/test_invalid.py::test_invalid_type_nested PASSED [ 16%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-3] PASSED [ 17%] tests/tests_for_tomliw/test_valid.py::test_valid[integer-underscore] PASSED [ 17%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-of-tables-1] PASSED [ 17%] tests/tests_for_tomliw/test_valid.py::test_valid[implicit-and-explicit-before] PASSED [ 18%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-7] PASSED [ 18%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-hex1] PASSED [ 18%] tests/tests_for_tomliw/test_valid.py::test_valid[arrays] PASSED [ 19%] tests/tests_for_tomliw/test_valid.py::test_valid[string-nl] PASSED [ 19%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-scalar-string-multiline-40kb] PASSED [ 19%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-13] PASSED [ 19%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-mixed-number-types] PASSED [ 20%] tests/tests_for_tomliw/test_valid.py::test_valid[array-table-array-string-backslash] PASSED [ 20%] tests/tests_for_tomliw/test_valid.py::test_valid[exponent-part-float] PASSED [ 20%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-scalar-string-40kb] PASSED [ 21%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-dotted-keys-2] PASSED [ 21%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-comment] PASSED [ 21%] tests/tests_for_tomliw/test_valid.py::test_valid[empty-file] PASSED [ 22%] tests/tests_for_tomliw/test_valid.py::test_valid[table-without-super] PASSED [ 22%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-boolean-2] PASSED [ 22%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-2] PASSED [ 22%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-3a] PASSED [ 23%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-hex3] PASSED [ 23%] tests/tests_for_tomliw/test_valid.py::test_valid[string-double-quote-escape] PASSED [ 23%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-tab] PASSED [ 24%] tests/tests_for_tomliw/test_valid.py::test_obj_to_str_mapping[obj1-crlf-newline = """\nfoo\nbar"""\n-True] PASSED [ 24%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-quoted-literal-keys-1] PASSED [ 24%] tests/tests_for_tomliw/test_valid.py::test_valid[inline-table-array] PASSED [ 25%] tests/tests_for_tomliw/test_valid.py::test_valid[comment-everywhere] PASSED [ 25%] tests/tests_for_tomliw/test_valid.py::test_valid[float] PASSED [ 25%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-multiline-1] PASSED [ 25%] tests/tests_for_tomliw/test_valid.py::test_obj_to_str_mapping[obj0-cr-newline = "foo\\rbar"\n-True] PASSED [ 26%] tests/tests_for_tomliw/test_valid.py::test_valid[newline-crlf] PASSED [ 26%] tests/tests_for_tomliw/test_valid.py::test_valid[string-simple] PASSED [ 26%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-4] PASSED [ 27%] tests/tests_for_tomliw/test_valid.py::test_valid[nested-inline-table-array] PASSED [ 27%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-comment-mid-array] PASSED [ 27%] tests/tests_for_tomliw/test_valid.py::test_valid[table-array-implicit] PASSED [ 28%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-8] PASSED [ 28%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-comment-tab] PASSED [ 28%] tests/tests_for_tomliw/test_valid.py::test_valid[comments-everywhere] PASSED [ 29%] tests/tests_for_tomliw/test_valid.py::test_valid[table-empty] PASSED [ 29%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-boolean-1] PASSED [ 29%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-dotted-keys-3] PASSED [ 29%] tests/tests_for_tomliw/test_valid.py::test_valid[implicit-and-explicit-after] PASSED [ 30%] tests/tests_for_tomliw/test_valid.py::test_valid[datetime-timezone] PASSED [ 30%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-hex2] PASSED [ 30%] tests/tests_for_tomliw/test_valid.py::test_valid[double-quote-escape] PASSED [ 31%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-time-2] PASSED [ 31%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-local-1] PASSED [ 31%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-1] PASSED [ 32%] tests/tests_for_tomliw/test_valid.py::test_valid[comment-tricky] PASSED [ 32%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-key-string-40kb] PASSED [ 32%] tests/tests_for_tomliw/test_valid.py::test_valid[ends-in-whitespace-escape] PASSED [ 32%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-2] PASSED [ 33%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic] PASSED [ 33%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-10] PASSED [ 33%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-readme-example] PASSED [ 34%] tests/tests_for_tomliw/test_valid.py::test_valid[table-whitespace] PASSED [ 34%] tests/tests_for_tomliw/test_valid.py::test_valid[comment-at-eof] PASSED [ 34%] tests/tests_for_tomliw/test_valid.py::test_valid[integer-literals] PASSED [ 35%] tests/tests_for_tomliw/test_valid.py::test_valid[comments-at-eof] PASSED [ 35%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-2] PASSED [ 35%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-scalar-literal-40kb] PASSED [ 35%] tests/tests_for_tomliw/test_valid.py::test_valid[apostrophes-in-literal-string] PASSED [ 36%] tests/tests_for_tomliw/test_valid.py::test_valid[multiline-string-quotes] PASSED [ 36%] tests/tests_for_tomliw/test_valid.py::test_valid[datetime-local-date] PASSED [ 36%] tests/tests_for_tomliw/test_valid.py::test_valid[key-quoted-dots] PASSED [ 37%] tests/tests_for_tomliw/test_valid.py::test_valid[empty] PASSED [ 37%] tests/tests_for_tomliw/test_valid.py::test_valid[key-alphanum] PASSED [ 37%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-newline-1] PASSED [ 38%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-max] PASSED [ 38%] tests/tests_for_tomliw/test_valid.py::test_valid[raw-string] PASSED [ 38%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-6] PASSED [ 38%] tests/tests_for_tomliw/test_valid.py::test_valid[array-empty] PASSED [ 39%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-multiline-3] PASSED [ 39%] tests/tests_for_tomliw/test_valid.py::test_valid[table-no-eol] PASSED [ 39%] tests/tests_for_tomliw/test_valid.py::test_valid[table-with-literal-string] PASSED [ 40%] tests/tests_for_tomliw/test_valid.py::test_valid[inline-table-nest] PASSED [ 40%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-2] PASSED [ 40%] tests/tests_for_tomliw/test_valid.py::test_valid[key-special-word] PASSED [ 41%] tests/tests_for_tomliw/test_valid.py::test_valid[empty-inline-table] PASSED [ 41%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-example-1-compact] PASSED [ 41%] tests/tests_for_tomliw/test_valid.py::test_valid[key-special-chars] PASSED [ 41%] tests/tests_for_tomliw/test_valid.py::test_valid[underscored-integer] PASSED [ 42%] tests/tests_for_tomliw/test_valid.py::test_valid[key-empty] PASSED [ 42%] tests/tests_for_tomliw/test_valid.py::test_valid[escaped-escape] PASSED [ 42%] tests/tests_for_tomliw/test_valid.py::test_valid[float-exponent] PASSED [ 43%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-local-2] PASSED [ 43%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-5] PASSED [ 43%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-4] PASSED [ 44%] tests/tests_for_tomliw/test_valid.py::test_valid[table-with-single-quotes] PASSED [ 44%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-6] PASSED [ 44%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-4] PASSED [ 45%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-8] PASSED [ 45%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-7] PASSED [ 45%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-7] PASSED [ 45%] tests/tests_for_tomliw/test_valid.py::test_valid[array-hetergeneous] PASSED [ 46%] tests/tests_for_tomliw/test_valid.py::test_valid[string-escaped-escape] PASSED [ 46%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-2] PASSED [ 46%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-1] PASSED [ 47%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-5] PASSED [ 47%] tests/tests_for_tomliw/test_valid.py::test_valid[string-escape-tricky] PASSED [ 47%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-inline-1] PASSED [ 48%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-example-1] PASSED [ 48%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-3] PASSED [ 48%] tests/tests_for_tomliw/test_valid.py::test_valid[table-sub-empty] PASSED [ 48%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-newline-2] PASSED [ 49%] tests/tests_for_tomliw/test_valid.py::test_valid[array-subtables] PASSED [ 49%] tests/tests_for_tomliw/test_valid.py::test_valid[no-newlines] PASSED [ 49%] tests/tests_for_tomliw/test_valid.py::test_valid[integer-long] PASSED [ 50%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-quoted-basic-keys-1] PASSED [ 50%] tests/tests_for_tomliw/test_valid.py::test_valid[string-with-pound] PASSED [ 50%] tests/tests_for_tomliw/test_valid.py::test_valid[key-space] PASSED [ 51%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-2] PASSED [ 51%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-4] PASSED [ 51%] tests/tests_for_tomliw/test_valid.py::test_valid[unicode-literal] PASSED [ 51%] tests/tests_for_tomliw/test_valid.py::test_valid[underscored-float] PASSED [ 52%] tests/tests_for_tomliw/test_valid.py::test_valid[table-array-one] PASSED [ 52%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-case-sensitive] PASSED [ 52%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-inline-3] PASSED [ 53%] tests/tests_for_tomliw/test_valid.py::test_valid[string-empty] PASSED [ 53%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-3] PASSED [ 53%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-1] PASSED [ 54%] tests/tests_for_tomliw/test_valid.py::test_valid[inline-table-end-in-bool] PASSED [ 54%] tests/tests_for_tomliw/test_valid.py::test_valid[multiline-string-accidental-whitespace] PASSED [ 54%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-extend-dotted-object-3] PASSED [ 54%] tests/tests_for_tomliw/test_valid.py::test_valid[array] PASSED [ 55%] tests/tests_for_tomliw/test_valid.py::test_valid[comments-at-eof2] PASSED [ 55%] tests/tests_for_tomliw/test_valid.py::test_valid[key-case-sensitive] PASSED [ 55%] tests/tests_for_tomliw/test_valid.py::test_valid[raw-multiline-string] PASSED [ 56%] tests/tests_for_tomliw/test_valid.py::test_valid[key-escapes] PASSED [ 56%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table] PASSED [ 56%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-7] PASSED [ 57%] tests/tests_for_tomliw/test_valid.py::test_valid[array-nested-inline-table] PASSED [ 57%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-of-tables-3] PASSED [ 57%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-4] PASSED [ 58%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-4] PASSED [ 58%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-6] PASSED [ 58%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-6] PASSED [ 58%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-7] PASSED [ 59%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-6] PASSED [ 59%] tests/tests_for_tomliw/test_valid.py::test_valid[inline-table-empty] PASSED [ 59%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-extend-dotted-object-2] PASSED [ 60%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-4] PASSED [ 60%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-1] PASSED [ 60%] tests/tests_for_tomliw/test_valid.py::test_valid[long-integer] PASSED [ 61%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-1] PASSED [ 61%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-6] PASSED [ 61%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-9] PASSED [ 61%] tests/tests_for_tomliw/test_valid.py::test_valid[keys-with-dots] PASSED [ 62%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-local-1] PASSED [ 62%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-8] PASSED [ 62%] tests/tests_for_tomliw/test_valid.py::test_valid[key-equals-nospace] PASSED [ 63%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-8] PASSED [ 63%] tests/tests_for_tomliw/test_valid.py::test_valid[array-string-with-comma] PASSED [ 63%] tests/tests_for_tomliw/test_valid.py::test_valid[implicit-groups] PASSED [ 64%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-scalar-literal-multiline-40kb] PASSED [ 64%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-3] PASSED [ 64%] tests/tests_for_tomliw/test_valid.py::test_valid[long-float] PASSED [ 64%] tests/tests_for_tomliw/test_valid.py::test_valid[newline-lf] PASSED [ 65%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-8] PASSED [ 65%] tests/tests_for_tomliw/test_valid.py::test_valid[comment-at-eof2] PASSED [ 65%] tests/tests_for_tomliw/test_valid.py::test_valid[integer] PASSED [ 66%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-more-mixed-types] PASSED [ 66%] tests/tests_for_tomliw/test_valid.py::test_valid[inline-table] PASSED [ 66%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-2] PASSED [ 67%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-7] PASSED [ 67%] tests/tests_for_tomliw/test_valid.py::test_valid[datetime] PASSED [ 67%] tests/tests_for_tomliw/test_valid.py::test_valid[array-nospaces] PASSED [ 67%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-bin1] PASSED [ 68%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-key-literal-40kb] PASSED [ 68%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-of-tables-2] PASSED [ 68%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-empty-key-name-1] PASSED [ 69%] tests/tests_for_tomliw/test_valid.py::test_valid[multiline-string] PASSED [ 69%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-9] PASSED [ 69%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-3] PASSED [ 70%] tests/tests_for_tomliw/test_valid.py::test_valid[right-curly-brace-after-boolean] PASSED [ 70%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-time-1] PASSED [ 70%] tests/tests_for_tomliw/test_valid.py::test_valid[table-array-table-array] PASSED [ 70%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-min] PASSED [ 71%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-14] PASSED [ 71%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-tab-multiline] PASSED [ 71%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-multiline-2] PASSED [ 72%] tests/tests_for_tomliw/test_valid.py::test_valid[unicode-escape] PASSED [ 72%] tests/tests_for_tomliw/test_valid.py::test_valid[arrays-nested] PASSED [ 72%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-table-inline-1000] PASSED [ 73%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-3] PASSED [ 73%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-comment-mid-string] PASSED [ 73%] tests/tests_for_tomliw/test_valid.py::test_valid[table-array-nest] PASSED [ 74%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-1] PASSED [ 74%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-5] PASSED [ 74%] tests/tests_for_tomliw/test_valid.py::test_valid[string-unicode-literal] PASSED [ 74%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-4] PASSED [ 75%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-empty-key-name-2] PASSED [ 75%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-6] PASSED [ 75%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-5] PASSED [ 76%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-5] PASSED [ 76%] tests/tests_for_tomliw/test_valid.py::test_valid[float-long] PASSED [ 76%] tests/tests_for_tomliw/test_valid.py::test_valid[key-dotted] PASSED [ 77%] tests/tests_for_tomliw/test_valid.py::test_valid[qa-array-inline-1000] PASSED [ 77%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-3] PASSED [ 77%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-12] PASSED [ 77%] tests/tests_for_tomliw/test_valid.py::test_valid[array-string-quote-comma-2] PASSED [ 78%] tests/tests_for_tomliw/test_valid.py::test_valid[float-underscore] PASSED [ 78%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-dotted-keys-1] PASSED [ 78%] tests/tests_for_tomliw/test_valid.py::test_valid[key-numeric] PASSED [ 79%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-inline-2] PASSED [ 79%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-8] PASSED [ 79%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-3] PASSED [ 80%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-4] PASSED [ 80%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-15] PASSED [ 80%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-9] PASSED [ 80%] tests/tests_for_tomliw/test_valid.py::test_valid[open-parent-table] PASSED [ 81%] tests/tests_for_tomliw/test_valid.py::test_valid[inline-table-multiline] PASSED [ 81%] tests/tests_for_tomliw/test_valid.py::test_valid[five-quotes] PASSED [ 81%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-oct2] PASSED [ 82%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-extend-dotted-object-1] PASSED [ 82%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-2] PASSED [ 82%] tests/tests_for_tomliw/test_valid.py::test_valid[table-array-many] PASSED [ 83%] tests/tests_for_tomliw/test_valid.py::test_valid[string-unicode-escape] PASSED [ 83%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-1] PASSED [ 83%] tests/tests_for_tomliw/test_valid.py::test_valid[array-string-quote-comma] PASSED [ 83%] tests/tests_for_tomliw/test_valid.py::test_valid[string-escapes] PASSED [ 84%] tests/tests_for_tomliw/test_valid.py::test_valid[array-nested] PASSED [ 84%] tests/tests_for_tomliw/test_valid.py::test_valid[arrays-hetergeneous] PASSED [ 84%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-oct1] PASSED [ 85%] tests/tests_for_tomliw/test_valid.py::test_valid[datetime-local-time] PASSED [ 85%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-5] PASSED [ 85%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-key-value-pair-7] PASSED [ 86%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-literal-multiline-4] PASSED [ 86%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-5] PASSED [ 86%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-2] PASSED [ 87%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-array-3] PASSED [ 87%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-float-11] PASSED [ 87%] tests/tests_for_tomliw/test_valid.py::test_valid[datetime-local] PASSED [ 87%] tests/tests_for_tomliw/test_valid.py::test_valid[table-with-pound] PASSED [ 88%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-table-1] PASSED [ 88%] tests/tests_for_tomliw/test_valid.py::test_valid[float-inf-and-nan] PASSED [ 88%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-date-time-1] PASSED [ 89%] tests/tests_for_tomliw/test_valid.py::test_valid[example] PASSED [ 89%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-int-3b] PASSED [ 89%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-basic-multiline-9] PASSED [ 90%] tests/tests_for_tomliw/test_valid.py::test_valid[bool] PASSED [ 90%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-newline-3] PASSED [ 90%] tests/tests_for_tomliw/test_valid.py::test_valid[spec-string-escape-5] PASSED [ 90%] tests/tests_for_tomliw/test_style.py::test_nested_keys PASSED [ 91%] tests/tests_for_tomliw/test_style.py::test_multiline PASSED [ 91%] tests/tests_for_tomliw/test_style.py::test_array_of_short_tables PASSED [ 91%] tests/tests_for_tomliw/test_style.py::test_multiline_in_aot PASSED [ 92%] tests/tests_for_tomliw/test_style.py::test_array_of_tables_containing_lists PASSED [ 92%] tests/tests_for_tomliw/test_style.py::test_newline_before_table PASSED [ 92%] tests/tests_for_tomliw/test_style.py::test_only_tables PASSED [ 93%] tests/tests_for_tomliw/test_style.py::test_array_of_long_tables PASSED [ 93%] tests/tests_for_tomliw/test_style.py::test_dont_write_redundant_tables PASSED [ 93%] tests/tests_for_tomliw/test_style.py::test_tricky_keys PASSED [ 93%] tests/tests_for_tomliw/test_style.py::test_non_trivial_nesting PASSED [ 94%] tests/tests_for_tomliw/test_style.py::test_table_with_empty_array PASSED [ 94%] tests/tests_for_tomliw/test_style.py::test_example_issue_12 PASSED [ 94%] tests/tests_for_tomliw/test_style.py::test_empty_doc PASSED [ 95%] tests/test_api.py::test_commutativity PASSED [ 95%] tests/test_api.py::test_decimal PASSED [ 95%] tests/test_api.py::test_numpy_ints PASSED [ 96%] tests/test_api.py::test_nonexistent PASSED [ 96%] tests/test_api.py::test_tuple PASSED [ 96%] tests/test_api.py::test_dump PASSED [ 96%] tests/test_api.py::test_pathlib[type] PASSED [ 97%] tests/test_api.py::test_array_sep[type] PASSED [ 97%] tests/test_api.py::test_deepcopy_timezone PASSED [ 97%] tests/test_api.py::test_numpy_floats PASSED [ 98%] tests/test_api.py::test_inline_dict FAILED [ 98%] tests/test_api.py::test_array_sep[instance_tab] PASSED [ 98%] tests/test_api.py::test_array_sep[instance] PASSED [ 99%] tests/test_api.py::test_pathlib[instance] PASSED [ 99%] tests/test_api.py::test_paths PASSED [ 99%] tests/test_api.py::test_bug_196 PASSED [100%] =================================== FAILURES =================================== _________________________________ test_decoder _________________________________ def test_decoder(): config = dedent("""\ [project] license = {file = "LICENSE"} """) > data = loads(config)["project"] tests/test_decoder.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = '[project]\nlicense = {file = "LICENSE"}\n', pos = 20 parse_float = , nest_lvl = 0 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError _____________________________ test_encoder[pep621] _____________________________ data = {'project': {'authors': [{'email': 'dominic@davis-foster.co.uk', 'name': 'Dominic Davis-Foster'}], 'description': 'Rec...e files in the given directory 🔎', 'dynamic': ['requires-python', 'classifiers', 'dependencies'], 'keywords': [], ...}} advanced_file_regression = @pytest.mark.parametrize( "data", [ pytest.param({"dotted.key": "string"}, id="dotted.key"), pytest.param({"key": "☃🚀📦"}, id="unicode"), pytest.param({"key": "string"}, id="string_value"), pytest.param({"key": ["list", 'double ""', "single ''"]}, id="list_value"), pytest.param({ "key": [ "insure", "auspicious", "neglect", "craven", "match", "worship", "wave", "languid", "bad", "news", "flashy", "recall", "mother", "festive", "cup", 'double ""', "single ''", "mixed '\"", "newline\n", "formfeed\f", "carriage_return\r", "backslash\\", "backspace\b", "tab\t", ] }, id="long_list"), pytest.param({"key": {"dict": "dict_value"}}, id="dict_value"), pytest.param(array_of_tables, id="array_of_tables"), pytest.param({"section": {"key": "string"}}, id="section_string_value"), pytest.param({"section": {"key": ["list"]}}, id="section_list_value"), pytest.param({"project": PEP621}, id="pep621"), ] ) def test_encoder(data: Dict[str, Any], advanced_file_regression: AdvancedFileRegressionFixture): as_toml = dumps(data, encoder=TomlEncoder()) advanced_file_regression.check(as_toml, extension=".toml") > assert dom_toml.loads(as_toml) == data tests/test_encoder.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) /usr/lib/python3/site-packages/tomli/_parser.py:712: in parse_value return parse_array(src, pos, parse_float, nest_lvl + 1) /usr/lib/python3/site-packages/tomli/_parser.py:504: in parse_array pos, val = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = '[project]\nname = "greppy"\nversion = "0.0.0"\ndescription = "Recursively grep over Python files in the files in the ...s-Foster" },]\ndynamic = [ "requires-python", "classifiers", "dependencies",]\n\n[project.license]\nfile = "LICENSE"\n' pos = 181, parse_float = , nest_lvl = 1 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError __________________________ test_encoder_inline_table ___________________________ advanced_file_regression = def test_encoder_inline_table(advanced_file_regression: AdvancedFileRegressionFixture): source = "[project]\nreadme = {file = 'README.rst', content-type = 'text/x-rst'}\n" advanced_file_regression.check( > dom_toml.dumps(dom_toml.loads(source), encoder=TomlEncoder(preserve=True)), extension=".toml" ) tests/test_encoder.py:94: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = "[project]\nreadme = {file = 'README.rst', content-type = 'text/x-rst'}\n" pos = 19, parse_float = , nest_lvl = 0 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError _______________________ test_encoder_inline_table_nested _______________________ advanced_file_regression = def test_encoder_inline_table_nested(advanced_file_regression: AdvancedFileRegressionFixture): source = "[project]\nreadme = {file = 'README.rst', nested = {content-type = 'text/x-rst'}}\n" advanced_file_regression.check( > dom_toml.dumps(dom_toml.loads(source), encoder=TomlEncoder(preserve=True)), extension=".toml" ) tests/test_encoder.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = "[project]\nreadme = {file = 'README.rst', nested = {content-type = 'text/x-rst'}}\n" pos = 19, parse_float = , nest_lvl = 0 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError ________________________ test_encoder[array_of_tables] _________________________ data = {'key': [{'dict1': 'dict1_value'}, {'dict2': 'dict2_value'}, {'dict3': 'dict3_value'}]} advanced_file_regression = @pytest.mark.parametrize( "data", [ pytest.param({"dotted.key": "string"}, id="dotted.key"), pytest.param({"key": "☃🚀📦"}, id="unicode"), pytest.param({"key": "string"}, id="string_value"), pytest.param({"key": ["list", 'double ""', "single ''"]}, id="list_value"), pytest.param({ "key": [ "insure", "auspicious", "neglect", "craven", "match", "worship", "wave", "languid", "bad", "news", "flashy", "recall", "mother", "festive", "cup", 'double ""', "single ''", "mixed '\"", "newline\n", "formfeed\f", "carriage_return\r", "backslash\\", "backspace\b", "tab\t", ] }, id="long_list"), pytest.param({"key": {"dict": "dict_value"}}, id="dict_value"), pytest.param(array_of_tables, id="array_of_tables"), pytest.param({"section": {"key": "string"}}, id="section_string_value"), pytest.param({"section": {"key": ["list"]}}, id="section_list_value"), pytest.param({"project": PEP621}, id="pep621"), ] ) def test_encoder(data: Dict[str, Any], advanced_file_regression: AdvancedFileRegressionFixture): as_toml = dumps(data, encoder=TomlEncoder()) advanced_file_regression.check(as_toml, extension=".toml") > assert dom_toml.loads(as_toml) == data tests/test_encoder.py:76: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) /usr/lib/python3/site-packages/tomli/_parser.py:712: in parse_value return parse_array(src, pos, parse_float, nest_lvl + 1) /usr/lib/python3/site-packages/tomli/_parser.py:504: in parse_array pos, val = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = 'key = [ { dict1 = "dict1_value" }, { dict2 = "dict2_value" }, { dict3 = "dict3_value" },]\n' pos = 8, parse_float = , nest_lvl = 1 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError __________________ test_parse_config_errors[urls_wrong_type] ___________________ config = '[project]\nname = "spam"\nversion = "2020.0.0"\nurls = {foo = 1234}' expects = match = "Invalid value type for 'project.urls.foo': expected , got " tmp_pathplus = PosixPathPlus('/usr/src/tmp/pytest-of-builder/pytest-0/test_parse_config_errors_urls_0') @pytest.mark.parametrize( "config, expects, match", [ pytest.param( f'{MINIMAL_CONFIG}\nkeywords = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.keywords\[0\]': expected , got ", id="keywords_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = 12345', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nclassifiers = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.classifiers\[0\]': expected , got ", id="classifiers_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndependencies = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.dependencies\[0\]': expected , got ", id="dependencies_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nurls = {{foo = 1234}}', TypeError, r"Invalid value type for 'project.urls.foo': expected , got ", id="urls_wrong_type" ), ] ) def test_parse_config_errors(config: str, expects: Type[Exception], match: str, tmp_pathplus: PathPlus): (tmp_pathplus / "pyproject.toml").write_clean(config) with pytest.raises(expects, match=match): > PEP621Parser().parse(load(tmp_pathplus / "pyproject.toml")["project"]) tests/test_parser.py:255: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:143: in load return loads( dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = '[project]\nname = "spam"\nversion = "2020.0.0"\nurls = {foo = 1234}\n' pos = 52, parse_float = , nest_lvl = 0 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError During handling of the above exception, another exception occurred: config = '[project]\nname = "spam"\nversion = "2020.0.0"\nurls = {foo = 1234}' expects = match = "Invalid value type for 'project.urls.foo': expected , got " tmp_pathplus = PosixPathPlus('/usr/src/tmp/pytest-of-builder/pytest-0/test_parse_config_errors_urls_0') @pytest.mark.parametrize( "config, expects, match", [ pytest.param( f'{MINIMAL_CONFIG}\nkeywords = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.keywords\[0\]': expected , got ", id="keywords_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = 12345', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nclassifiers = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.classifiers\[0\]': expected , got ", id="classifiers_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndependencies = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.dependencies\[0\]': expected , got ", id="dependencies_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nurls = {{foo = 1234}}', TypeError, r"Invalid value type for 'project.urls.foo': expected , got ", id="urls_wrong_type" ), ] ) def test_parse_config_errors(config: str, expects: Type[Exception], match: str, tmp_pathplus: PathPlus): (tmp_pathplus / "pyproject.toml").write_clean(config) > with pytest.raises(expects, match=match): E AssertionError: Regex pattern did not match. E Regex: "Invalid value type for 'project.urls.foo': expected , got " E Input: 'TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given' tests/test_parser.py:254: AssertionError __________________ test_parse_config_errors[urls_wrong_type] ___________________ config = '[project]\nname = "spam"\nversion = "2020.0.0"\nurls = {foo = 1234}' expects = match = "Invalid value type for 'project.urls.foo': expected , got " tmp_pathplus = PosixPathPlus('/usr/src/tmp/pytest-of-builder/pytest-0/test_parse_config_errors_urls_1') @pytest.mark.parametrize( "config, expects, match", [ pytest.param( f'{MINIMAL_CONFIG}\nkeywords = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.keywords\[0\]': expected , got ", id="keywords_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = 12345', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nclassifiers = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.classifiers\[0\]': expected , got ", id="classifiers_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndependencies = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.dependencies\[0\]': expected , got ", id="dependencies_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nurls = {{foo = 1234}}', TypeError, r"Invalid value type for 'project.urls.foo': expected , got ", id="urls_wrong_type" ), ] ) def test_parse_config_errors(config: str, expects: Type[Exception], match: str, tmp_pathplus: PathPlus): with pytest.raises(expects, match=match): > PEP621Parser().parse(dom_toml.loads(config)["project"], set_defaults=True) tests/test_parser_defaults.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = '[project]\nname = "spam"\nversion = "2020.0.0"\nurls = {foo = 1234}' pos = 52, parse_float = , nest_lvl = 0 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError During handling of the above exception, another exception occurred: config = '[project]\nname = "spam"\nversion = "2020.0.0"\nurls = {foo = 1234}' expects = match = "Invalid value type for 'project.urls.foo': expected , got " tmp_pathplus = PosixPathPlus('/usr/src/tmp/pytest-of-builder/pytest-0/test_parse_config_errors_urls_1') @pytest.mark.parametrize( "config, expects, match", [ pytest.param( f'{MINIMAL_CONFIG}\nkeywords = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.keywords\[0\]': expected , got ", id="keywords_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndescription = 12345', TypeError, r"Invalid type for 'project.description': expected , got ", id="description_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nclassifiers = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.classifiers\[0\]': expected , got ", id="classifiers_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\ndependencies = [1, 2, 3, 4, 5]', TypeError, r"Invalid type for 'project.dependencies\[0\]': expected , got ", id="dependencies_wrong_type" ), pytest.param( f'{MINIMAL_CONFIG}\nurls = {{foo = 1234}}', TypeError, r"Invalid value type for 'project.urls.foo': expected , got ", id="urls_wrong_type" ), ] ) def test_parse_config_errors(config: str, expects: Type[Exception], match: str, tmp_pathplus: PathPlus): > with pytest.raises(expects, match=match): E AssertionError: Regex pattern did not match. E Regex: "Invalid value type for 'project.urls.foo': expected , got " E Input: 'TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given' tests/test_parser_defaults.py:266: AssertionError _______________________________ test_inline_dict _______________________________ def test_inline_dict(): class TestDict(InlineTableDict): pass t = copy.deepcopy(TEST_DICT) t['d'] = TestDict() t['d']['x'] = "abc" > o: Dict[str, Any] = loads(dumps(t, encoder=TomlEncoder(preserve=True))) tests/test_api.py:80: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ dom_toml/__init__.py:125: in loads return decoder.loads(s) dom_toml/decoder.py:84: in loads return tomli.loads(s) /usr/lib/python3/site-packages/tomli/_parser.py:180: in loads pos = key_value_rule(src, pos, out, header, parse_float) /usr/lib/python3/site-packages/tomli/_parser.py:408: in key_value_rule pos, key, value = parse_key_value_pair(src, pos, parse_float, nest_lvl=0) /usr/lib/python3/site-packages/tomli/_parser.py:451: in parse_key_value_pair pos, value = parse_value(src, pos, parse_float, nest_lvl) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src = 'd = { x = "abc" }\n\n[a]\nb = 1\nc = 2\n', pos = 4 parse_float = , nest_lvl = 0 def parse_value( # noqa: C901 src: str, pos: Pos, parse_float: ParseFloat, nest_lvl: int ) -> tuple[Pos, Any]: if nest_lvl > MAX_INLINE_NESTING: # Pure Python should have raised RecursionError already. # This ensures mypyc binaries eventually do the same. raise RecursionError( # pragma: no cover "TOML inline arrays/tables are nested more than the allowed" f" {MAX_INLINE_NESTING} levels" ) try: char: str | None = src[pos] except IndexError: char = None # IMPORTANT: order conditions based on speed of checking and likelihood # Basic strings if char == '"': if src.startswith('"""', pos): return parse_multiline_str(src, pos, literal=False) return parse_one_line_basic_str(src, pos) # Literal strings if char == "'": if src.startswith("'''", pos): return parse_multiline_str(src, pos, literal=True) return parse_literal_str(src, pos) # Booleans if char == "t": if src.startswith("true", pos): return pos + 4, True if char == "f": if src.startswith("false", pos): return pos + 5, False # Arrays if char == "[": return parse_array(src, pos, parse_float, nest_lvl + 1) # Inline tables if char == "{": > return parse_inline_table(src, pos, parse_float, nest_lvl + 1) E TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positional arguments but 4 were given /usr/lib/python3/site-packages/tomli/_parser.py:716: TypeError ============================= slowest 25 durations ============================= 0.01s call tests/tests_for_tomliw/test_valid.py::test_valid[qa-table-inline-1000] 0.01s call tests/tests_for_tomliw/test_valid.py::test_valid[qa-scalar-literal-multiline-40kb] 0.01s call tests/tests_for_tomliw/test_valid.py::test_valid[qa-key-string-40kb] 0.01s call tests/tests_for_tomliw/test_valid.py::test_valid[qa-scalar-string-40kb] 0.01s call tests/tests_for_tomliw/test_valid.py::test_valid[qa-array-inline-1000] (20 durations < 0.005s hidden. Use -vv to show these durations.) =========================== short test summary info ============================ FAILED tests/test_decoder.py::test_decoder - TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positio... FAILED tests/test_encoder.py::test_encoder[pep621] - TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positio... FAILED tests/test_encoder.py::test_encoder_inline_table - TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positio... FAILED tests/test_encoder.py::test_encoder_inline_table_nested - TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positio... FAILED tests/test_encoder.py::test_encoder[array_of_tables] - TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positio... FAILED tests/test_parser.py::test_parse_config_errors[urls_wrong_type] - AssertionError: Regex pattern did not match. FAILED tests/test_parser_defaults.py::test_parse_config_errors[urls_wrong_type] - AssertionError: Regex pattern did not match. FAILED tests/test_api.py::test_inline_dict - TypeError: TomlDecoder.loads.._parse_inline_table() takes 3 positio... ======================== 8 failed, 323 passed in 0.71s ========================= INFO : Command's result: FAILURE INFO : Command's error: Command '['python3', '-m', 'pytest', '-vra']' returned non-zero exit status 1. error: Bad exit status from /usr/src/tmp/rpm-tmp.64670 (%check) RPM build errors: File /usr/src/RPM/SOURCES/python3-module-dom-toml-2.0.0-alt.patch is smaller than 8 bytes Bad exit status from /usr/src/tmp/rpm-tmp.64670 (%check) Command exited with non-zero status 1 2.84user 0.77system 0:03.24elapsed 111%CPU (0avgtext+0avgdata 53148maxresident)k 0inputs+0outputs (0major+150827minor)pagefaults 0swaps hsh-rebuild: rebuild of `python3-module-dom-toml-2.0.0-alt1.src.rpm' failed. Command exited with non-zero status 1 3.81user 2.85system 0:15.29elapsed 43%CPU (0avgtext+0avgdata 137880maxresident)k 19968inputs+0outputs (0major+277873minor)pagefaults 0swaps