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