0s autopkgtest [13:08:06]: starting date and time: 2025-11-17 13:08:06+0000 0s autopkgtest [13:08:06]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [13:08:06]: host juju-7f2275-prod-proposed-migration-environment-20; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.pmz4rzxz/out --timeout-copy=6000 --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:python3-defaults --apt-upgrade csvkit --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=python3-defaults/3.13.7-2 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-20@bos03-ppc64el-8.secgroup --name adt-resolute-ppc64el-csvkit-20251117-130806-juju-7f2275-prod-proposed-migration-environment-20-d98c8707-66c6-4e61-9086-d503caefc37e --image adt/ubuntu-resolute-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-20 --net-id=net_prod-proposed-migration-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-ppc64el-csvkit-20251117-130806-juju-7f2275-prod-proposed-migration-environment-20-d98c8707-66c6-4e61-9086-d503caefc37e from image adt/ubuntu-resolute-ppc64el-server-20251117.img (UUID c6f5b741-c77a-45db-84cb-f00b40e77676)... 78s autopkgtest [13:09:24]: testbed dpkg architecture: ppc64el 78s autopkgtest [13:09:24]: testbed apt version: 3.1.11 79s autopkgtest [13:09:25]: @@@@@@@@@@@@@@@@@@@@ test bed setup 79s autopkgtest [13:09:25]: testbed release detected to be: None 80s autopkgtest [13:09:26]: updating testbed package index (apt update) 80s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [87.8 kB] 80s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 80s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 80s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 80s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [81.1 kB] 80s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [22.9 kB] 80s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [868 kB] 81s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [9848 B] 81s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [140 kB] 81s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/restricted ppc64el Packages [940 B] 81s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [562 kB] 81s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [11.0 kB] 81s Fetched 1784 kB in 1s (1460 kB/s) 82s Reading package lists... 83s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 83s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 83s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 83s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 84s Reading package lists... 84s Reading package lists... 84s Building dependency tree... 84s Reading state information... 84s Calculating upgrade... 84s The following packages will be upgraded: 84s libpython3-stdlib python3 python3-minimal usbutils 84s 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 84s Need to get 154 kB of archives. 84s After this operation, 0 B of additional disk space will be used. 84s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-minimal ppc64el 3.13.7-2 [27.8 kB] 84s Get:2 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3 ppc64el 3.13.7-2 [23.9 kB] 84s Get:3 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libpython3-stdlib ppc64el 3.13.7-2 [10.6 kB] 84s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el usbutils ppc64el 1:019-1 [91.5 kB] 85s dpkg-preconfigure: unable to re-open stdin: No such file or directory 85s Fetched 154 kB in 0s (353 kB/s) 85s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 81022 files and directories currently installed.) 85s Preparing to unpack .../python3-minimal_3.13.7-2_ppc64el.deb ... 85s Unpacking python3-minimal (3.13.7-2) over (3.13.7-1) ... 85s Setting up python3-minimal (3.13.7-2) ... 85s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 81022 files and directories currently installed.) 86s Preparing to unpack .../python3_3.13.7-2_ppc64el.deb ... 86s running python pre-rtupdate hooks for python3.13... 86s Unpacking python3 (3.13.7-2) over (3.13.7-1) ... 86s Preparing to unpack .../libpython3-stdlib_3.13.7-2_ppc64el.deb ... 86s Unpacking libpython3-stdlib:ppc64el (3.13.7-2) over (3.13.7-1) ... 86s Preparing to unpack .../usbutils_1%3a019-1_ppc64el.deb ... 86s Unpacking usbutils (1:019-1) over (1:018-2) ... 86s Setting up usbutils (1:019-1) ... 86s Setting up libpython3-stdlib:ppc64el (3.13.7-2) ... 86s Setting up python3 (3.13.7-2) ... 86s running python rtupdate hooks for python3.13... 86s running python post-rtupdate hooks for python3.13... 86s Processing triggers for man-db (2.13.1-1) ... 88s autopkgtest [13:09:34]: upgrading testbed (apt dist-upgrade and autopurge) 88s Reading package lists... 88s Building dependency tree... 88s Reading state information... 88s Calculating upgrade... 88s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 88s Reading package lists... 89s Building dependency tree... 89s Reading state information... 89s Solving dependencies... 89s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 91s autopkgtest [13:09:37]: testbed running kernel: Linux 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:02:41 UTC 2025 91s autopkgtest [13:09:37]: @@@@@@@@@@@@@@@@@@@@ apt-source csvkit 95s Get:1 http://ftpmaster.internal/ubuntu resolute/universe csvkit 2.0.1-3 (dsc) [2475 B] 95s Get:2 http://ftpmaster.internal/ubuntu resolute/universe csvkit 2.0.1-3 (tar) [4005 kB] 95s Get:3 http://ftpmaster.internal/ubuntu resolute/universe csvkit 2.0.1-3 (diff) [5500 B] 95s gpgv: Signature made Mon Aug 19 04:53:25 2024 UTC 95s gpgv: using RSA key E50AFD55ADD27AAB97163A8B21D20589974B3E96 95s gpgv: issuer "tmancill@debian.org" 95s gpgv: Can't check signature: No public key 95s dpkg-source: warning: cannot verify inline signature for ./csvkit_2.0.1-3.dsc: no acceptable signature found 95s autopkgtest [13:09:41]: testing package csvkit version 2.0.1-3 95s autopkgtest [13:09:41]: build not needed 97s autopkgtest [13:09:43]: test command1: preparing testbed 98s Reading package lists... 98s Building dependency tree... 98s Reading state information... 98s Solving dependencies... 98s The following NEW packages will be installed: 98s libpython3.14-minimal libpython3.14-stdlib libxslt1.1 python3-agate 98s python3-agatedbf python3-agateexcel python3-agatesql python3-all 98s python3-csvkit python3-dbfread python3-et-xmlfile python3-greenlet 98s python3-iniconfig python3-isodate python3-leather python3-lxml 98s python3-olefile python3-openpyxl python3-parsedatetime python3-pluggy 98s python3-pytest python3-pytimeparse python3-slugify python3-sqlalchemy 98s python3-text-unidecode python3-xlrd python3.14 python3.14-minimal 98s 0 upgraded, 28 newly installed, 0 to remove and 0 not upgraded. 98s Need to get 11.8 MB of archives. 98s After this operation, 55.4 MB of additional disk space will be used. 98s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpython3.14-minimal ppc64el 3.14.0-4 [908 kB] 99s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3.14-minimal ppc64el 3.14.0-4 [2705 kB] 99s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpython3.14-stdlib ppc64el 3.14.0-4 [2446 kB] 99s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el libxslt1.1 ppc64el 1.1.43-0.3 [190 kB] 99s Get:5 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-isodate all 0.7.2-2 [18.8 kB] 99s Get:6 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-leather all 0.4.0-1 [19.8 kB] 99s Get:7 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-parsedatetime all 2.6-3 [32.8 kB] 99s Get:8 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytimeparse all 1.1.5-4 [8500 B] 99s Get:9 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-text-unidecode all 1.3-2 [57.5 kB] 99s Get:10 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-slugify all 8.0.4-4 [14.2 kB] 99s Get:11 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-agate all 1.13.0-1 [48.4 kB] 99s Get:12 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-dbfread all 2.0.7-5 [15.4 kB] 99s Get:13 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-agatedbf all 0.2.2-2 [4264 B] 99s Get:14 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-olefile all 0.47-1 [37.1 kB] 99s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-et-xmlfile all 2.0.0-1 [79.4 kB] 99s Get:16 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-lxml ppc64el 6.0.2-1 [2452 kB] 99s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-openpyxl all 3.1.5+dfsg-3 [153 kB] 99s Get:18 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-xlrd all 2.0.2-2 [83.4 kB] 99s Get:19 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-agateexcel all 0.4.1-1 [7412 B] 99s Get:20 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-greenlet ppc64el 3.2.4-2 [189 kB] 99s Get:21 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3-sqlalchemy all 2.0.40+ds1-2 [1220 kB] 99s Get:22 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-agatesql all 0.7.2-1 [8358 B] 99s Get:23 http://ftpmaster.internal/ubuntu resolute/main ppc64el python3.14 ppc64el 3.14.0-4 [805 kB] 99s Get:24 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el python3-all ppc64el 3.13.7-2 [892 B] 99s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-csvkit all 2.0.1-3 [30.2 kB] 99s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-iniconfig all 2.1.0-1 [6840 B] 99s Get:27 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pluggy all 1.6.0-1 [21.0 kB] 99s Get:28 http://ftpmaster.internal/ubuntu resolute/universe ppc64el python3-pytest all 8.3.5-2 [252 kB] 100s Fetched 11.8 MB in 1s (8639 kB/s) 100s Selecting previously unselected package libpython3.14-minimal:ppc64el. 100s (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 81022 files and directories currently installed.) 100s Preparing to unpack .../00-libpython3.14-minimal_3.14.0-4_ppc64el.deb ... 100s Unpacking libpython3.14-minimal:ppc64el (3.14.0-4) ... 100s Selecting previously unselected package python3.14-minimal. 100s Preparing to unpack .../01-python3.14-minimal_3.14.0-4_ppc64el.deb ... 100s Unpacking python3.14-minimal (3.14.0-4) ... 100s Selecting previously unselected package libpython3.14-stdlib:ppc64el. 100s Preparing to unpack .../02-libpython3.14-stdlib_3.14.0-4_ppc64el.deb ... 100s Unpacking libpython3.14-stdlib:ppc64el (3.14.0-4) ... 100s Selecting previously unselected package libxslt1.1:ppc64el. 100s Preparing to unpack .../03-libxslt1.1_1.1.43-0.3_ppc64el.deb ... 100s Unpacking libxslt1.1:ppc64el (1.1.43-0.3) ... 100s Selecting previously unselected package python3-isodate. 100s Preparing to unpack .../04-python3-isodate_0.7.2-2_all.deb ... 100s Unpacking python3-isodate (0.7.2-2) ... 100s Selecting previously unselected package python3-leather. 100s Preparing to unpack .../05-python3-leather_0.4.0-1_all.deb ... 100s Unpacking python3-leather (0.4.0-1) ... 100s Selecting previously unselected package python3-parsedatetime. 100s Preparing to unpack .../06-python3-parsedatetime_2.6-3_all.deb ... 100s Unpacking python3-parsedatetime (2.6-3) ... 100s Selecting previously unselected package python3-pytimeparse. 100s Preparing to unpack .../07-python3-pytimeparse_1.1.5-4_all.deb ... 100s Unpacking python3-pytimeparse (1.1.5-4) ... 100s Selecting previously unselected package python3-text-unidecode. 100s Preparing to unpack .../08-python3-text-unidecode_1.3-2_all.deb ... 100s Unpacking python3-text-unidecode (1.3-2) ... 100s Selecting previously unselected package python3-slugify. 100s Preparing to unpack .../09-python3-slugify_8.0.4-4_all.deb ... 100s Unpacking python3-slugify (8.0.4-4) ... 100s Selecting previously unselected package python3-agate. 100s Preparing to unpack .../10-python3-agate_1.13.0-1_all.deb ... 100s Unpacking python3-agate (1.13.0-1) ... 100s Selecting previously unselected package python3-dbfread. 100s Preparing to unpack .../11-python3-dbfread_2.0.7-5_all.deb ... 100s Unpacking python3-dbfread (2.0.7-5) ... 100s Selecting previously unselected package python3-agatedbf. 100s Preparing to unpack .../12-python3-agatedbf_0.2.2-2_all.deb ... 100s Unpacking python3-agatedbf (0.2.2-2) ... 100s Selecting previously unselected package python3-olefile. 100s Preparing to unpack .../13-python3-olefile_0.47-1_all.deb ... 100s Unpacking python3-olefile (0.47-1) ... 100s Selecting previously unselected package python3-et-xmlfile. 100s Preparing to unpack .../14-python3-et-xmlfile_2.0.0-1_all.deb ... 100s Unpacking python3-et-xmlfile (2.0.0-1) ... 100s Selecting previously unselected package python3-lxml:ppc64el. 100s Preparing to unpack .../15-python3-lxml_6.0.2-1_ppc64el.deb ... 100s Unpacking python3-lxml:ppc64el (6.0.2-1) ... 100s Selecting previously unselected package python3-openpyxl. 100s Preparing to unpack .../16-python3-openpyxl_3.1.5+dfsg-3_all.deb ... 100s Unpacking python3-openpyxl (3.1.5+dfsg-3) ... 100s Selecting previously unselected package python3-xlrd. 100s Preparing to unpack .../17-python3-xlrd_2.0.2-2_all.deb ... 100s Unpacking python3-xlrd (2.0.2-2) ... 100s Selecting previously unselected package python3-agateexcel. 100s Preparing to unpack .../18-python3-agateexcel_0.4.1-1_all.deb ... 100s Unpacking python3-agateexcel (0.4.1-1) ... 100s Selecting previously unselected package python3-greenlet. 100s Preparing to unpack .../19-python3-greenlet_3.2.4-2_ppc64el.deb ... 100s Unpacking python3-greenlet (3.2.4-2) ... 100s Selecting previously unselected package python3-sqlalchemy. 100s Preparing to unpack .../20-python3-sqlalchemy_2.0.40+ds1-2_all.deb ... 100s Unpacking python3-sqlalchemy (2.0.40+ds1-2) ... 100s Selecting previously unselected package python3-agatesql. 100s Preparing to unpack .../21-python3-agatesql_0.7.2-1_all.deb ... 100s Unpacking python3-agatesql (0.7.2-1) ... 100s Selecting previously unselected package python3.14. 100s Preparing to unpack .../22-python3.14_3.14.0-4_ppc64el.deb ... 100s Unpacking python3.14 (3.14.0-4) ... 100s Selecting previously unselected package python3-all. 100s Preparing to unpack .../23-python3-all_3.13.7-2_ppc64el.deb ... 100s Unpacking python3-all (3.13.7-2) ... 100s Selecting previously unselected package python3-csvkit. 100s Preparing to unpack .../24-python3-csvkit_2.0.1-3_all.deb ... 100s Unpacking python3-csvkit (2.0.1-3) ... 100s Selecting previously unselected package python3-iniconfig. 100s Preparing to unpack .../25-python3-iniconfig_2.1.0-1_all.deb ... 100s Unpacking python3-iniconfig (2.1.0-1) ... 100s Selecting previously unselected package python3-pluggy. 100s Preparing to unpack .../26-python3-pluggy_1.6.0-1_all.deb ... 100s Unpacking python3-pluggy (1.6.0-1) ... 100s Selecting previously unselected package python3-pytest. 100s Preparing to unpack .../27-python3-pytest_8.3.5-2_all.deb ... 100s Unpacking python3-pytest (8.3.5-2) ... 101s Setting up python3-iniconfig (2.1.0-1) ... 101s Setting up python3-parsedatetime (2.6-3) ... 101s Setting up python3-dbfread (2.0.7-5) ... 101s Setting up python3-olefile (0.47-1) ... 101s Setting up libpython3.14-minimal:ppc64el (3.14.0-4) ... 101s Setting up python3-pytimeparse (1.1.5-4) ... 102s Setting up python3-isodate (0.7.2-2) ... 102s Setting up python3-leather (0.4.0-1) ... 102s Setting up python3-greenlet (3.2.4-2) ... 102s Setting up python3-pluggy (1.6.0-1) ... 102s Setting up python3-text-unidecode (1.3-2) ... 102s Setting up libxslt1.1:ppc64el (1.1.43-0.3) ... 102s Setting up python3-et-xmlfile (2.0.0-1) ... 103s Setting up python3-xlrd (2.0.2-2) ... 103s Setting up python3.14-minimal (3.14.0-4) ... 104s Setting up libpython3.14-stdlib:ppc64el (3.14.0-4) ... 104s Setting up python3-pytest (8.3.5-2) ... 105s Setting up python3-sqlalchemy (2.0.40+ds1-2) ... 107s Setting up python3-slugify (8.0.4-4) ... 107s Setting up python3-lxml:ppc64el (6.0.2-1) ... 107s Setting up python3.14 (3.14.0-4) ... 109s Setting up python3-agate (1.13.0-1) ... 109s Setting up python3-agatesql (0.7.2-1) ... 109s Setting up python3-all (3.13.7-2) ... 109s Setting up python3-agatedbf (0.2.2-2) ... 109s Setting up python3-openpyxl (3.1.5+dfsg-3) ... 110s Setting up python3-agateexcel (0.4.1-1) ... 110s Setting up python3-csvkit (2.0.1-3) ... 110s Processing triggers for systemd (257.9-0ubuntu2) ... 110s Processing triggers for man-db (2.13.1-1) ... 111s Processing triggers for libc-bin (2.42-2ubuntu2) ... 112s autopkgtest [13:09:58]: test command1: set -e ; cp -r examples tests "$AUTOPKGTEST_TMP" ; for py in $(py3versions -r 2>/dev/null) ; do cd "$AUTOPKGTEST_TMP" ; echo "Testing with $py:" ; $py -m pytest -v ; done 112s autopkgtest [13:09:58]: test command1: [----------------------- 112s Testing with python3.14: 112s ============================= test session starts ============================== 112s platform linux -- Python 3.14.0, pytest-8.3.5, pluggy-1.6.0 -- /usr/bin/python3.14 112s cachedir: .pytest_cache 112s rootdir: /tmp/autopkgtest.XHxFkl/autopkgtest_tmp 112s plugins: typeguard-4.4.2 113s collecting ... collected 339 items 113s 113s tests/test_cleanup.py::TestCleanup::test_fix_rows PASSED [ 0%] 113s tests/test_cleanup.py::TestCleanup::test_real_world_join_fail PASSED [ 0%] 113s tests/test_cli.py::TestCli::test_match_column_identifier_numeric PASSED [ 0%] 113s tests/test_cli.py::TestCli::test_match_column_identifier_string PASSED [ 1%] 113s tests/test_cli.py::TestCli::test_match_column_which_could_be_integer_name_is_treated_as_positional_id PASSED [ 1%] 113s tests/test_cli.py::TestCli::test_parse_column_identifiers PASSED [ 1%] 113s tests/test_cli.py::TestCli::test_range_notation PASSED [ 2%] 113s tests/test_cli.py::TestCli::test_range_notation_open_ended PASSED [ 2%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_csv PASSED [ 2%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_dbf PASSED [ 2%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_fixed PASSED [ 3%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_invalid PASSED [ 3%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_json PASSED [ 3%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_xls PASSED [ 4%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_xls_uppercase PASSED [ 4%] 113s tests/test_convert/test_convert.py::TestConvert::test_guess_xlsx PASSED [ 4%] 113s tests/test_convert/test_fixed.py::TestFixed::test_fixed PASSED [ 5%] 113s tests/test_convert/test_fixed.py::TestFixed::test_fixed_no_inference PASSED [ 5%] 113s tests/test_convert/test_fixed.py::TestFixed::test_fixed_skip_lines PASSED [ 5%] 113s tests/test_convert/test_fixed.py::TestFixed::test_fixed_streaming PASSED [ 5%] 113s tests/test_convert/test_fixed.py::TestFixed::test_one_based_row_decoder PASSED [ 6%] 113s tests/test_convert/test_fixed.py::TestFixed::test_schema_decoder_in_action PASSED [ 6%] 113s tests/test_convert/test_fixed.py::TestFixed::test_schema_decoder_init PASSED [ 6%] 113s tests/test_convert/test_fixed.py::TestFixed::test_schematic_line_parser PASSED [ 7%] 113s tests/test_grep.py::TestGrep::test_any_match PASSED [ 7%] 113s tests/test_grep.py::TestGrep::test_any_match_and_inverse PASSED [ 7%] 113s tests/test_grep.py::TestGrep::test_column_names_in_patterns PASSED [ 7%] 113s tests/test_grep.py::TestGrep::test_duplicate_column_ids_in_patterns PASSED [ 8%] 113s tests/test_grep.py::TestGrep::test_index_out_of_range PASSED [ 8%] 113s tests/test_grep.py::TestGrep::test_inverse PASSED [ 8%] 113s tests/test_grep.py::TestGrep::test_mixed_indices_and_column_names_in_patterns PASSED [ 9%] 113s tests/test_grep.py::TestGrep::test_multiline PASSED [ 9%] 113s tests/test_grep.py::TestGrep::test_no_header PASSED [ 9%] 113s tests/test_grep.py::TestGrep::test_pattern PASSED [ 10%] 113s tests/test_grep.py::TestGrep::test_regex PASSED [ 10%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_changes_character_encoding PASSED [ 10%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_changes_line_endings PASSED [ 10%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_empty PASSED [ 11%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_empty_columns PASSED [ 11%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_empty_columns_long_row PASSED [ 11%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_empty_columns_short_row PASSED [ 12%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_empty_columns_zero PASSED [ 12%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_enable_all_checks PASSED [ 12%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_fill_short_rows PASSED [ 12%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_fill_short_rows_separator PASSED [ 13%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_header_normalize_space PASSED [ 13%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_join_short_rows PASSED [ 13%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_join_short_rows_separator PASSED [ 14%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_label PASSED [ 14%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_label_default PASSED [ 14%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_label_default_stdin PASSED [ 15%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_launch_new_instance PASSED [ 15%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_no_header_row PASSED [ 15%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_options FAILED [ 15%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_removes_bom PASSED [ 16%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_removes_optional_quote_characters PASSED [ 16%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_simple PASSED [ 16%] 113s tests/test_utilities/test_csvclean.py::TestCSVClean::test_skip_lines PASSED [ 17%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_delete_empty PASSED [ 17%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_empty PASSED [ 17%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_exclude PASSED [ 17%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_include_and_exclude PASSED [ 18%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_invalid_column PASSED [ 18%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_invalid_options PASSED [ 18%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_launch_new_instance PASSED [ 19%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_linenumbers PASSED [ 19%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_names PASSED [ 19%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_names_with_skip_lines PASSED [ 20%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_no_header_row PASSED [ 20%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_null_byte PASSED [ 20%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_ragged PASSED [ 20%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_simple PASSED [ 21%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_skip_lines PASSED [ 21%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_truncate PASSED [ 21%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_unicode PASSED [ 22%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_with_bzip2 PASSED [ 22%] 113s tests/test_utilities/test_csvcut.py::TestCSVCut::test_with_gzip PASSED [ 22%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_asv PASSED [ 23%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_delimiter PASSED [ 23%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_doublequote PASSED [ 23%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_empty PASSED [ 23%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_escapechar PASSED [ 24%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_launch_new_instance PASSED [ 24%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_linenumbers PASSED [ 24%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_lineterminator PASSED [ 25%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_no_header_row PASSED [ 25%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_quotechar PASSED [ 25%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_skip_header PASSED [ 25%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_skip_header_no_header_row PASSED [ 26%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_skip_lines PASSED [ 26%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormat::test_tabs PASSED [ 26%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_asv PASSED [ 27%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_delimiter PASSED [ 27%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_doublequote PASSED [ 27%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_empty PASSED [ 28%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_escapechar PASSED [ 28%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_launch_new_instance PASSED [ 28%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_linenumbers PASSED [ 28%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_lineterminator PASSED [ 29%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_locale PASSED [ 29%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_no_header_row PASSED [ 29%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_quotechar PASSED [ 30%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_skip_header PASSED [ 30%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_skip_header_no_header_row PASSED [ 30%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_skip_lines PASSED [ 30%] 113s tests/test_utilities/test_csvformat.py::TestCSVFormatQuoteNonNumeric::test_tabs PASSED [ 31%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_any_match PASSED [ 31%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_empty PASSED [ 31%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_invalid_column PASSED [ 32%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_invalid_options PASSED [ 32%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_invert_match PASSED [ 32%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_kwargs_with_line_numbers PASSED [ 33%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_launch_new_instance PASSED [ 33%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match PASSED [ 33%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match_utf8 PASSED [ 33%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match_utf8_bom PASSED [ 34%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_match_with_line_numbers PASSED [ 34%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_names PASSED [ 34%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_no_match PASSED [ 35%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_options FAILED [ 35%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_re_match PASSED [ 35%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_re_match_utf8 PASSED [ 35%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_skip_lines PASSED [ 36%] 113s tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_string_match PASSED [ 36%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_blanks PASSED [ 36%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_empty PASSED [ 37%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_inner PASSED [ 37%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_join_options FAILED [ 37%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_launch_new_instance PASSED [ 38%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_left PASSED [ 38%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_left_short_columns PASSED [ 38%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_blanks PASSED [ 38%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_header_row PASSED [ 39%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_inference PASSED [ 39%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_options FAILED [ 39%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_outer PASSED [ 40%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_right PASSED [ 40%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_right_indices PASSED [ 40%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_sequential PASSED [ 41%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_single PASSED [ 41%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_sniff_limit_no_limit PASSED [ 41%] 113s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_sniff_limit_zero_limit PASSED [ 41%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_blanks PASSED [ 42%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_duplicate_keys PASSED [ 42%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_empty PASSED [ 42%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_point PASSED [ 43%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_shape PASSED [ 43%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_with_crs PASSED [ 43%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_with_id PASSED [ 43%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_geojson_with_no_bbox PASSED [ 44%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_indentation PASSED [ 44%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_keying PASSED [ 44%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_latlon_options FAILED [ 45%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_launch_new_instance PASSED [ 45%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndgeojson PASSED [ 45%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndgeojson_streaming PASSED [ 46%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndjson PASSED [ 46%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_ndjson_streaming PASSED [ 46%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_no_blanks PASSED [ 46%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_no_header_row PASSED [ 47%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_no_inference PASSED [ 47%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_options FAILED [ 47%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_simple PASSED [ 48%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_sniff_limit PASSED [ 48%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_tsv PASSED [ 48%] 113s tests/test_utilities/test_csvjson.py::TestCSVJSON::test_tsv_streaming PASSED [ 48%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_blanks PASSED [ 49%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_empty PASSED [ 49%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_encoding PASSED [ 49%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_launch_new_instance PASSED [ 50%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_linenumbers PASSED [ 50%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_column_width PASSED [ 50%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_columns PASSED [ 51%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_precision PASSED [ 51%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_precision_no_number_ellipsis PASSED [ 51%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_max_rows PASSED [ 51%] 113s tests/test_utilities/test_csvlook.py::TestCSVLook::test_no_blanks PASSED [ 52%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_no_header_row PASSED [ 52%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_no_inference PASSED [ 52%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_no_number_ellipsis PASSED [ 53%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_runs PASSED [ 53%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_simple PASSED [ 53%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_sniff_limit_no_limit PASSED [ 53%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_sniff_limit_zero_limit PASSED [ 54%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_stdin PASSED [ 54%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_unicode PASSED [ 54%] 114s tests/test_utilities/test_csvlook.py::TestCSVLook::test_unicode_bom PASSED [ 55%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_blanks PASSED [ 55%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_empty PASSED [ 55%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_encoding PASSED [ 56%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_ignore_case PASSED [ 56%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_invalid_column PASSED [ 56%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_invalid_options PASSED [ 56%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_launch_new_instance PASSED [ 57%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_names PASSED [ 57%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_no_blanks PASSED [ 57%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_no_header_row PASSED [ 58%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_no_inference PASSED [ 58%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_runs PASSED [ 58%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_sort_date PASSED [ 58%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_sort_string_reverse PASSED [ 59%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_sort_t_and_nulls PASSED [ 59%] 114s tests/test_utilities/test_csvsort.py::TestCSVSort::test_stdin PASSED [ 59%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_before_after_insert PASSED [ 60%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_blanks PASSED [ 60%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_create_if_not_exists PASSED [ 60%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_create_table PASSED [ 61%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_empty PASSED [ 61%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_insert_options FAILED [ 61%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_launch_new_instance PASSED [ 61%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_linenumbers PASSED [ 62%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_blanks PASSED [ 62%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_create_if_not_exists PASSED [ 62%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_header_row PASSED [ 63%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_inference PASSED [ 63%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_no_prefix_unique_constraint PASSED [ 63%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_options FAILED [ 64%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_prefix_unique_constraint PASSED [ 64%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query PASSED [ 64%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_empty PASSED [ 64%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_file PASSED [ 65%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_text PASSED [ 65%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_query_update PASSED [ 65%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_stdin PASSED [ 66%] 114s tests/test_utilities/test_csvsql.py::TestCSVSQL::test_stdin_and_filename PASSED [ 66%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_empty PASSED [ 66%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_explicit_grouping PASSED [ 66%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_filenames_grouping PASSED [ 67%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_launch_new_instance PASSED [ 67%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack PASSED [ 67%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack_col PASSED [ 68%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack_col_ragged PASSED [ 68%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_multiple_file_stack_col_ragged_stdin PASSED [ 68%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_options FAILED [ 69%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_single_file_stack PASSED [ 69%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_skip_lines PASSED [ 69%] 114s tests/test_utilities/test_csvstack.py::TestCSVStack::test_skip_lines_stdin PASSED [ 69%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_empty PASSED [ 70%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_explicit_grouping PASSED [ 70%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_filenames_grouping PASSED [ 70%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_grouped_filenames PASSED [ 71%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_grouped_filenames_and_named_column PASSED [ 71%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_grouped_manual_and_named_column PASSED [ 71%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_launch_new_instance PASSED [ 71%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack PASSED [ 72%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack_col PASSED [ 72%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack_col_ragged PASSED [ 72%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_multiple_file_stack_col_ragged_stdin PASSED [ 73%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_no_header_row_basic PASSED [ 73%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_no_header_row_basic_stdin PASSED [ 73%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_options FAILED [ 74%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_single_file_stack PASSED [ 74%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_skip_lines PASSED [ 74%] 114s tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_skip_lines_stdin PASSED [ 74%] 114s tests/test_utilities/test_csvstat.py::TestCSVStat::test_columns PASSED [ 75%] 114s tests/test_utilities/test_csvstat.py::TestCSVStat::test_count_only PASSED [ 75%] 115s tests/test_utilities/test_csvstat.py::TestCSVStat::test_csv PASSED [ 75%] 116s tests/test_utilities/test_csvstat.py::TestCSVStat::test_csv_columns PASSED [ 76%] 116s tests/test_utilities/test_csvstat.py::TestCSVStat::test_decimal_format PASSED [ 76%] 116s tests/test_utilities/test_csvstat.py::TestCSVStat::test_empty PASSED [ 76%] 116s tests/test_utilities/test_csvstat.py::TestCSVStat::test_encoding PASSED [ 76%] 117s tests/test_utilities/test_csvstat.py::TestCSVStat::test_format_options FAILED [ 77%] 118s tests/test_utilities/test_csvstat.py::TestCSVStat::test_freq PASSED [ 77%] 119s tests/test_utilities/test_csvstat.py::TestCSVStat::test_freq_count PASSED [ 77%] 120s tests/test_utilities/test_csvstat.py::TestCSVStat::test_freq_list PASSED [ 78%] 120s tests/test_utilities/test_csvstat.py::TestCSVStat::test_invalid_column PASSED [ 78%] 120s tests/test_utilities/test_csvstat.py::TestCSVStat::test_invalid_options PASSED [ 78%] 121s tests/test_utilities/test_csvstat.py::TestCSVStat::test_json PASSED [ 79%] 122s tests/test_utilities/test_csvstat.py::TestCSVStat::test_json_columns PASSED [ 79%] 122s tests/test_utilities/test_csvstat.py::TestCSVStat::test_launch_new_instance PASSED [ 79%] 122s tests/test_utilities/test_csvstat.py::TestCSVStat::test_linenumbers PASSED [ 79%] 123s tests/test_utilities/test_csvstat.py::TestCSVStat::test_max_length PASSED [ 80%] 123s tests/test_utilities/test_csvstat.py::TestCSVStat::test_names PASSED [ 80%] 123s tests/test_utilities/test_csvstat.py::TestCSVStat::test_no_header_row PASSED [ 80%] 123s tests/test_utilities/test_csvstat.py::TestCSVStat::test_options FAILED [ 81%] 123s tests/test_utilities/test_csvstat.py::TestCSVStat::test_runs PASSED [ 81%] 125s tests/test_utilities/test_csvstat.py::TestCSVStat::test_unique PASSED [ 81%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_args FAILED [ 82%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_blanks PASSED [ 82%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_csv PASSED [ 82%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_csv_with_skip_lines PASSED [ 82%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_dbf PASSED [ 83%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_geojson PASSED [ 83%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_json PASSED [ 83%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_ndjson PASSED [ 84%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_nested_json PASSED [ 84%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_tsv PASSED [ 84%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_tsv_streaming PASSED [ 84%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls PASSED [ 85%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_sheet PASSED [ 85%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_skip_lines PASSED [ 85%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_unicode_sheet PASSED [ 86%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_write_sheets PASSED [ 86%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xls_with_write_sheets_with_names PASSED [ 86%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx PASSED [ 87%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_sheet PASSED [ 87%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_skip_lines PASSED [ 87%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_unicode_sheet PASSED [ 87%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_write_sheets PASSED [ 88%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx_with_write_sheets_with_names PASSED [ 88%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_datetime_inference PASSED [ 88%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_no_headers PASSED [ 89%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_no_headers_streaming PASSED [ 89%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_csv_no_inference PASSED [ 89%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_date_format PASSED [ 89%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_date_format_default PASSED [ 90%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_date_like_number PASSED [ 90%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_empty PASSED [ 90%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_geojson_no_inference PASSED [ 91%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_json_no_inference PASSED [ 91%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_launch_new_instance PASSED [ 91%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_locale PASSED [ 92%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_names PASSED [ 92%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_names_xls PASSED [ 92%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_names_xlsx PASSED [ 92%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_ndjson_no_inference PASSED [ 93%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_no_blanks PASSED [ 93%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_null_value PASSED [ 93%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_null_value_blanks PASSED [ 94%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_numeric_date_format PASSED [ 94%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_numeric_date_format_default PASSED [ 94%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_options FAILED [ 94%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_version PASSED [ 95%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_xls_no_inference PASSED [ 95%] 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_xlsx_no_inference PASSED [ 95%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_empty PASSED [ 96%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_encoding PASSED [ 96%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_file PASSED [ 96%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_file_with_query PASSED [ 97%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_launch_new_instance PASSED [ 97%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_linenumbers PASSED [ 97%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_no_header_row PASSED [ 97%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_query PASSED [ 98%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin PASSED [ 98%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_file PASSED [ 98%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_file_and_query PASSED [ 99%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_stdin_with_query PASSED [ 99%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_unicode PASSED [ 99%] 125s tests/test_utilities/test_sql2csv.py::TestSQL2CSV::test_wildcard_on_sqlite PASSED [100%] 125s 125s =================================== FAILURES =================================== 125s __________________________ TestCSVClean.test_options ___________________________ 125s 125s self = 125s 125s def test_options(self): 125s for args, message in ( 125s ( 125s [], 125s 'No checks or fixes were enabled. See available options with: csvclean --help', 125s ), 125s ( 125s ['--join-short-rows', '--fill-short-rows'], 125s 'The --join-short-rows and --fill-short-rows options are mutually exclusive.', 125s ), 125s ): 125s with self.subTest(args=args): 125s > self.assertError(launch_new_instance, args, message) 125s 125s tests/test_utilities/test_csvclean.py:62: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: No checks or[60 chars]help' != 'csvclean: error: No checks or fixes were [48 chars]help' 125s E - python3.14 -m pytest: error: No checks or fixes were enabled. See available options with: csvclean --help 125s E ? ^^^^^ -------------- 125s E + csvclean: error: No checks or fixes were enabled. See available options with: csvclean --help 125s E ? ^^^^^^^ 125s ___________________________ TestCSVGrep.test_options ___________________________ 125s 125s self = 125s 125s def test_options(self): 125s for args, message in ( 125s ([], 'You must specify at least one column to search using the -c option.'), 125s (['-c', '1'], 'One of -r, -m or -f must be specified, unless using the -n option.'), 125s ): 125s with self.subTest(args=args): 125s > self.assertError(launch_new_instance, args, message) 125s 125s tests/test_utilities/test_csvgrep.py:23: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: You must spe[51 chars]ion.' != 'csvgrep: error: You must specify at least[38 chars]ion.' 125s E - python3.14 -m pytest: error: You must specify at least one column to search using the -c option. 125s E ? ------------------- 125s E + csvgrep: error: You must specify at least one column to search using the -c option. 125s E ? ++++++ 125s ________________________ TestCSVJoin.test_join_options _________________________ 125s 125s self = 125s 125s def test_join_options(self): 125s for option in ('--left', '--right', '--outer'): 125s with self.subTest(option=option): 125s > self.assertError( 125s launch_new_instance, 125s [option], 125s 'You must provide join column names when performing an outer join.', 125s ) 125s 125s tests/test_utilities/test_csvjoin.py:31: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: You must pro[49 chars]oin.' != 'csvjoin: error: You must provide join col[36 chars]oin.' 125s E - python3.14 -m pytest: error: You must provide join column names when performing an outer join. 125s E ? ^^^^ -------------- 125s E + csvjoin: error: You must provide join column names when performing an outer join. 125s E ? ^^^^ + 125s ___________________________ TestCSVJoin.test_options ___________________________ 125s 125s self = 125s 125s def test_options(self): 125s for args, message in ( 125s ( 125s ['-c' '1,2'], 125s 'The number of join column names must match the number of files, ' 125s 'or be a single column name that exists in all files.', 125s ), 125s (['-c', '1', '--left', '--right'], 'It is not valid to specify both a left and a right join.'), 125s ): 125s with self.subTest(args=args): 125s > self.assertError(launch_new_instance, args, message) 125s 125s tests/test_utilities/test_csvjoin.py:26: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: The number o[100 chars]les.' != 'csvjoin: error: The number of join column[87 chars]les.' 125s E - python3.14 -m pytest: error: The number of join column names must match the number of files, or be a single column name that exists in all files. 125s E ? ^^^^ -------------- 125s E + csvjoin: error: The number of join column names must match the number of files, or be a single column name that exists in all files. 125s E ? ^^^^ + 125s _______________________ TestCSVJSON.test_latlon_options ________________________ 125s 125s self = 125s 125s def test_latlon_options(self): 125s for option, message in ( 125s ('lat', '--lon is required whenever --lat is specified.'), 125s ('lon', '--lat is required whenever --lon is specified.'), 125s ('crs', '--crs is only allowed when --lat and --lon are also specified.'), 125s ('type', '--type is only allowed when --lat and --lon are also specified.'), 125s ('geometry', '--geometry is only allowed when --lat and --lon are also specified.'), 125s ): 125s with self.subTest(option=option): 125s > self.assertError(launch_new_instance, [f'--{option}', 'value'], message) 125s 125s tests/test_utilities/test_csvjson.py:33: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: --lon is required whenever --lat is specified.' != 'csvjson: error: --lon is required whenever --lat is specified.' 125s E - python3.14 -m pytest: error: --lon is required whenever --lat is specified. 125s E ? ^^^^ -------------- 125s E + csvjson: error: --lon is required whenever --lat is specified. 125s E ? ^^^^^ 125s ___________________________ TestCSVJSON.test_options ___________________________ 125s 125s self = 125s 125s def test_options(self): 125s > self.assertError( 125s launch_new_instance, 125s ['--key', 'value', '--stream'], 125s '--key is only allowed with --stream when --lat and --lon are also specified.', 125s ) 125s 125s tests/test_utilities/test_csvjson.py:18: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: --key is onl[60 chars]ied.' != 'csvjson: error: --key is only allowed wit[47 chars]ied.' 125s E - python3.14 -m pytest: error: --key is only allowed with --stream when --lat and --lon are also specified. 125s E ? ^^^^ -------------- 125s E + csvjson: error: --key is only allowed with --stream when --lat and --lon are also specified. 125s E ? ^^^^^ 125s ________________________ TestCSVSQL.test_insert_options ________________________ 125s 125s self = 125s 125s def test_insert_options(self): 125s for args in ( 125s ['--no-create'], 125s ['--create-if-not-exists'], 125s ['--overwrite'], 125s ['--before-insert'], 125s ['--after-insert'], 125s ['--chunk-size', '1'], 125s ): 125s with self.subTest(args=args): 125s > self.assertError( 125s launch_new_instance, 125s args, 125s f'The {args[0]} option is only valid if --insert is also specified.' 125s ) 125s 125s tests/test_utilities/test_csvsql.py:53: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: The --no-cre[51 chars]ied.' != 'csvsql: error: The --no-create option is [37 chars]ied.' 125s E - python3.14 -m pytest: error: The --no-create option is only valid if --insert is also specified. 125s E ? ^^^^^^^^^^^^^^^^^^ ^ 125s E + csvsql: error: The --no-create option is only valid if --insert is also specified. 125s E ? ^ ^^^^ 125s ___________________________ TestCSVSQL.test_options ____________________________ 125s 125s self = 125s 125s def test_options(self): 125s for args, message in ( 125s ( 125s ['--db', 'sqlite:///:memory:', '--dialect', 'sqlite'], 125s 'The --dialect option is only valid when neither --db nor --query are specified.', 125s ), 125s ( 125s ['--insert'], 125s 'The --insert option is only valid when either --db or --query is specified.', 125s ), 125s ( 125s ['--db', 'sqlite:///:memory:', '--insert', '--no-create', '--overwrite'], 125s 'The --overwrite option is only valid if --no-create is not specified.', 125s ), 125s ( 125s ['--db', 'sqlite:///:memory:', '--insert', '--no-create', '--create-if-not-exists'], 125s 'The --no-create and --create-if-not-exists options are mutually exclusive.', 125s ), 125s ): 125s with self.subTest(args=args): 125s > self.assertError(launch_new_instance, args, message) 125s 125s tests/test_utilities/test_csvsql.py:41: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: The --dialec[63 chars]ied.' != 'csvsql: error: The --dialect option is on[49 chars]ied.' 125s E - python3.14 -m pytest: error: The --dialect option is only valid when neither --db nor --query are specified. 125s E ? ^^^^^^^^^^^^^^^^^^ ^ 125s E + csvsql: error: The --dialect option is only valid when neither --db nor --query are specified. 125s E ? ^ ^^^^ 125s __________________________ TestCSVStack.test_options ___________________________ 125s 125s self = 125s 125s def test_options(self): 125s > self.assertError( 125s launch_new_instance, 125s ['-g', '1,2'], 125s 'The number of grouping values must be equal to the number of CSV files being stacked.', 125s ) 125s 125s tests/test_utilities/test_csvstack.py:17: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: The number o[69 chars]ked.' != 'csvstack: error: The number of grouping v[57 chars]ked.' 125s E - python3.14 -m pytest: error: The number of grouping values must be equal to the number of CSV files being stacked. 125s E ? ^^^^^^^^^^^^^^^^^^ 125s E + csvstack: error: The number of grouping values must be equal to the number of CSV files being stacked. 125s E ? ^^^ +++ 125s _________________________ TestNoHeaderRow.test_options _________________________ 125s 125s self = 125s 125s def test_options(self): 125s > self.assertError( 125s launch_new_instance, 125s ['-g', '1,2'], 125s 'The number of grouping values must be equal to the number of CSV files being stacked.', 125s ) 125s 125s tests/test_utilities/test_csvstack.py:17: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: The number o[69 chars]ked.' != 'csvstack: error: The number of grouping v[57 chars]ked.' 125s E - python3.14 -m pytest: error: The number of grouping values must be equal to the number of CSV files being stacked. 125s E ? ^^^^^^^^^^^^^^^^^^ 125s E + csvstack: error: The number of grouping values must be equal to the number of CSV files being stacked. 125s E ? ^^^ +++ 125s _______________________ TestCSVStat.test_format_options ________________________ 125s 125s self = 125s 125s def test_format_options(self): 125s for option in ('csv', 'json', 'count'): 125s with self.subTest(option=option): 125s > self.assertError( 125s launch_new_instance, 125s ['--min', f'--{option}'], 125s f'You may not specify --{option} and an operation (--mean, --median, etc) at the same time.', 125s ) 125s 125s tests/test_utilities/test_csvstat.py:28: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: You may not [68 chars]ime.' != 'csvstat: error: You may not specify --csv[55 chars]ime.' 125s E - python3.14 -m pytest: error: You may not specify --csv and an operation (--mean, --median, etc) at the same time. 125s E ? ^^^^^^^^^^^^^^^^^^ 125s E + csvstat: error: You may not specify --csv and an operation (--mean, --median, etc) at the same time. 125s E ? ^^^ ++ 125s ___________________________ TestCSVStat.test_options ___________________________ 125s 125s self = 125s 125s def test_options(self): 125s > self.assertError( 125s launch_new_instance, 125s ['--min', '--max'], 125s 'Only one operation argument may be specified (--mean, --median, etc).', 125s ) 125s 125s tests/test_utilities/test_csvstat.py:19: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: Only one ope[53 chars]tc).' != 'csvstat: error: Only one operation argume[40 chars]tc).' 125s E - python3.14 -m pytest: error: Only one operation argument may be specified (--mean, --median, etc). 125s E ? ^^^^^^^^^^^^^^^^^^ 125s E + csvstat: error: Only one operation argument may be specified (--mean, --median, etc). 125s E ? ^^^ ++ 125s _____________________________ TestIn2CSV.test_args _____________________________ 125s 125s self = 125s 125s def test_args(self): 125s for args in ([], ['-']): 125s with self.subTest(args=args): 125s > self.assertError( 125s launch_new_instance, 125s [], 125s 'You must specify a format when providing input as piped data via STDIN.', 125s args=args, 125s ) 125s 125s tests/test_utilities/test_in2csv.py:33: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: You must spe[55 chars]DIN.' != 'in2csv: error: You must specify a format [41 chars]DIN.' 125s E - python3.14 -m pytest: error: You must specify a format when providing input as piped data via STDIN. 125s E ? ^^^^^ ^^^^^^^^^^^^ ^ 125s E + in2csv: error: You must specify a format when providing input as piped data via STDIN. 125s E ? ^ ^^ ^ 125s ___________________________ TestIn2CSV.test_options ____________________________ 125s 125s self = 125s 125s def test_options(self): 125s for options, args, message in ( 125s ( 125s [], 125s ['dummy.unknown'], 125s 'Unable to automatically determine the format of the input file. ' 125s 'Try specifying a format with --format.', 125s ), 125s ( 125s ['-n'], 125s ['dummy.csv'], 125s 'You cannot use the -n or --names options with non-Excel files.', 125s ), 125s ): 125s with self.subTest(args=options + args): 125s > self.assertError(launch_new_instance, options, message, args=args) 125s 125s tests/test_utilities/test_in2csv.py:55: 125s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 125s tests/utils.py:84: in assertError 125s self.assertEqual(f.getvalue().splitlines()[-1], f'{command}: error: {message}') 125s E AssertionError: 'python3.14 -m pytest: error: Unable to au[86 chars]mat.' != 'in2csv: error: Unable to automatically de[72 chars]mat.' 125s E - python3.14 -m pytest: error: Unable to automatically determine the format of the input file. Try specifying a format with --format. 125s E ? ^^^^^ ^^^^^^^^^^^^ ^ 125s E + in2csv: error: Unable to automatically determine the format of the input file. Try specifying a format with --format. 125s E ? ^ ^^ ^ 125s =============================== warnings summary =============================== 125s ../../../usr/lib/python3/dist-packages/pytimeparse/__init__.py:19 125s /usr/lib/python3/dist-packages/pytimeparse/__init__.py:19: DeprecationWarning: codecs.open() is deprecated. Use open() instead. 125s with open(path.join(path.dirname(__file__), 'VERSION'), 125s 125s tests/test_utilities/test_csvgrep.py: 18 warnings 125s /usr/lib/python3/dist-packages/csvkit/utilities/csvgrep.py:31: PendingDeprecationWarning: FileType is deprecated. Simply open files after parsing arguments. 125s '-f', '--file', dest='matchfile', type=FileType('r'), action='store', 125s 125s tests/test_utilities/test_csvjoin.py: 2 warnings 125s tests/test_utilities/test_csvjson.py: 1 warning 125s tests/test_utilities/test_csvlook.py: 4 warnings 125s tests/test_utilities/test_csvsort.py: 1 warning 125s tests/test_utilities/test_csvsql.py: 2 warnings 125s tests/test_utilities/test_csvstat.py: 1 warning 125s tests/test_utilities/test_in2csv.py: 7 warnings 125s /usr/lib/python3/dist-packages/agate/table/from_csv.py:83: RuntimeWarning: Error sniffing CSV dialect: Could not determine delimiter 125s kwargs['dialect'] = csv.Sniffer().sniff(sample) 125s 125s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_inference 125s /usr/lib/python3/dist-packages/agate/utils.py:288: DuplicateColumnWarning: Column name "b2" already exists in Table. Column will be renamed to "b2_2". 125s warn_duplicate_column(new_value, final_value) 125s 125s tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_no_inference 125s /usr/lib/python3/dist-packages/agate/utils.py:288: DuplicateColumnWarning: Column name "c2" already exists in Table. Column will be renamed to "c2_2". 125s warn_duplicate_column(new_value, final_value) 125s 125s tests/test_utilities/test_csvstat.py::TestCSVStat::test_decimal_format 125s tests/test_utilities/test_csvstat.py::TestCSVStat::test_decimal_format 125s /usr/lib/python3/dist-packages/agate/utils.py:272: UnnamedColumnWarning: Column 9 has no name. Using "j". 125s warn_unnamed_column(i, new_value) 125s 125s tests/test_utilities/test_in2csv.py: 10 warnings 125s /usr/lib/python3/dist-packages/agate/utils.py:272: UnnamedColumnWarning: Column 7 has no name. Using "h". 125s warn_unnamed_column(i, new_value) 125s 125s tests/test_utilities/test_in2csv.py::TestIn2CSV::test_convert_xlsx 125s /usr/lib/python3/dist-packages/openpyxl/worksheet/_reader.py:329: UserWarning: Unknown extension is not supported and will be removed 125s warn(msg) 125s 125s -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html 125s =========================== short test summary info ============================ 125s FAILED tests/test_utilities/test_csvclean.py::TestCSVClean::test_options - As... 125s FAILED tests/test_utilities/test_csvgrep.py::TestCSVGrep::test_options - Asse... 125s FAILED tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_join_options 125s FAILED tests/test_utilities/test_csvjoin.py::TestCSVJoin::test_options - Asse... 125s FAILED tests/test_utilities/test_csvjson.py::TestCSVJSON::test_latlon_options 125s FAILED tests/test_utilities/test_csvjson.py::TestCSVJSON::test_options - Asse... 125s FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_insert_options 125s FAILED tests/test_utilities/test_csvsql.py::TestCSVSQL::test_options - Assert... 125s FAILED tests/test_utilities/test_csvstack.py::TestCSVStack::test_options - As... 125s FAILED tests/test_utilities/test_csvstack.py::TestNoHeaderRow::test_options 125s FAILED tests/test_utilities/test_csvstat.py::TestCSVStat::test_format_options 125s FAILED tests/test_utilities/test_csvstat.py::TestCSVStat::test_options - Asse... 125s FAILED tests/test_utilities/test_in2csv.py::TestIn2CSV::test_args - Assertion... 125s FAILED tests/test_utilities/test_in2csv.py::TestIn2CSV::test_options - Assert... 125s ================= 14 failed, 325 passed, 52 warnings in 13.09s ================= 126s autopkgtest [13:10:12]: test command1: -----------------------] 126s command1 FAIL non-zero exit status 1 126s autopkgtest [13:10:12]: test command1: - - - - - - - - - - results - - - - - - - - - - 127s autopkgtest [13:10:13]: @@@@@@@@@@@@@@@@@@@@ summary 127s command1 FAIL non-zero exit status 1