Sun Nov 17 02:14:24 UTC 2024 I: starting to build python-gabbi/unstable/amd64 on jenkins on '2024-11-17 02:14' Sun Nov 17 02:14:24 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_34/36156/console.log Sun Nov 17 02:14:24 UTC 2024 I: Downloading source for unstable/python-gabbi=3.0.0-2 --2024-11-17 02:14:25-- http://deb.debian.org/debian/pool/main/p/python-gabbi/python-gabbi_3.0.0-2.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2465 (2.4K) [text/prs.lines.tag] Saving to: ‘python-gabbi_3.0.0-2.dsc’ 0K .. 100% 350M=0s 2024-11-17 02:14:25 (350 MB/s) - ‘python-gabbi_3.0.0-2.dsc’ saved [2465/2465] Sun Nov 17 02:14:25 UTC 2024 I: python-gabbi_3.0.0-2.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: python-gabbi Binary: python-gabbi-doc, python3-gabbi Architecture: all Version: 3.0.0-2 Maintainer: Debian OpenStack Uploaders: Thomas Goirand , Homepage: https://github.com/cdent/gabbi Standards-Version: 4.1.3 Vcs-Browser: https://salsa.debian.org/openstack-team/python/python-gabbi Vcs-Git: https://salsa.debian.org/openstack-team/python/python-gabbi.git Testsuite: autopkgtest Testsuite-Triggers: @builddeps@, nova-common, python3-nova Build-Depends: debhelper-compat (= 11), dh-python, openstack-pkg-tools, python3-all, python3-pbr, python3-setuptools, python3-sphinx Build-Depends-Indep: python3-colorama, python3-coverage, python3-hacking, python3-httplib2, python3-jsonpath-rw, python3-jsonpath-rw-ext, python3-pytest, python3-pytest-cov, python3-stestr, python3-testtools, python3-wsgi-intercept (>= 1.13.0), python3-yaml, subunit Package-List: python-gabbi-doc deb doc optional arch=all python3-gabbi deb python optional arch=all Checksums-Sha1: 642bc0bfdf190e7549fdee8feb6e00bb3651053b 185276 python-gabbi_3.0.0.orig.tar.xz d9460deb30a6d0d86e6e65c5b72d625b49efb712 4040 python-gabbi_3.0.0-2.debian.tar.xz Checksums-Sha256: ba2c7768ed18f2899b3b12a1d6fe83a45d6dec4303aadca6d1ff56e58c9bee5d 185276 python-gabbi_3.0.0.orig.tar.xz f004aac8f935c62de5d25fb58340d53b962b95adfc75334460bdeacfc7599b65 4040 python-gabbi_3.0.0-2.debian.tar.xz Files: c5fc83a1038ae4841d112c21c0ee46c4 185276 python-gabbi_3.0.0.orig.tar.xz b71c4dec1faa238082436a4127a6f0ba 4040 python-gabbi_3.0.0-2.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEoLGp81CJVhMOekJc1BatFaxrQ/4FAmbsPV4ACgkQ1BatFaxr Q/5pKw/9ERto2XBwqcg4B5LQ3DizDAiwQSs4u7C2BlKIL36ndsDREnUa3bVaGE02 EzA7zcGJPuCHA8bs46ZjAI0GYgUjLwEZXv39aPL/Tc6gIx3eA6Myr6w+UuaoER2P L7VmGN+0eVAL/SBImuRYfpYc/Jor3haUddMDTf4Q9AjpPGRGFAQLQXo/kzhuQDZt a6TR8c6gR6AOTjZBCgiXMyq6RhJvkhn6gf65Th8fCXT2iWB0UL7tijfxsvp9ul3P pKOsMJb/427HieNARvqMA9dY9hF7ArczwW9KFgOhtNy/6r9nHLAqbYKtgAYahRqT jIQMui37rjWQ1tKE82Rc+xczMBpHs1dT4NEbVlQlvHgbD9+LCVhDjb+ANGfhZr7d mj/F0L+3ShcdQZmQ64mY0GlnV75hpkMWZOz0HgeB01o1PlN3BVSrxEgss4FKKj5G kePpRDASvFS+wypQsgioAZ5lNKHacaOyajAYZZmQJ3ASyLbwairujxArJ2PWvkey LnkSqLWcoolxS6uY0pEkxRVKmchNqZUenBZri7CNAMJdJg0aYPm6zVRsaHY2DEff QrHtZVFeXOJhYqiUF5OUbJA5QrQuXCXIh2pD4FjHPXUM4Kr/0VYadt2NNrSX1W/a SRXJWBlNiGIU/dy79k4svVXFGVA50gdE3tScwfSkOcmCQ6f7IIw= =dpJx -----END PGP SIGNATURE----- Sun Nov 17 02:14:25 UTC 2024 I: Checking whether the package is not for us Sun Nov 17 02:14:25 UTC 2024 I: Starting 1st build on remote node infom02-amd64.debian.net. Sun Nov 17 02:14:25 UTC 2024 I: Preparing to do remote build '1' on infom02-amd64.debian.net. Sun Nov 17 02:17:51 UTC 2024 I: Deleting $TMPDIR on infom02-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Fri Dec 19 20:37:26 -12 2025 I: pbuilder-time-stamp: 1766219846 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [python-gabbi_3.0.0-2.dsc] I: copying [./python-gabbi_3.0.0.orig.tar.xz] I: copying [./python-gabbi_3.0.0-2.debian.tar.xz] I: Extracting source gpgv: Signature made Thu Sep 19 15:03:58 2024 gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./python-gabbi_3.0.0-2.dsc: no acceptable signature found dpkg-source: info: extracting python-gabbi in python-gabbi-3.0.0 dpkg-source: info: unpacking python-gabbi_3.0.0.orig.tar.xz dpkg-source: info: unpacking python-gabbi_3.0.0-2.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/3032869/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='0f637788c0ed490b82590838247d8af7' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='3032869' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.Q3U1Lr3s/pbuilderrc_WUAs --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Q3U1Lr3s/b1 --logfile b1/build.log python-gabbi_3.0.0-2.dsc' SUDO_GID='109' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' I: uname -a Linux infom02-amd64 6.10.11+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.11-1~bpo12+1 (2024-10-03) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Aug 4 2024 /bin -> usr/bin I: user script /srv/workspace/pbuilder/3032869/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: amd64 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 11), dh-python, openstack-pkg-tools, python3-all, python3-pbr, python3-setuptools, python3-sphinx, python3-colorama, python3-coverage, python3-hacking, python3-httplib2, python3-jsonpath-rw, python3-jsonpath-rw-ext, python3-pytest, python3-pytest-cov, python3-stestr, python3-testtools, python3-wsgi-intercept (>= 1.13.0), python3-yaml, subunit dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19966 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 11); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on openstack-pkg-tools; however: Package openstack-pkg-tools is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-pbr; however: Package python3-pbr is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinx; however: Package python3-sphinx is not installed. pbuilder-satisfydepends-dummy depends on python3-colorama; however: Package python3-colorama is not installed. pbuilder-satisfydepends-dummy depends on python3-coverage; however: Package python3-coverage is not installed. pbuilder-satisfydepends-dummy depends on python3-hacking; however: Package python3-hacking is not installed. pbuilder-satisfydepends-dummy depends on python3-httplib2; however: Package python3-httplib2 is not installed. pbuilder-satisfydepends-dummy depends on python3-jsonpath-rw; however: Package python3-jsonpath-rw is not installed. pbuilder-satisfydepends-dummy depends on python3-jsonpath-rw-ext; however: Package python3-jsonpath-rw-ext is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-cov; however: Package python3-pytest-cov is not installed. pbuilder-satisfydepends-dummy depends on python3-stestr; however: Package python3-stestr is not installed. pbuilder-satisfydepends-dummy depends on python3-testtools; however: Package python3-testtools is not installed. pbuilder-satisfydepends-dummy depends on python3-wsgi-intercept (>= 1.13.0); however: Package python3-wsgi-intercept is not installed. pbuilder-satisfydepends-dummy depends on python3-yaml; however: Package python3-yaml is not installed. pbuilder-satisfydepends-dummy depends on subunit; however: Package subunit is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} docutils-common{a} dwz{a} file{a} flake8{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} jq{a} libarchive-zip-perl{a} libcom-err2{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libgssapi-krb5-2{a} libice6{a} libicu72{a} libjq1{a} libjs-jquery{a} libjs-jquery-hotkeys{a} libjs-jquery-isonscreen{a} libjs-jquery-metadata{a} libjs-jquery-tablesorter{a} libjs-jquery-throttle-debounce{a} libjs-sphinxdoc{a} libjs-underscore{a} libjson-perl{a} libk5crypto3{a} libkeyutils1{a} libkrb5-3{a} libkrb5support0{a} libmagic-mgc{a} libmagic1t64{a} libnsl2{a} libonig5{a} libpipeline1{a} libpython3-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libsm6{a} libsubunit-perl{a} libtirpc-common{a} libtirpc3t64{a} libtool{a} libuchardet0{a} libx11-6{a} libx11-data{a} libxau6{a} libxcb1{a} libxdmcp6{a} libxext6{a} libxml2{a} libxmu6{a} libxt6t64{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} openstack-pkg-tools{a} po-debconf{a} pyflakes3{a} python-babel-localedata{a} python3{a} python3-alabaster{a} python3-all{a} python3-autocommand{a} python3-autopage{a} python3-babel{a} python3-certifi{a} python3-chardet{a} python3-charset-normalizer{a} python3-cliff{a} python3-cmd2{a} python3-colorama{a} python3-coverage{a} python3-decorator{a} python3-defusedxml{a} python3-docutils{a} python3-extras{a} python3-fixtures{a} python3-flake8{a} python3-hacking{a} python3-httplib2{a} python3-idna{a} python3-imagesize{a} python3-inflect{a} python3-iniconfig{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-jinja2{a} python3-jsonpath-rw{a} python3-jsonpath-rw-ext{a} python3-markupsafe{a} python3-mccabe{a} python3-minimal{a} python3-more-itertools{a} python3-packaging{a} python3-pbr{a} python3-pip{a} python3-pkg-resources{a} python3-pluggy{a} python3-ply{a} python3-prettytable{a} python3-pycodestyle{a} python3-pyflakes{a} python3-pygments{a} python3-pyparsing{a} python3-pyperclip{a} python3-pytest{a} python3-pytest-cov{a} python3-requests{a} python3-roman{a} python3-setuptools{a} python3-six{a} python3-snowballstemmer{a} python3-sphinx{a} python3-stestr{a} python3-stevedore{a} python3-subunit{a} python3-testtools{a} python3-tomlkit{a} python3-typeguard{a} python3-typing-extensions{a} python3-urllib3{a} python3-voluptuous{a} python3-wcwidth{a} python3-wheel{a} python3-wsgi-intercept{a} python3-yaml{a} python3-zipp{a} python3.12{a} python3.12-minimal{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} sgml-base{a} sphinx-common{a} subunit{a} tzdata{a} x11-common{a} xclip{a} xml-core{a} The following packages are RECOMMENDED but will NOT be installed: autopkgtest curl javascript-common krb5-locales libarchive-cpio-perl libjson-xs-perl libltdl-dev libmail-sendmail-perl libpaper-utils lynx madison-lite pristine-tar python3-dev python3-pil wget xauth 0 packages upgraded, 160 newly installed, 0 to remove and 0 not upgraded. Need to get 51.6 MB of archives. After unpacking 215 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB] Get: 2 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] Get: 3 http://deb.debian.org/debian unstable/main amd64 libpython3.12-minimal amd64 3.12.7-3 [815 kB] Get: 4 http://deb.debian.org/debian unstable/main amd64 libexpat1 amd64 2.6.4-1 [106 kB] Get: 5 http://deb.debian.org/debian unstable/main amd64 python3.12-minimal amd64 3.12.7-3 [2162 kB] Get: 6 http://deb.debian.org/debian unstable/main amd64 python3-minimal amd64 3.12.7-1 [26.8 kB] Get: 7 http://deb.debian.org/debian unstable/main amd64 media-types all 10.1.0 [26.9 kB] Get: 8 http://deb.debian.org/debian unstable/main amd64 netbase all 6.4 [12.8 kB] Get: 9 http://deb.debian.org/debian unstable/main amd64 tzdata all 2024b-3 [255 kB] Get: 10 http://deb.debian.org/debian unstable/main amd64 libkrb5support0 amd64 1.21.3-3 [32.5 kB] Get: 11 http://deb.debian.org/debian unstable/main amd64 libcom-err2 amd64 1.47.1-1+b1 [23.2 kB] Get: 12 http://deb.debian.org/debian unstable/main amd64 libk5crypto3 amd64 1.21.3-3 [79.9 kB] Get: 13 http://deb.debian.org/debian unstable/main amd64 libkeyutils1 amd64 1.6.3-4 [9092 B] Get: 14 http://deb.debian.org/debian unstable/main amd64 libkrb5-3 amd64 1.21.3-3 [324 kB] Get: 15 http://deb.debian.org/debian unstable/main amd64 libgssapi-krb5-2 amd64 1.21.3-3 [136 kB] Get: 16 http://deb.debian.org/debian unstable/main amd64 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB] Get: 17 http://deb.debian.org/debian unstable/main amd64 libtirpc3t64 amd64 1.3.4+ds-1.3+b1 [83.1 kB] Get: 18 http://deb.debian.org/debian unstable/main amd64 libnsl2 amd64 1.3.0-3+b3 [40.6 kB] Get: 19 http://deb.debian.org/debian unstable/main amd64 readline-common all 8.2-5 [69.3 kB] Get: 20 http://deb.debian.org/debian unstable/main amd64 libreadline8t64 amd64 8.2-5 [169 kB] Get: 21 http://deb.debian.org/debian unstable/main amd64 libpython3.12-stdlib amd64 3.12.7-3 [1966 kB] Get: 22 http://deb.debian.org/debian unstable/main amd64 python3.12 amd64 3.12.7-3 [671 kB] Get: 23 http://deb.debian.org/debian unstable/main amd64 libpython3-stdlib amd64 3.12.7-1 [9712 B] Get: 24 http://deb.debian.org/debian unstable/main amd64 python3 amd64 3.12.7-1 [27.8 kB] Get: 25 http://deb.debian.org/debian unstable/main amd64 libpython3.13-minimal amd64 3.13.0-2 [856 kB] Get: 26 http://deb.debian.org/debian unstable/main amd64 python3.13-minimal amd64 3.13.0-2 [2038 kB] Get: 27 http://deb.debian.org/debian unstable/main amd64 sgml-base all 1.31 [15.4 kB] Get: 28 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.24 [24.8 kB] Get: 29 http://deb.debian.org/debian unstable/main amd64 openssl amd64 3.3.2-2 [1382 kB] Get: 30 http://deb.debian.org/debian unstable/main amd64 ca-certificates all 20240203 [158 kB] Get: 31 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.45-3+b1 [314 kB] Get: 32 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.45-3+b1 [108 kB] Get: 33 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.45-3+b1 [43.3 kB] Get: 34 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.22.5-2 [200 kB] Get: 35 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 36 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-5 [1181 kB] Get: 37 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.40.2-11 [91.5 kB] Get: 38 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 39 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.0-1 [1420 kB] Get: 40 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.19-4 [287 kB] Get: 41 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3 [493 kB] Get: 42 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20220109.1 [51.6 kB] Get: 43 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.16.5-1.3 [823 kB] Get: 44 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.22.5-2 [723 kB] Get: 45 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.20 [89.7 kB] Get: 46 http://deb.debian.org/debian unstable/main amd64 libtool all 2.4.7-8 [517 kB] Get: 47 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 48 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 49 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB] Get: 50 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.14.0-1 [8448 B] Get: 51 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 52 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 53 http://deb.debian.org/debian unstable/main amd64 libicu72 amd64 72.1-5+b1 [9423 kB] Get: 54 http://deb.debian.org/debian unstable/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.2+b1 [699 kB] Get: 55 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.22.5-2 [1601 kB] Get: 56 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 57 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 58 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.20 [915 kB] Get: 59 http://deb.debian.org/debian unstable/main amd64 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 60 http://deb.debian.org/debian unstable/main amd64 python3-more-itertools all 10.5.0-1 [63.8 kB] Get: 61 http://deb.debian.org/debian unstable/main amd64 python3-typing-extensions all 4.12.2-2 [73.0 kB] Get: 62 http://deb.debian.org/debian unstable/main amd64 python3-typeguard all 4.4.1-1 [37.0 kB] Get: 63 http://deb.debian.org/debian unstable/main amd64 python3-inflect all 7.3.1-2 [32.4 kB] Get: 64 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.context all 6.0.0-1 [7984 B] Get: 65 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 66 http://deb.debian.org/debian unstable/main amd64 python3-pkg-resources all 75.2.0-1 [213 kB] Get: 67 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 68 http://deb.debian.org/debian unstable/main amd64 python3-zipp all 3.21.0-1 [10.6 kB] Get: 69 http://deb.debian.org/debian unstable/main amd64 python3-setuptools all 75.2.0-1 [731 kB] Get: 70 http://deb.debian.org/debian unstable/main amd64 dh-python all 6.20241024 [109 kB] Get: 71 http://deb.debian.org/debian unstable/main amd64 xml-core all 0.19 [20.1 kB] Get: 72 http://deb.debian.org/debian unstable/main amd64 docutils-common all 0.21.2+dfsg-2 [128 kB] Get: 73 http://deb.debian.org/debian unstable/main amd64 python3-mccabe all 0.7.0-1 [10.5 kB] Get: 74 http://deb.debian.org/debian unstable/main amd64 python3-pycodestyle all 2.12.1-1 [39.7 kB] Get: 75 http://deb.debian.org/debian unstable/main amd64 python3-pyflakes all 3.2.0-1 [57.1 kB] Get: 76 http://deb.debian.org/debian unstable/main amd64 python3-flake8 all 7.1.1-2 [56.3 kB] Get: 77 http://deb.debian.org/debian unstable/main amd64 flake8 all 7.1.1-2 [21.5 kB] Get: 78 http://deb.debian.org/debian unstable/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB] Get: 79 http://deb.debian.org/debian unstable/main amd64 libjq1 amd64 1.7.1-3+b1 [164 kB] Get: 80 http://deb.debian.org/debian unstable/main amd64 jq amd64 1.7.1-3+b1 [77.8 kB] Get: 81 http://deb.debian.org/debian unstable/main amd64 x11-common all 1:7.7+23.1 [216 kB] Get: 82 http://deb.debian.org/debian unstable/main amd64 libice6 amd64 2:1.1.1-1 [65.4 kB] Get: 83 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3196 B] Get: 84 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-metadata all 12-4 [6532 B] Get: 85 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [184 kB] Get: 86 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.2 kB] Get: 87 http://deb.debian.org/debian unstable/main amd64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [116 kB] Get: 88 http://deb.debian.org/debian unstable/main amd64 libjs-sphinxdoc all 7.4.7-4 [158 kB] Get: 89 http://deb.debian.org/debian unstable/main amd64 libjson-perl all 4.10000-1 [87.5 kB] Get: 90 http://deb.debian.org/debian unstable/main amd64 libpython3.13-stdlib amd64 3.13.0-2 [1992 kB] Get: 91 http://deb.debian.org/debian unstable/main amd64 libsm6 amd64 2:1.2.4-1 [35.2 kB] Get: 92 http://deb.debian.org/debian unstable/main amd64 libsubunit-perl all 1.4.2-3 [5724 B] Get: 93 http://deb.debian.org/debian unstable/main amd64 libxau6 amd64 1:1.0.11-1 [20.4 kB] Get: 94 http://deb.debian.org/debian unstable/main amd64 libxdmcp6 amd64 1:1.1.2-3+b2 [24.4 kB] Get: 95 http://deb.debian.org/debian unstable/main amd64 libxcb1 amd64 1.17.0-2+b1 [144 kB] Get: 96 http://deb.debian.org/debian unstable/main amd64 libx11-data all 2:1.8.10-2 [337 kB] Get: 97 http://deb.debian.org/debian unstable/main amd64 libx11-6 amd64 2:1.8.10-2 [813 kB] Get: 98 http://deb.debian.org/debian unstable/main amd64 libxext6 amd64 2:1.3.4-1+b2 [50.5 kB] Get: 99 http://deb.debian.org/debian unstable/main amd64 libxt6t64 amd64 1:1.2.1-1.2+b1 [188 kB] Get: 100 http://deb.debian.org/debian unstable/main amd64 libxmu6 amd64 2:1.1.3-3+b3 [58.8 kB] Get: 101 http://deb.debian.org/debian unstable/main amd64 libyaml-0-2 amd64 0.2.5-1+b2 [52.7 kB] Get: 102 http://deb.debian.org/debian unstable/main amd64 python3-wheel all 0.45.0-1 [56.7 kB] Get: 103 http://deb.debian.org/debian unstable/main amd64 python3-pip all 24.3.1+dfsg-1 [1441 kB] Get: 104 http://deb.debian.org/debian unstable/main amd64 openstack-pkg-tools all 130 [96.4 kB] Get: 105 http://deb.debian.org/debian unstable/main amd64 pyflakes3 all 3.2.0-1 [10.1 kB] Get: 106 http://deb.debian.org/debian unstable/main amd64 python-babel-localedata all 2.16.0-1 [5696 kB] Get: 107 http://deb.debian.org/debian unstable/main amd64 python3-alabaster all 0.7.16-0.1 [27.9 kB] Get: 108 http://deb.debian.org/debian unstable/main amd64 python3.13 amd64 3.13.0-2 [730 kB] Get: 109 http://deb.debian.org/debian unstable/main amd64 python3-all amd64 3.12.7-1 [1052 B] Get: 110 http://deb.debian.org/debian unstable/main amd64 python3-autopage all 0.4.0-3.1 [12.7 kB] Get: 111 http://deb.debian.org/debian unstable/main amd64 python3-babel all 2.16.0-1 [114 kB] Get: 112 http://deb.debian.org/debian unstable/main amd64 python3-certifi all 2024.8.30+dfsg-1 [9576 B] Get: 113 http://deb.debian.org/debian unstable/main amd64 python3-chardet all 5.2.0+dfsg-1 [107 kB] Get: 114 http://deb.debian.org/debian unstable/main amd64 python3-charset-normalizer amd64 3.4.0-1+b1 [140 kB] Get: 115 http://deb.debian.org/debian unstable/main amd64 python3-wcwidth all 0.2.13+dfsg1-1 [24.9 kB] Get: 116 http://deb.debian.org/debian unstable/main amd64 xclip amd64 0.13-4 [21.3 kB] Get: 117 http://deb.debian.org/debian unstable/main amd64 python3-pyperclip all 1.8.2-2 [13.2 kB] Get: 118 http://deb.debian.org/debian unstable/main amd64 python3-cmd2 all 2.5.4+ds-1 [148 kB] Get: 119 http://deb.debian.org/debian unstable/main amd64 python3-roman all 4.2-1 [10.4 kB] Get: 120 http://deb.debian.org/debian unstable/main amd64 python3-docutils all 0.21.2+dfsg-2 [403 kB] Get: 121 http://deb.debian.org/debian unstable/main amd64 python3-pbr all 6.1.0-3 [56.6 kB] Get: 122 http://deb.debian.org/debian unstable/main amd64 python3-prettytable all 3.10.1-1 [37.1 kB] Get: 123 http://deb.debian.org/debian unstable/main amd64 python3-stevedore all 5.3.0-3 [20.9 kB] Get: 124 http://deb.debian.org/debian unstable/main amd64 python3-yaml amd64 6.0.2-1+b1 [178 kB] Get: 125 http://deb.debian.org/debian unstable/main amd64 python3-cliff all 4.7.0-2 [42.5 kB] Get: 126 http://deb.debian.org/debian unstable/main amd64 python3-colorama all 0.4.6-4 [36.2 kB] Get: 127 http://deb.debian.org/debian unstable/main amd64 python3-coverage amd64 7.6.0+dfsg1-2+b1 [177 kB] Get: 128 http://deb.debian.org/debian unstable/main amd64 python3-decorator all 5.1.1-5 [15.1 kB] Get: 129 http://deb.debian.org/debian unstable/main amd64 python3-defusedxml all 0.7.1-2 [43.3 kB] Get: 130 http://deb.debian.org/debian unstable/main amd64 python3-extras all 1.0.0-5 [7536 B] Get: 131 http://deb.debian.org/debian unstable/main amd64 python3-testtools all 2.7.2-4 [122 kB] Get: 132 http://deb.debian.org/debian unstable/main amd64 python3-fixtures all 4.1.0-2 [34.1 kB] Get: 133 http://deb.debian.org/debian unstable/main amd64 python3-hacking all 4.1.0-3 [22.2 kB] Get: 134 http://deb.debian.org/debian unstable/main amd64 python3-pyparsing all 3.1.2-1 [146 kB] Get: 135 http://deb.debian.org/debian unstable/main amd64 python3-httplib2 all 0.22.0-1 [36.1 kB] Get: 136 http://deb.debian.org/debian unstable/main amd64 python3-idna all 3.8-2 [41.6 kB] Get: 137 http://deb.debian.org/debian unstable/main amd64 python3-imagesize all 1.4.1-1 [6688 B] Get: 138 http://deb.debian.org/debian unstable/main amd64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 139 http://deb.debian.org/debian unstable/main amd64 python3-markupsafe amd64 2.1.5-1+b2 [13.9 kB] Get: 140 http://deb.debian.org/debian unstable/main amd64 python3-jinja2 all 3.1.3-1 [119 kB] Get: 141 http://deb.debian.org/debian unstable/main amd64 python3-ply all 3.11-7 [62.6 kB] Get: 142 http://deb.debian.org/debian unstable/main amd64 python3-six all 1.16.0-7 [16.4 kB] Get: 143 http://deb.debian.org/debian unstable/main amd64 python3-jsonpath-rw all 1.4.0-6 [15.0 kB] Get: 144 http://deb.debian.org/debian unstable/main amd64 python3-jsonpath-rw-ext all 1.2.2-3 [11.6 kB] Get: 145 http://deb.debian.org/debian unstable/main amd64 python3-packaging all 24.2-1 [55.3 kB] Get: 146 http://deb.debian.org/debian unstable/main amd64 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 147 http://deb.debian.org/debian unstable/main amd64 python3-pygments all 2.18.0+dfsg-1 [836 kB] Get: 148 http://deb.debian.org/debian unstable/main amd64 python3-pytest all 8.3.3-1 [249 kB] Get: 149 http://deb.debian.org/debian unstable/main amd64 python3-pytest-cov all 5.0.0-1 [26.8 kB] Get: 150 http://deb.debian.org/debian unstable/main amd64 python3-urllib3 all 2.0.7-2 [111 kB] Get: 151 http://deb.debian.org/debian unstable/main amd64 python3-requests all 2.32.3+dfsg-1 [71.9 kB] Get: 152 http://deb.debian.org/debian unstable/main amd64 python3-snowballstemmer all 2.2.0-4 [58.0 kB] Get: 153 http://deb.debian.org/debian unstable/main amd64 sphinx-common all 7.4.7-4 [731 kB] Get: 154 http://deb.debian.org/debian unstable/main amd64 python3-sphinx all 7.4.7-4 [588 kB] Get: 155 http://deb.debian.org/debian unstable/main amd64 python3-tomlkit all 0.13.2-1 [42.7 kB] Get: 156 http://deb.debian.org/debian unstable/main amd64 python3-voluptuous all 0.14.2-1 [45.8 kB] Get: 157 http://deb.debian.org/debian unstable/main amd64 python3-subunit all 1.4.2-3 [66.4 kB] Get: 158 http://deb.debian.org/debian unstable/main amd64 subunit all 1.4.2-3 [5248 B] Get: 159 http://deb.debian.org/debian unstable/main amd64 python3-stestr all 4.1.0-2 [56.7 kB] Get: 160 http://deb.debian.org/debian unstable/main amd64 python3-wsgi-intercept all 1.13.0-2 [18.6 kB] Fetched 51.6 MB in 1s (63.7 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libjs-jquery. (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 ... 19966 files and directories currently installed.) Preparing to unpack .../libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Selecting previously unselected package libjs-jquery-hotkeys. Preparing to unpack .../libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... Selecting previously unselected package libpython3.12-minimal:amd64. Preparing to unpack .../libpython3.12-minimal_3.12.7-3_amd64.deb ... Unpacking libpython3.12-minimal:amd64 (3.12.7-3) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../libexpat1_2.6.4-1_amd64.deb ... Unpacking libexpat1:amd64 (2.6.4-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../python3.12-minimal_3.12.7-3_amd64.deb ... Unpacking python3.12-minimal (3.12.7-3) ... Setting up libpython3.12-minimal:amd64 (3.12.7-3) ... Setting up libexpat1:amd64 (2.6.4-1) ... Setting up python3.12-minimal (3.12.7-3) ... Selecting previously unselected package python3-minimal. (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 ... 20312 files and directories currently installed.) Preparing to unpack .../00-python3-minimal_3.12.7-1_amd64.deb ... Unpacking python3-minimal (3.12.7-1) ... Selecting previously unselected package media-types. Preparing to unpack .../01-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../02-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../03-tzdata_2024b-3_all.deb ... Unpacking tzdata (2024b-3) ... Selecting previously unselected package libkrb5support0:amd64. Preparing to unpack .../04-libkrb5support0_1.21.3-3_amd64.deb ... Unpacking libkrb5support0:amd64 (1.21.3-3) ... Selecting previously unselected package libcom-err2:amd64. Preparing to unpack .../05-libcom-err2_1.47.1-1+b1_amd64.deb ... Unpacking libcom-err2:amd64 (1.47.1-1+b1) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../06-libk5crypto3_1.21.3-3_amd64.deb ... Unpacking libk5crypto3:amd64 (1.21.3-3) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../07-libkeyutils1_1.6.3-4_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6.3-4) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../08-libkrb5-3_1.21.3-3_amd64.deb ... Unpacking libkrb5-3:amd64 (1.21.3-3) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../09-libgssapi-krb5-2_1.21.3-3_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.21.3-3) ... Selecting previously unselected package libtirpc-common. Preparing to unpack .../10-libtirpc-common_1.3.4+ds-1.3_all.deb ... Unpacking libtirpc-common (1.3.4+ds-1.3) ... Selecting previously unselected package libtirpc3t64:amd64. Preparing to unpack .../11-libtirpc3t64_1.3.4+ds-1.3+b1_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libtirpc.so.3 to /lib/x86_64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' Adding 'diversion of /lib/x86_64-linux-gnu/libtirpc.so.3.0.0 to /lib/x86_64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' Unpacking libtirpc3t64:amd64 (1.3.4+ds-1.3+b1) ... Selecting previously unselected package libnsl2:amd64. Preparing to unpack .../12-libnsl2_1.3.0-3+b3_amd64.deb ... Unpacking libnsl2:amd64 (1.3.0-3+b3) ... Selecting previously unselected package readline-common. Preparing to unpack .../13-readline-common_8.2-5_all.deb ... Unpacking readline-common (8.2-5) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../14-libreadline8t64_8.2-5_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.2-5) ... Selecting previously unselected package libpython3.12-stdlib:amd64. Preparing to unpack .../15-libpython3.12-stdlib_3.12.7-3_amd64.deb ... Unpacking libpython3.12-stdlib:amd64 (3.12.7-3) ... Selecting previously unselected package python3.12. Preparing to unpack .../16-python3.12_3.12.7-3_amd64.deb ... Unpacking python3.12 (3.12.7-3) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../17-libpython3-stdlib_3.12.7-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.12.7-1) ... Setting up python3-minimal (3.12.7-1) ... Selecting previously unselected package python3. (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 ... 21374 files and directories currently installed.) Preparing to unpack .../000-python3_3.12.7-1_amd64.deb ... Unpacking python3 (3.12.7-1) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../001-libpython3.13-minimal_3.13.0-2_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.0-2) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../002-python3.13-minimal_3.13.0-2_amd64.deb ... Unpacking python3.13-minimal (3.13.0-2) ... Selecting previously unselected package sgml-base. Preparing to unpack .../003-sgml-base_1.31_all.deb ... Unpacking sgml-base (1.31) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../004-sensible-utils_0.0.24_all.deb ... Unpacking sensible-utils (0.0.24) ... Selecting previously unselected package openssl. Preparing to unpack .../005-openssl_3.3.2-2_amd64.deb ... Unpacking openssl (3.3.2-2) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../006-ca-certificates_20240203_all.deb ... Unpacking ca-certificates (20240203) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../007-libmagic-mgc_1%3a5.45-3+b1_amd64.deb ... Unpacking libmagic-mgc (1:5.45-3+b1) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../008-libmagic1t64_1%3a5.45-3+b1_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.45-3+b1) ... Selecting previously unselected package file. Preparing to unpack .../009-file_1%3a5.45-3+b1_amd64.deb ... Unpacking file (1:5.45-3+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../010-gettext-base_0.22.5-2_amd64.deb ... Unpacking gettext-base (0.22.5-2) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../011-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../012-groff-base_1.23.0-5_amd64.deb ... Unpacking groff-base (1.23.0-5) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../013-bsdextrautils_2.40.2-11_amd64.deb ... Unpacking bsdextrautils (2.40.2-11) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../014-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../015-man-db_2.13.0-1_amd64.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../016-m4_1.4.19-4_amd64.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../017-autoconf_2.72-3_all.deb ... Unpacking autoconf (2.72-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../018-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../019-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../020-autopoint_0.22.5-2_all.deb ... Unpacking autopoint (0.22.5-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../021-libdebhelper-perl_13.20_all.deb ... Unpacking libdebhelper-perl (13.20) ... Selecting previously unselected package libtool. Preparing to unpack .../022-libtool_2.4.7-8_all.deb ... Unpacking libtool (2.4.7-8) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../023-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../024-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../025-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../026-dh-strip-nondeterminism_1.14.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.0-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../027-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../028-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:amd64. Preparing to unpack .../029-libicu72_72.1-5+b1_amd64.deb ... Unpacking libicu72:amd64 (72.1-5+b1) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../030-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_amd64.deb ... Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b1) ... Selecting previously unselected package gettext. Preparing to unpack .../031-gettext_0.22.5-2_amd64.deb ... Unpacking gettext (0.22.5-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../032-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../033-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../034-debhelper_13.20_all.deb ... Unpacking debhelper (13.20) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../035-python3-autocommand_2.2.2-3_all.deb ... Unpacking python3-autocommand (2.2.2-3) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../036-python3-more-itertools_10.5.0-1_all.deb ... Unpacking python3-more-itertools (10.5.0-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../037-python3-typing-extensions_4.12.2-2_all.deb ... Unpacking python3-typing-extensions (4.12.2-2) ... Selecting previously unselected package python3-typeguard. Preparing to unpack .../038-python3-typeguard_4.4.1-1_all.deb ... Unpacking python3-typeguard (4.4.1-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../039-python3-inflect_7.3.1-2_all.deb ... Unpacking python3-inflect (7.3.1-2) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../040-python3-jaraco.context_6.0.0-1_all.deb ... Unpacking python3-jaraco.context (6.0.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../041-python3-jaraco.functools_4.1.0-1_all.deb ... Unpacking python3-jaraco.functools (4.1.0-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../042-python3-pkg-resources_75.2.0-1_all.deb ... Unpacking python3-pkg-resources (75.2.0-1) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../043-python3-jaraco.text_4.0.0-1_all.deb ... Unpacking python3-jaraco.text (4.0.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../044-python3-zipp_3.21.0-1_all.deb ... Unpacking python3-zipp (3.21.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../045-python3-setuptools_75.2.0-1_all.deb ... Unpacking python3-setuptools (75.2.0-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../046-dh-python_6.20241024_all.deb ... Unpacking dh-python (6.20241024) ... Selecting previously unselected package xml-core. Preparing to unpack .../047-xml-core_0.19_all.deb ... Unpacking xml-core (0.19) ... Selecting previously unselected package docutils-common. Preparing to unpack .../048-docutils-common_0.21.2+dfsg-2_all.deb ... Unpacking docutils-common (0.21.2+dfsg-2) ... Selecting previously unselected package python3-mccabe. Preparing to unpack .../049-python3-mccabe_0.7.0-1_all.deb ... Unpacking python3-mccabe (0.7.0-1) ... Selecting previously unselected package python3-pycodestyle. Preparing to unpack .../050-python3-pycodestyle_2.12.1-1_all.deb ... Unpacking python3-pycodestyle (2.12.1-1) ... Selecting previously unselected package python3-pyflakes. Preparing to unpack .../051-python3-pyflakes_3.2.0-1_all.deb ... Unpacking python3-pyflakes (3.2.0-1) ... Selecting previously unselected package python3-flake8. Preparing to unpack .../052-python3-flake8_7.1.1-2_all.deb ... Unpacking python3-flake8 (7.1.1-2) ... Selecting previously unselected package flake8. Preparing to unpack .../053-flake8_7.1.1-2_all.deb ... Unpacking flake8 (7.1.1-2) ... Selecting previously unselected package libonig5:amd64. Preparing to unpack .../054-libonig5_6.9.9-1+b1_amd64.deb ... Unpacking libonig5:amd64 (6.9.9-1+b1) ... Selecting previously unselected package libjq1:amd64. Preparing to unpack .../055-libjq1_1.7.1-3+b1_amd64.deb ... Unpacking libjq1:amd64 (1.7.1-3+b1) ... Selecting previously unselected package jq. Preparing to unpack .../056-jq_1.7.1-3+b1_amd64.deb ... Unpacking jq (1.7.1-3+b1) ... Selecting previously unselected package x11-common. Preparing to unpack .../057-x11-common_1%3a7.7+23.1_all.deb ... Unpacking x11-common (1:7.7+23.1) ... Selecting previously unselected package libice6:amd64. Preparing to unpack .../058-libice6_2%3a1.1.1-1_amd64.deb ... Unpacking libice6:amd64 (2:1.1.1-1) ... Selecting previously unselected package libjs-jquery-isonscreen. Preparing to unpack .../059-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... Selecting previously unselected package libjs-jquery-metadata. Preparing to unpack .../060-libjs-jquery-metadata_12-4_all.deb ... Unpacking libjs-jquery-metadata (12-4) ... Selecting previously unselected package libjs-jquery-tablesorter. Preparing to unpack .../061-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... Selecting previously unselected package libjs-jquery-throttle-debounce. Preparing to unpack .../062-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... Selecting previously unselected package libjs-underscore. Preparing to unpack .../063-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Selecting previously unselected package libjs-sphinxdoc. Preparing to unpack .../064-libjs-sphinxdoc_7.4.7-4_all.deb ... Unpacking libjs-sphinxdoc (7.4.7-4) ... Selecting previously unselected package libjson-perl. Preparing to unpack .../065-libjson-perl_4.10000-1_all.deb ... Unpacking libjson-perl (4.10000-1) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../066-libpython3.13-stdlib_3.13.0-2_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.0-2) ... Selecting previously unselected package libsm6:amd64. Preparing to unpack .../067-libsm6_2%3a1.2.4-1_amd64.deb ... Unpacking libsm6:amd64 (2:1.2.4-1) ... Selecting previously unselected package libsubunit-perl. Preparing to unpack .../068-libsubunit-perl_1.4.2-3_all.deb ... Unpacking libsubunit-perl (1.4.2-3) ... Selecting previously unselected package libxau6:amd64. Preparing to unpack .../069-libxau6_1%3a1.0.11-1_amd64.deb ... Unpacking libxau6:amd64 (1:1.0.11-1) ... Selecting previously unselected package libxdmcp6:amd64. Preparing to unpack .../070-libxdmcp6_1%3a1.1.2-3+b2_amd64.deb ... Unpacking libxdmcp6:amd64 (1:1.1.2-3+b2) ... Selecting previously unselected package libxcb1:amd64. Preparing to unpack .../071-libxcb1_1.17.0-2+b1_amd64.deb ... Unpacking libxcb1:amd64 (1.17.0-2+b1) ... Selecting previously unselected package libx11-data. Preparing to unpack .../072-libx11-data_2%3a1.8.10-2_all.deb ... Unpacking libx11-data (2:1.8.10-2) ... Selecting previously unselected package libx11-6:amd64. Preparing to unpack .../073-libx11-6_2%3a1.8.10-2_amd64.deb ... Unpacking libx11-6:amd64 (2:1.8.10-2) ... Selecting previously unselected package libxext6:amd64. Preparing to unpack .../074-libxext6_2%3a1.3.4-1+b2_amd64.deb ... Unpacking libxext6:amd64 (2:1.3.4-1+b2) ... Selecting previously unselected package libxt6t64:amd64. Preparing to unpack .../075-libxt6t64_1%3a1.2.1-1.2+b1_amd64.deb ... Unpacking libxt6t64:amd64 (1:1.2.1-1.2+b1) ... Selecting previously unselected package libxmu6:amd64. Preparing to unpack .../076-libxmu6_2%3a1.1.3-3+b3_amd64.deb ... Unpacking libxmu6:amd64 (2:1.1.3-3+b3) ... Selecting previously unselected package libyaml-0-2:amd64. Preparing to unpack .../077-libyaml-0-2_0.2.5-1+b2_amd64.deb ... Unpacking libyaml-0-2:amd64 (0.2.5-1+b2) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../078-python3-wheel_0.45.0-1_all.deb ... Unpacking python3-wheel (0.45.0-1) ... Selecting previously unselected package python3-pip. Preparing to unpack .../079-python3-pip_24.3.1+dfsg-1_all.deb ... Unpacking python3-pip (24.3.1+dfsg-1) ... Selecting previously unselected package openstack-pkg-tools. Preparing to unpack .../080-openstack-pkg-tools_130_all.deb ... Unpacking openstack-pkg-tools (130) ... Selecting previously unselected package pyflakes3. Preparing to unpack .../081-pyflakes3_3.2.0-1_all.deb ... Unpacking pyflakes3 (3.2.0-1) ... Selecting previously unselected package python-babel-localedata. Preparing to unpack .../082-python-babel-localedata_2.16.0-1_all.deb ... Unpacking python-babel-localedata (2.16.0-1) ... Selecting previously unselected package python3-alabaster. Preparing to unpack .../083-python3-alabaster_0.7.16-0.1_all.deb ... Unpacking python3-alabaster (0.7.16-0.1) ... Selecting previously unselected package python3.13. Preparing to unpack .../084-python3.13_3.13.0-2_amd64.deb ... Unpacking python3.13 (3.13.0-2) ... Selecting previously unselected package python3-all. Preparing to unpack .../085-python3-all_3.12.7-1_amd64.deb ... Unpacking python3-all (3.12.7-1) ... Selecting previously unselected package python3-autopage. Preparing to unpack .../086-python3-autopage_0.4.0-3.1_all.deb ... Unpacking python3-autopage (0.4.0-3.1) ... Selecting previously unselected package python3-babel. Preparing to unpack .../087-python3-babel_2.16.0-1_all.deb ... Unpacking python3-babel (2.16.0-1) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../088-python3-certifi_2024.8.30+dfsg-1_all.deb ... Unpacking python3-certifi (2024.8.30+dfsg-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../089-python3-chardet_5.2.0+dfsg-1_all.deb ... Unpacking python3-chardet (5.2.0+dfsg-1) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../090-python3-charset-normalizer_3.4.0-1+b1_amd64.deb ... Unpacking python3-charset-normalizer (3.4.0-1+b1) ... Selecting previously unselected package python3-wcwidth. Preparing to unpack .../091-python3-wcwidth_0.2.13+dfsg1-1_all.deb ... Unpacking python3-wcwidth (0.2.13+dfsg1-1) ... Selecting previously unselected package xclip. Preparing to unpack .../092-xclip_0.13-4_amd64.deb ... Unpacking xclip (0.13-4) ... Selecting previously unselected package python3-pyperclip. Preparing to unpack .../093-python3-pyperclip_1.8.2-2_all.deb ... Unpacking python3-pyperclip (1.8.2-2) ... Selecting previously unselected package python3-cmd2. Preparing to unpack .../094-python3-cmd2_2.5.4+ds-1_all.deb ... Unpacking python3-cmd2 (2.5.4+ds-1) ... Selecting previously unselected package python3-roman. Preparing to unpack .../095-python3-roman_4.2-1_all.deb ... Unpacking python3-roman (4.2-1) ... Selecting previously unselected package python3-docutils. Preparing to unpack .../096-python3-docutils_0.21.2+dfsg-2_all.deb ... Unpacking python3-docutils (0.21.2+dfsg-2) ... Selecting previously unselected package python3-pbr. Preparing to unpack .../097-python3-pbr_6.1.0-3_all.deb ... Unpacking python3-pbr (6.1.0-3) ... Selecting previously unselected package python3-prettytable. Preparing to unpack .../098-python3-prettytable_3.10.1-1_all.deb ... Unpacking python3-prettytable (3.10.1-1) ... Selecting previously unselected package python3-stevedore. Preparing to unpack .../099-python3-stevedore_5.3.0-3_all.deb ... Unpacking python3-stevedore (5.3.0-3) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../100-python3-yaml_6.0.2-1+b1_amd64.deb ... Unpacking python3-yaml (6.0.2-1+b1) ... Selecting previously unselected package python3-cliff. Preparing to unpack .../101-python3-cliff_4.7.0-2_all.deb ... Unpacking python3-cliff (4.7.0-2) ... Selecting previously unselected package python3-colorama. Preparing to unpack .../102-python3-colorama_0.4.6-4_all.deb ... Unpacking python3-colorama (0.4.6-4) ... Selecting previously unselected package python3-coverage. Preparing to unpack .../103-python3-coverage_7.6.0+dfsg1-2+b1_amd64.deb ... Unpacking python3-coverage (7.6.0+dfsg1-2+b1) ... Selecting previously unselected package python3-decorator. Preparing to unpack .../104-python3-decorator_5.1.1-5_all.deb ... Unpacking python3-decorator (5.1.1-5) ... Selecting previously unselected package python3-defusedxml. Preparing to unpack .../105-python3-defusedxml_0.7.1-2_all.deb ... Unpacking python3-defusedxml (0.7.1-2) ... Selecting previously unselected package python3-extras. Preparing to unpack .../106-python3-extras_1.0.0-5_all.deb ... Unpacking python3-extras (1.0.0-5) ... Selecting previously unselected package python3-testtools. Preparing to unpack .../107-python3-testtools_2.7.2-4_all.deb ... Unpacking python3-testtools (2.7.2-4) ... Selecting previously unselected package python3-fixtures. Preparing to unpack .../108-python3-fixtures_4.1.0-2_all.deb ... Unpacking python3-fixtures (4.1.0-2) ... Selecting previously unselected package python3-hacking. Preparing to unpack .../109-python3-hacking_4.1.0-3_all.deb ... Unpacking python3-hacking (4.1.0-3) ... Selecting previously unselected package python3-pyparsing. Preparing to unpack .../110-python3-pyparsing_3.1.2-1_all.deb ... Unpacking python3-pyparsing (3.1.2-1) ... Selecting previously unselected package python3-httplib2. Preparing to unpack .../111-python3-httplib2_0.22.0-1_all.deb ... Unpacking python3-httplib2 (0.22.0-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../112-python3-idna_3.8-2_all.deb ... Unpacking python3-idna (3.8-2) ... Selecting previously unselected package python3-imagesize. Preparing to unpack .../113-python3-imagesize_1.4.1-1_all.deb ... Unpacking python3-imagesize (1.4.1-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../114-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../115-python3-markupsafe_2.1.5-1+b2_amd64.deb ... Unpacking python3-markupsafe (2.1.5-1+b2) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../116-python3-jinja2_3.1.3-1_all.deb ... Unpacking python3-jinja2 (3.1.3-1) ... Selecting previously unselected package python3-ply. Preparing to unpack .../117-python3-ply_3.11-7_all.deb ... Unpacking python3-ply (3.11-7) ... Selecting previously unselected package python3-six. Preparing to unpack .../118-python3-six_1.16.0-7_all.deb ... Unpacking python3-six (1.16.0-7) ... Selecting previously unselected package python3-jsonpath-rw. Preparing to unpack .../119-python3-jsonpath-rw_1.4.0-6_all.deb ... Unpacking python3-jsonpath-rw (1.4.0-6) ... Selecting previously unselected package python3-jsonpath-rw-ext. Preparing to unpack .../120-python3-jsonpath-rw-ext_1.2.2-3_all.deb ... Unpacking python3-jsonpath-rw-ext (1.2.2-3) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../121-python3-packaging_24.2-1_all.deb ... Unpacking python3-packaging (24.2-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../122-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../123-python3-pygments_2.18.0+dfsg-1_all.deb ... Unpacking python3-pygments (2.18.0+dfsg-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../124-python3-pytest_8.3.3-1_all.deb ... Unpacking python3-pytest (8.3.3-1) ... Selecting previously unselected package python3-pytest-cov. Preparing to unpack .../125-python3-pytest-cov_5.0.0-1_all.deb ... Unpacking python3-pytest-cov (5.0.0-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../126-python3-urllib3_2.0.7-2_all.deb ... Unpacking python3-urllib3 (2.0.7-2) ... Selecting previously unselected package python3-requests. Preparing to unpack .../127-python3-requests_2.32.3+dfsg-1_all.deb ... Unpacking python3-requests (2.32.3+dfsg-1) ... Selecting previously unselected package python3-snowballstemmer. Preparing to unpack .../128-python3-snowballstemmer_2.2.0-4_all.deb ... Unpacking python3-snowballstemmer (2.2.0-4) ... Selecting previously unselected package sphinx-common. Preparing to unpack .../129-sphinx-common_7.4.7-4_all.deb ... Unpacking sphinx-common (7.4.7-4) ... Selecting previously unselected package python3-sphinx. Preparing to unpack .../130-python3-sphinx_7.4.7-4_all.deb ... Unpacking python3-sphinx (7.4.7-4) ... Selecting previously unselected package python3-tomlkit. Preparing to unpack .../131-python3-tomlkit_0.13.2-1_all.deb ... Unpacking python3-tomlkit (0.13.2-1) ... Selecting previously unselected package python3-voluptuous. Preparing to unpack .../132-python3-voluptuous_0.14.2-1_all.deb ... Unpacking python3-voluptuous (0.14.2-1) ... Selecting previously unselected package python3-subunit. Preparing to unpack .../133-python3-subunit_1.4.2-3_all.deb ... Unpacking python3-subunit (1.4.2-3) ... Selecting previously unselected package subunit. Preparing to unpack .../134-subunit_1.4.2-3_all.deb ... Unpacking subunit (1.4.2-3) ... Selecting previously unselected package python3-stestr. Preparing to unpack .../135-python3-stestr_4.1.0-2_all.deb ... Unpacking python3-stestr (4.1.0-2) ... Selecting previously unselected package python3-wsgi-intercept. Preparing to unpack .../136-python3-wsgi-intercept_1.13.0-2_all.deb ... Unpacking python3-wsgi-intercept (1.13.0-2) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up libxau6:amd64 (1:1.0.11-1) ... Setting up libxdmcp6:amd64 (1:1.1.2-3+b2) ... Setting up libsubunit-perl (1.4.2-3) ... Setting up libkeyutils1:amd64 (1.6.3-4) ... Setting up libxcb1:amd64 (1.17.0-2+b1) ... Setting up libicu72:amd64 (72.1-5+b1) ... Setting up bsdextrautils (2.40.2-11) ... Setting up libmagic-mgc (1:5.45-3+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:amd64 (0.2.5-1+b2) ... Setting up libtirpc-common (1.3.4+ds-1.3) ... Setting up libdebhelper-perl (13.20) ... Setting up libmagic1t64:amd64 (1:5.45-3+b1) ... Setting up x11-common (1:7.7+23.1) ... invoke-rc.d: could not determine current runlevel Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix. Setting up gettext-base (0.22.5-2) ... Setting up m4 (1.4.19-4) ... Setting up libcom-err2:amd64 (1.47.1-1+b1) ... Setting up file (1:5.45-3+b1) ... Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up python-babel-localedata (2.16.0-1) ... Setting up libkrb5support0:amd64 (1.21.3-3) ... Setting up tzdata (2024b-3) ... Current default time zone: 'Etc/UTC' Local time is now: Sat Dec 20 08:38:59 UTC 2025. Universal Time is now: Sat Dec 20 08:38:59 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpython3.13-minimal:amd64 (3.13.0-2) ... Setting up autotools-dev (20220109.1) ... Setting up libx11-data (2:1.8.10-2) ... Setting up autopoint (0.22.5-2) ... Setting up libk5crypto3:amd64 (1.21.3-3) ... Setting up autoconf (2.72-3) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.24) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up libjson-perl (4.10000-1) ... Setting up python3.13-minimal (3.13.0-2) ... Setting up libx11-6:amd64 (2:1.8.10-2) ... Setting up netbase (6.4) ... Setting up sgml-base (1.31) ... Setting up libkrb5-3:amd64 (1.21.3-3) ... Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... Setting up openssl (3.3.2-2) ... Setting up readline-common (8.2-5) ... Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b1) ... Setting up libonig5:amd64 (6.9.9-1+b1) ... Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... Setting up libice6:amd64 (2:1.1.1-1) ... Setting up gettext (0.22.5-2) ... Setting up libtool (2.4.7-8) ... Setting up libjq1:amd64 (1.7.1-3+b1) ... Setting up libxext6:amd64 (2:1.3.4-1+b2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 146 added, 0 removed; done. Setting up libjs-jquery-metadata (12-4) ... Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... Setting up libgssapi-krb5-2:amd64 (1.21.3-3) ... Setting up libjs-sphinxdoc (7.4.7-4) ... Setting up libreadline8t64:amd64 (8.2-5) ... Setting up dh-strip-nondeterminism (1.14.0-1) ... Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... Setting up groff-base (1.23.0-5) ... Setting up xml-core (0.19) ... Setting up jq (1.7.1-3+b1) ... Setting up libsm6:amd64 (2:1.2.4-1) ... Setting up libpython3.13-stdlib:amd64 (3.13.0-2) ... Setting up libtirpc3t64:amd64 (1.3.4+ds-1.3+b1) ... Setting up python3.13 (3.13.0-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.13.0-1) ... Not building database; man-db/auto-update is not 'true'. Setting up sphinx-common (7.4.7-4) ... Setting up libxt6t64:amd64 (1:1.2.1-1.2+b1) ... Setting up libnsl2:amd64 (1.3.0-3+b3) ... Setting up libxmu6:amd64 (2:1.1.3-3+b3) ... Setting up libpython3.12-stdlib:amd64 (3.12.7-3) ... Setting up python3.12 (3.12.7-3) ... Setting up debhelper (13.20) ... Setting up xclip (0.13-4) ... Setting up libpython3-stdlib:amd64 (3.12.7-1) ... Setting up python3 (3.12.7-1) ... Setting up python3-zipp (3.21.0-1) ... Setting up python3-autocommand (2.2.2-3) ... Setting up python3-markupsafe (2.1.5-1+b2) ... Setting up python3-wheel (0.45.0-1) ... Setting up python3-six (1.16.0-7) ... Setting up python3-roman (4.2-1) ... Setting up python3-decorator (5.1.1-5) ... Setting up python3-pycodestyle (2.12.1-1) ... Setting up python3-jinja2 (3.1.3-1) ... Setting up python3-packaging (24.2-1) ... Setting up python3-wcwidth (0.2.13+dfsg1-1) ... Setting up python3-pyparsing (3.1.2-1) ... Setting up python3-certifi (2024.8.30+dfsg-1) ... Setting up python3-snowballstemmer (2.2.0-4) ... Setting up python3-idna (3.8-2) ... Setting up python3-typing-extensions (4.12.2-2) ... Setting up python3-pip (24.3.1+dfsg-1) ... Setting up python3-urllib3 (2.0.7-2) ... Setting up python3-pluggy (1.5.0-1) ... Setting up python3-httplib2 (0.22.0-1) ... Setting up python3-mccabe (0.7.0-1) ... Setting up python3-voluptuous (0.14.2-1) ... Setting up python3-prettytable (3.10.1-1) ... Setting up python3-tomlkit (0.13.2-1) ... Setting up python3-imagesize (1.4.1-1) ... Setting up python3-more-itertools (10.5.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up python3-jaraco.context (6.0.0-1) ... Setting up python3-colorama (0.4.6-4) ... Setting up python3-defusedxml (0.7.1-2) ... Setting up python3-charset-normalizer (3.4.0-1+b1) ... Setting up python3-pytest (8.3.3-1) ... Setting up python3-alabaster (0.7.16-0.1) ... Setting up python3-ply (3.11-7) ... Setting up python3-autopage (0.4.0-3.1) ... Setting up python3-typeguard (4.4.1-1) ... Setting up python3-wsgi-intercept (1.13.0-2) ... Setting up python3-extras (1.0.0-5) ... Setting up python3-jsonpath-rw (1.4.0-6) ... Setting up python3-all (3.12.7-1) ... Setting up python3-coverage (7.6.0+dfsg1-2+b1) ... Setting up python3-yaml (6.0.2-1+b1) ... Setting up python3-pyperclip (1.8.2-2) ... Setting up python3-pytest-cov (5.0.0-1) ... Setting up openstack-pkg-tools (130) ... Setting up python3-inflect (7.3.1-2) ... Setting up python3-cmd2 (2.5.4+ds-1) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-pkg-resources (75.2.0-1) ... Setting up python3-setuptools (75.2.0-1) ... Setting up python3-babel (2.16.0-1) ... update-alternatives: using /usr/bin/pybabel-python3 to provide /usr/bin/pybabel (pybabel) in auto mode Setting up python3-pbr (6.1.0-3) ... Setting up python3-pyflakes (3.2.0-1) ... Setting up python3-flake8 (7.1.1-2) ... Setting up python3-pygments (2.18.0+dfsg-1) ... Setting up python3-chardet (5.2.0+dfsg-1) ... Setting up python3-requests (2.32.3+dfsg-1) ... Setting up python3-jsonpath-rw-ext (1.2.2-3) ... Setting up python3-stevedore (5.3.0-3) ... Setting up dh-python (6.20241024) ... Setting up pyflakes3 (3.2.0-1) ... Setting up flake8 (7.1.1-2) ... Setting up python3-hacking (4.1.0-3) ... Setting up python3-testtools (2.7.2-4) ... Setting up python3-subunit (1.4.2-3) ... Setting up python3-fixtures (4.1.0-2) ... Setting up subunit (1.4.2-3) ... Processing triggers for libc-bin (2.40-3) ... Processing triggers for sgml-base (1.31) ... Setting up docutils-common (0.21.2+dfsg-2) ... Processing triggers for sgml-base (1.31) ... Setting up python3-docutils (0.21.2+dfsg-2) ... Setting up python3-cliff (4.7.0-2) ... Setting up python3-sphinx (7.4.7-4) ... Setting up python3-stestr (4.1.0-2) ... Processing triggers for ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... fakeroot is already the newest version (1.36-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package I: Running cd /build/reproducible-path/python-gabbi-3.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-gabbi_3.0.0-2_source.changes dpkg-buildpackage: info: source package python-gabbi dpkg-buildpackage: info: source version 3.0.0-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Thomas Goirand dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 dpkg-source: info: using options from python-gabbi-3.0.0/debian/source/options: --extend-diff-ignore=^[^/]*[.]egg-info/ fakeroot debian/rules clean make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh clean --buildsystem=python_distutils --with python3,sphinxdoc debian/rules override_dh_auto_clean make[1]: Entering directory '/build/reproducible-path/python-gabbi-3.0.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions rm -rf build .stestr gabbi.egg-info find . -iname '*.pyc' -delete for i in $(find . -type d -iname __pycache__) ; do rm -rf $i ; done make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_autoreconf_clean -O--buildsystem=python_distutils dh_clean -O--buildsystem=python_distutils debian/rules build make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh build --buildsystem=python_distutils --with python3,sphinxdoc dh_update_autotools_config -O--buildsystem=python_distutils dh_autoreconf -O--buildsystem=python_distutils dh_auto_configure -O--buildsystem=python_distutils dh_auto_configure: warning: Please use the third-party "pybuild" build system instead of python-distutils dh_auto_configure: warning: This feature will be removed in compat 12. debian/rules override_dh_auto_build make[1]: Entering directory '/build/reproducible-path/python-gabbi-3.0.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/python-gabbi-3.0.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' create-stamp debian/debhelper-build-stamp fakeroot debian/rules binary make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh binary --buildsystem=python_distutils --with python3,sphinxdoc dh_testroot -O--buildsystem=python_distutils dh_prep -O--buildsystem=python_distutils debian/rules override_dh_auto_install make[1]: Entering directory '/build/reproducible-path/python-gabbi-3.0.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions pkgos-dh_auto_install --no-py2 --in-tmp + PKGOS_IN_TMP=no + echo WARNING: --no-py2 is deprecated and always on. WARNING: --no-py2 is deprecated and always on. + shift + PKGOS_IN_TMP=yes + shift + dpkg-parsechangelog -SSource + SRC_PKG_NAME=python-gabbi + echo python-gabbi + sed s/python-// + PY_MODULE_NAME=gabbi + py3versions -vr + PYTHON3S=3.13 3.12 + [ yes = yes ] + TARGET_DIR=tmp + pwd + python3.13 setup.py install --install-layout=deb --root /build/reproducible-path/python-gabbi-3.0.0/debian/tmp /usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! ******************************************************************************** Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`. ******************************************************************************** !! dist.fetch_build_eggs(dist.setup_requires) /usr/lib/python3/dist-packages/setuptools/command/develop.py:41: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() /usr/lib/python3/dist-packages/pbr/core.py:140: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) running install [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running build running build_py creating build/lib/gabbi copying gabbi/utils.py -> build/lib/gabbi copying gabbi/suitemaker.py -> build/lib/gabbi copying gabbi/reporter.py -> build/lib/gabbi copying gabbi/httpclient.py -> build/lib/gabbi copying gabbi/driver.py -> build/lib/gabbi copying gabbi/runner.py -> build/lib/gabbi copying gabbi/case.py -> build/lib/gabbi copying gabbi/fixture.py -> build/lib/gabbi copying gabbi/exception.py -> build/lib/gabbi copying gabbi/__init__.py -> build/lib/gabbi copying gabbi/json_parser.py -> build/lib/gabbi copying gabbi/pytester.py -> build/lib/gabbi copying gabbi/suite.py -> build/lib/gabbi creating build/lib/gabbi/tests copying gabbi/tests/test_runner.py -> build/lib/gabbi/tests copying gabbi/tests/test_driver.py -> build/lib/gabbi/tests copying gabbi/tests/test_suitemaker.py -> build/lib/gabbi/tests copying gabbi/tests/test_live.py -> build/lib/gabbi/tests copying gabbi/tests/custom_response_handler.py -> build/lib/gabbi/tests copying gabbi/tests/util.py -> build/lib/gabbi/tests copying gabbi/tests/test_data_to_string.py -> build/lib/gabbi/tests copying gabbi/tests/test_jsonpath.py -> build/lib/gabbi/tests copying gabbi/tests/test_handlers.py -> build/lib/gabbi/tests copying gabbi/tests/test_use_prior_test.py -> build/lib/gabbi/tests copying gabbi/tests/test_load_data_file.py -> build/lib/gabbi/tests copying gabbi/tests/__init__.py -> build/lib/gabbi/tests copying gabbi/tests/test_fixtures.py -> build/lib/gabbi/tests copying gabbi/tests/test_history.py -> build/lib/gabbi/tests copying gabbi/tests/test_intercept.py -> build/lib/gabbi/tests copying gabbi/tests/test_suite.py -> build/lib/gabbi/tests copying gabbi/tests/test_inner_fixture.py -> build/lib/gabbi/tests copying gabbi/tests/test_unsafe_yaml.py -> build/lib/gabbi/tests copying gabbi/tests/test_utils.py -> build/lib/gabbi/tests copying gabbi/tests/test_parse_url.py -> build/lib/gabbi/tests copying gabbi/tests/test_replacers.py -> build/lib/gabbi/tests copying gabbi/tests/test_syntax_warning.py -> build/lib/gabbi/tests copying gabbi/tests/simple_wsgi.py -> build/lib/gabbi/tests copying gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/tests creating build/lib/gabbi/handlers copying gabbi/handlers/base.py -> build/lib/gabbi/handlers copying gabbi/handlers/yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/handlers copying gabbi/handlers/core.py -> build/lib/gabbi/handlers copying gabbi/handlers/__init__.py -> build/lib/gabbi/handlers copying gabbi/handlers/jsonhandler.py -> build/lib/gabbi/handlers running egg_info creating gabbi.egg-info writing gabbi.egg-info/PKG-INFO writing dependency_links to gabbi.egg-info/dependency_links.txt writing entry points to gabbi.egg-info/entry_points.txt writing requirements to gabbi.egg-info/requires.txt writing top-level names to gabbi.egg-info/top_level.txt [pbr] Processing SOURCES.txt writing manifest file 'gabbi.egg-info/SOURCES.txt' warning: no files found matching 'AUTHORS' warning: no files found matching 'ChangeLog' warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'gabbi.egg-info/SOURCES.txt' running install_lib creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/utils.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/suitemaker.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/reporter.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/httpclient.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/case.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/exception.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/handlers/base.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/handlers/yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/handlers/core.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/handlers/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/handlers/jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/json_parser.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/pytester.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_suitemaker.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_live.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/custom_response_handler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/util.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_data_to_string.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_jsonpath.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_handlers.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_use_prior_test.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_load_data_file.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_fixtures.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_history.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_intercept.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_inner_fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_unsafe_yaml.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_utils.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_parse_url.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_replacers.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_syntax_warning.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/simple_wsgi.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/utils.py to utils.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suitemaker.py to suitemaker.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/reporter.py to reporter.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/runner.py to runner.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/case.py to case.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/exception.py to exception.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/pytester.py to pytester.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suitemaker.py to test_suitemaker.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_live.py to test_live.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/custom_response_handler.py to custom_response_handler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_data_to_string.py to test_data_to_string.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_jsonpath.py to test_jsonpath.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_handlers.py to test_handlers.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_load_data_file.py to test_load_data_file.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_fixtures.py to test_fixtures.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_history.py to test_history.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_unsafe_yaml.py to test_unsafe_yaml.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_utils.py to test_utils.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_replacers.py to test_replacers.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_syntax_warning.py to test_syntax_warning.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suite.py to suite.cpython-313.pyc running install_egg_info Copying gabbi.egg-info to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info Skipping SOURCES.txt running install_scripts Installing gabbi-run script to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/bin + pwd + python3.12 setup.py install --install-layout=deb --root /build/reproducible-path/python-gabbi-3.0.0/debian/tmp /usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! ******************************************************************************** Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`. ******************************************************************************** !! dist.fetch_build_eggs(dist.setup_requires) /usr/lib/python3/dist-packages/setuptools/command/develop.py:41: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() /usr/lib/python3/dist-packages/pbr/core.py:140: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) running install [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running build running build_py running egg_info writing gabbi.egg-info/PKG-INFO writing dependency_links to gabbi.egg-info/dependency_links.txt writing entry points to gabbi.egg-info/entry_points.txt writing requirements to gabbi.egg-info/requires.txt writing top-level names to gabbi.egg-info/top_level.txt [pbr] Reusing existing SOURCES.txt running install_lib byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/utils.py to utils.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suitemaker.py to suitemaker.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/reporter.py to reporter.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/runner.py to runner.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/case.py to case.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/exception.py to exception.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/pytester.py to pytester.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suitemaker.py to test_suitemaker.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_live.py to test_live.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/custom_response_handler.py to custom_response_handler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_data_to_string.py to test_data_to_string.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_jsonpath.py to test_jsonpath.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_handlers.py to test_handlers.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_load_data_file.py to test_load_data_file.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_fixtures.py to test_fixtures.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_history.py to test_history.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_unsafe_yaml.py to test_unsafe_yaml.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_utils.py to test_utils.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_replacers.py to test_replacers.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_syntax_warning.py to test_syntax_warning.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suite.py to suite.cpython-312.pyc running install_egg_info removing '/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info' (and everything under it) Copying gabbi.egg-info to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info Skipping SOURCES.txt running install_scripts Installing gabbi-run script to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/bin + pwd + rm -rf /build/reproducible-path/python-gabbi-3.0.0/debian/python*/usr/lib/python*/dist-packages/*.pth + pwd + rm -rf /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python*/dist-packages/*.pth # test_live are doing internet access. pkgos-dh_auto_test --no-py2 'gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request)' + PKGOS_TEST_PARALLEL=yes + PKGOS_TEST_SERIAL=no + PYTHONS=disabled + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + TEST_SERIAL_OPT= + echo WARNING: --no-py2 is deprecated, and always on. WARNING: --no-py2 is deprecated, and always on. + shift + py3versions -vr + PYTHON3S=3.13 3.12 + [ yes = no ] + [ no = yes ] + [ 3.13 = disabled ] + echo 3.13 + cut -d. -f1 + PYMAJOR=3 + echo ===> Testing with python (python3) ===> Testing with python (python3) + pwd + [ -d /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ] + [ -z ] + pwd + echo Implicitly adding PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages Implicitly adding PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages + pwd + export PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages + [ -e .stestr.conf ] + [ -x /usr/bin/python3-stestr ] + STESTR=stestr + rm -rf .stestr + + subunit2pyunit PYTHON=python3.13 stestr run --parallel --subunit gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request) /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers gabbi.tests.test_handlers.HandlersTest.test_response_headers ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch ... /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex ... ok gabbi.tests.test_data_to_string.TestDataToString.testHappyPath gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok gabbi.tests.test_data_to_string.TestDataToString.testNoContentType gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok gabbi.tests.test_data_to_string.TestDataToString.testNoHandler gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_inner_fixture.inner_get_three.test_request gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.contenttype_put_content-type.test_request gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.contenttype_post_content-type.test_request gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_history.HistoryTest.test_cookie_replace_history gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok gabbi.tests.test_history.HistoryTest.test_header_replace_prior gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok gabbi.tests.test_history.HistoryTest.test_header_replace_with_history gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok gabbi.tests.test_history.HistoryTest.test_location_replace_history gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_location_replace_prior gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_inner_fixture.inner_get_two.test_request gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok gabbi.tests.test_intercept.contenttype_patch_content-type.test_request gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path ... ok gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request ... ok gabbi.tests.test_history.HistoryTest.test_response_replace_prior gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail ... ok gabbi.tests.test_history.HistoryTest.test_response_replace_with_history gabbi.tests.test_history.HistoryTest.test_response_replace_with_history ... ok gabbi.tests.test_history.HistoryTest.test_url_replace_history gabbi.tests.test_history.HistoryTest.test_url_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_url_replace_prior gabbi.tests.test_history.HistoryTest.test_url_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok gabbi.tests.test_inner_fixture.inner_get_one.test_request gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok gabbi.tests.test_intercept.coerce_use_data.test_request gabbi.tests.test_intercept.coerce_use_data.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex ... ok gabbi.tests.test_intercept.json-extensions_test_len.test_request gabbi.tests.test_intercept.json-extensions_test_len.test_request ... ok gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok gabbi.tests.test_intercept.coerce_with_list.test_request gabbi.tests.test_intercept.coerce_with_list.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... ok gabbi.tests.test_intercept.coerce_from_environ.test_request gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok gabbi.tests.test_intercept.regex_regex_header_test.test_request gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok gabbi.tests.test_intercept.data_post_data_for_next.test_request gabbi.tests.test_intercept.data_post_data_for_next.test_request ... ok gabbi.tests.test_intercept.coerce_object_with_list.test_request gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler ... ok gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings gabbi.tests.test_handlers.HandlersTest.test_response_strings ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload ... ok gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok gabbi.tests.test_intercept.header-key_header_named_http.test_request gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok gabbi.tests.test_intercept.regex_regex_string_test_json.test_request gabbi.tests.test_intercept.regex_regex_string_test_json.test_request ... ok gabbi.tests.test_intercept.data_load_data_list.test_request gabbi.tests.test_intercept.data_load_data_list.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.json-extensions_test_sort.test_request gabbi.tests.test_intercept.json-extensions_test_sort.test_request ... ok gabbi.tests.test_intercept.json-extensions_test_filtered.test_request gabbi.tests.test_intercept.json-extensions_test_filtered.test_request ... ok gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... expected failure gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... ok gabbi.tests.test_intercept.data_json_value_from_disk.test_request gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok gabbi.tests.test_intercept.casting_default_casts.test_request gabbi.tests.test_intercept.casting_default_casts.test_request ... ok gabbi.tests.test_intercept.failskip_wrong_status.test_request gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure gabbi.tests.test_intercept.failskip_wrong_status.test_request gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok gabbi.tests.test_intercept.casting_cast_to_string.test_request gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request ... ok gabbi.tests.test_intercept.casting_send_casted_json.test_request gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok gabbi.tests.test_intercept.casting_historic_casted_json.test_request gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... ok gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request ... ok gabbi.tests.test_intercept.casting_internal_json_fine.test_request gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok gabbi.tests.test_intercept.data_load_json_file.test_request gabbi.tests.test_intercept.data_load_json_file.test_request ... ok gabbi.tests.test_intercept.data_load_image_file.test_request gabbi.tests.test_intercept.data_load_image_file.test_request ... ok gabbi.tests.test_intercept.data_load_encoded_text.test_request gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok gabbi.tests.test_intercept.host-header_ssl_no_host.test_request gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... ok gabbi.tests.test_intercept.backref_post_some_more_json.test_request gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok gabbi.tests.test_intercept.last-url_get_that_same_url_again.test_request gabbi.tests.test_intercept.last-url_get_that_same_url_again.test_request ... ok gabbi.tests.test_intercept.casting_internal_json_fail.test_request gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure gabbi.tests.test_intercept.casting_internal_json_fail.test_request gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request ... ok gabbi.tests.test_intercept.self_get_simple_page.test_request gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok gabbi.tests.test_intercept.queryparams_unicode.test_request gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request ... ok gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request ... ok gabbi.tests.test_intercept.self_bogus_method.test_request gabbi.tests.test_intercept.self_bogus_method.test_request ... ok gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok gabbi.tests.test_intercept.poll_create_a_thing.test_request gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok gabbi.tests.test_intercept.self_query_returned.test_request gabbi.tests.test_intercept.self_query_returned.test_request ... ok gabbi.tests.test_intercept.self_simple_post.test_request gabbi.tests.test_intercept.self_simple_post.test_request ... ok gabbi.tests.test_intercept.self_use_prior_location.test_request gabbi.tests.test_intercept.self_use_prior_location.test_request ... ok gabbi.tests.test_intercept.self_checklimit.test_request gabbi.tests.test_intercept.self_checklimit.test_request ... ok gabbi.tests.test_intercept.data_load_data_dictionary.test_request gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok gabbi.tests.test_intercept.coerce_post_extra_data.test_request gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok gabbi.tests.test_intercept.data_partial_json_from_disk.test_request gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok gabbi.tests.test_intercept.self_test_binary_handling.test_request gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok gabbi.tests.test_intercept.backref_post_some_json.test_request gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... expected failure gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... ok gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... expected failure gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... ok gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... expected failure gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... ok gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required ... ok gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request ... ok #### left side json one #### > POST http://388ccb91-f5c6-430f-8136-887d19a350a8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://388ccb91-f5c6-430f-8136-887d19a350a8:8001/ < Location: http://388ccb91-f5c6-430f-8136-887d19a350a8:8001/ { "alpha": "alpha1", "beta": "beta1" } #### get simple page #### > GET http://2aaa16f0-2a1f-40e1-9127-7313eee0a38d:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2aaa16f0-2a1f-40e1-9127-7313eee0a38d:8001/ {} gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... ok gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... expected failure gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok gabbi.tests.test_intercept.poll_poller_fail.test_request gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure gabbi.tests.test_intercept.poll_poller_fail.test_request gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request ... ok #### post data #### > POST http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ < Location: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ < Location: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ < Location: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ { "one_environ": 1 } #### with list #### > POST http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ < Location: http://1815893e-6ddb-4db1-825b-7701b66e25f7:8001/ [ 1, 2, "3" ] #### left side json one #### > POST http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ < Location: http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ { "alpha": "alpha1", "beta": "beta1" } #### expand left side #### > POST http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ < Location: http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ { "alpha1": "alpha", "beta1": "beta" } #### expand environ left side #### > POST http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta", "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ < Location: http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/ { "alpha1": "alpha", "beta1": "beta", "1": "cow" } #### set key and value #### > GET http://18ce34cf-c0de-4377-be5c-bafb37ce1644:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < Content-Type: application/json { "1": "10" } #### default casts #### > POST http://dfc0e4a0-d787-436a-aea7-40d8bdeca5c1:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://dfc0e4a0-d787-436a-aea7-40d8bdeca5c1:8001/ < Location: http://dfc0e4a0-d787-436a-aea7-40d8bdeca5c1:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### get simple page #### > GET http://c607dec7-9cbf-49aa-973c-94afea5f655a:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c607dec7-9cbf-49aa-973c-94afea5f655a:8001/ {} #### yaml encoded value from disk #### > POST http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere < Location: http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### json encoded value from disk #### > POST http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere < Location: http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### yaml parital from disk #### > POST http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "type": "cat", "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere < Location: http://8b476410-79b9-4ff6-bc4e-dbc69742646d:8001/somewhere { "type": "cat", "sound": "meow" } gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok #### default casts #### > POST http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ < Location: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ < Location: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ { "string": "2" } #### json set up #### > POST http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ < Location: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### send casted json #### > POST http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ < Location: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ { "casted": 2 } #### historic casted json #### > POST http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ < Location: http://d55feb1c-0fce-40af-9b60-062be847bd2f:8001/ { "casted": 2 } #### get simple page #### > GET http://0ddc1bf0-90c1-493b-9513-e226d8872411:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0ddc1bf0-90c1-493b-9513-e226d8872411:8001/ {} gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request ... ok gabbi.tests.test_intercept.self_get_ssl_page.test_request gabbi.tests.test_intercept.self_get_ssl_page.test_request ... ok gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... expected failure gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... ok gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request ... ok gabbi.tests.test_intercept.backref_get_a_historical_response.test_request gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see.test_request gabbi.tests.test_intercept.fixture_just_to_see.test_request ... ok gabbi.tests.test_intercept.coerce_check_posted_data.test_request gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... ok gabbi.tests.test_intercept.method-shortcut_simple_post.test_request gabbi.tests.test_intercept.method-shortcut_simple_post.test_request ... ok gabbi.tests.test_intercept.backref_post_even_more_json.test_request gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_custom_response_handler gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_data_dir_good gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_exit_code gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok gabbi.tests.test_intercept.skipall_a_skipped_test.test_request gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_input_files gabbi.tests.test_runner.RunnerTest.test_input_files ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_target_url_parsing gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok gabbi.tests.test_utils.BinaryTypesTest.test_binary gabbi.tests.test_utils.BinaryTypesTest.test_binary ... ok gabbi.tests.test_utils.BinaryTypesTest.test_not_binary gabbi.tests.test_utils.BinaryTypesTest.test_not_binary ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_port gabbi.tests.test_utils.CreateURLTest.test_create_url_port ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_simple gabbi.tests.test_utils.CreateURLTest.test_create_url_simple ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 ... ok #### confirm notempty #### > GET http://cf511b8f-ec04-4df6-9fcb-340b6b708e0e:8001/notempty > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK notempty #### json encoded value from disk #### > POST http://6b73cb88-dec6-42bf-b39e-41b118130eed:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6b73cb88-dec6-42bf-b39e-41b118130eed:8001/ < Location: http://6b73cb88-dec6-42bf-b39e-41b118130eed:8001/ { "foo": { "b\u00e1r": 1 } } #### get simple page #### > GET http://d2ba3431-995d-43e8-8e25-88a80e39a677:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d2ba3431-995d-43e8-8e25-88a80e39a677:8001/ {} gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request ... ok gabbi.tests.test_intercept.poll_loop_location.test_request gabbi.tests.test_intercept.poll_loop_location.test_request ... ok gabbi.tests.test_intercept.host-header_host_without_ssl.test_request gabbi.tests.test_intercept.host-header_host_without_ssl.test_request ... ok gabbi.tests.test_intercept.casting_json_set_up.test_request gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see_three.test_request gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok gabbi.tests.test_intercept.last-url_add_some_query_params.test_request gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok gabbi.tests.test_intercept.last-url_get_prior_url.test_request gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok gabbi.tests.test_intercept.host-header_ssl_with_host.test_request gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok gabbi.tests.test_intercept.queryparams_url_in_param.test_request gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok gabbi.tests.test_intercept.queryparams_multi_params.test_request gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok #### post data #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ { "one_environ": 1 } #### with list #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results #### > POST http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ < Location: http://be030a45-4950-4b96-a9a0-7d93920a0755:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### left side json one #### > POST http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ < Location: http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ { "alpha": "alpha1", "beta": "beta1" } #### expand left side #### > POST http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ < Location: http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ { "alpha1": "alpha", "beta1": "beta" } #### expand environ left side #### > POST http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta", "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ < Location: http://c045ffe3-da7e-4536-a7af-5997cc181e1c:8001/ { "alpha1": "alpha", "beta1": "beta", "1": "cow" } #### default casts #### > POST http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ < Location: http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ < Location: http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ { "string": "2" } #### json set up #### > POST http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ < Location: http://64b1d6be-40a1-428f-8ce0-16db6f4f07af:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### get simple page #### > GET http://6eb3ea84-08e7-4dbd-92bf-9944072fb0bd:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=nogabbi.tests.test_intercept.jsonbody_test_empty_list.test_request gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request ... ok Exception ignored in: Traceback (most recent call last): File "/usr/lib/python3.13/http/client.py", line 434, in close if self.fp: AttributeError: 'HTTPResponse' object has no attribute 'fp' gabbi.tests.test_intercept.failskip_non_existent_header.test_request gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure gabbi.tests.test_intercept.failskip_non_existent_header.test_request gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok gabbi.tests.test_intercept.failskip_skip_me.test_request gabbi.tests.test_intercept.failskip_skip_me.test_request ... skipped "Skipping for now because we can't do it" gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request ... ok gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request ... ok gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request ... ok gabbi.tests.test_intercept.queryparams_joined_params.test_request gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok #### json encoded value from disk #### > POST http://45d1b19a-3da8-4e5f-9f88-5070d54dcb9d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://45d1b19a-3da8-4e5f-9f88-5070d54dcb9d:8001/ < Location: http://45d1b19a-3da8-4e5f-9f88-5070d54dcb9d:8001/ { "foo": { "b\u00e1r": 1 } } #### json parital from disk #### > POST http://45d1b19a-3da8-4e5f-9f88-5070d54dcb9d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "type": "cat", "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://45d1b19a-3da8-4e5f-9f88-5070d54dcb9d:8001/ < Location: http://45d1b19a-3da8-4e5f-9f88-5070d54dcb9d:8001/ { "type": "cat", "sound": "meow" } gabbi.tests.test_intercept.self_post_a_body_with_query.test_request gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok gabbi.tests.test_intercept.self_test_pluggable_response.test_request gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok gabbi.tests.test_intercept.self_json_derived_content_type.test_request gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... ok gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request ... ok #### post data #### > POST http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ < Location: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ < Location: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ < Location: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ { "one_environ": 1 } #### with list #### > POST http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ < Location: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ < Location: http://3aa978c9-7cb2-46e5-925e-93bb2cb35c15:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### default casts #### > POST http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ < Location: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ < Location: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ { "string": "2" } #### json set up #### > POST http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ < Location: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### send casted json #### > POST http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ < Location: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ { "casted": 2 } #### historic casted json #### > POST http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ < Location: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ { "casted": 2 } #### internal json fine #### > POST http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": "in this 2 is not errors" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ < Location: http://00f198fe-5611-4eed-a4b3-0c615dcb1ec6:8001/ { "casted": "in this 2 is not errors" } #### json encoded value from disk #### > POST http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ < Location: http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ { "foo": { "b\u00e1r": 1 } } #### json parital from disk #### > POST http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "type": "cat", "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ < Location: http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ { "type": "cat", "sound": "meow" } #### json partial both sides #### > POST http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ < Location: http://27c7f2f7-7c9f-4f4c-a883-246cb5623016:8001/ [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] #### get simple page #### > GET http://3bae9ee2-c06a-479c-98c6-c45748b9a2a9:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://3bae9ee2-c06a-479c-98c6-c45748b9a2a9:8001/ {} gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request ... ok gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok gabbi.tests.test_intercept.method-shortcut_simple_get.test_request gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int ... ok gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params ... ok gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... ok gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl ... ok gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_parse_full gabbi.tests.test_parse_url.UrlParseTest.test_parse_full ... ok gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix ... ok gabbi.tests.test_parse_url.UrlParseTest.test_parse_url gabbi.tests.test_parse_url.UrlParseTest.test_parse_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl ... ok gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok #### post data #### > POST http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ < Location: http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ < Location: http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ < Location: http://f18c3057-5189-4a6d-abcb-543e70c44673:8001/ { "one_environ": 1 } #### loop location #### > GET http://46950865-e184-44d9-8d76-4917c4419ea2:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) < 400 Bad Reqest #### loop location #### > GET http://46950865-e184-44d9-8d76-4917c4419ea2:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) < 400 Bad Reqest #### loop location #### > GET http://46950865-e184-44d9-8d76-4917c4419ea2:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://46950865-e184-44d9-8d76-4917c4419ea2:8001/poller?count=2&x=1&y=2&z=3.4 { "count": [ "2" ], "x": [ "1" ], "y": [ "2" ], "z": [ "3.4" ] } #### get simple page #### > GET http://878e3ce8-99b1-4b11-a3f7-c8a09fa78107:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://878e3ce8-99b1-4b11-a3f7-c8a09fa78107:8001/ {} gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok < X-Gabbi-url: http://6eb3ea84-08e7-4dbd-92bf-9944072fb0bd:8001/ {} /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_driver.DriverTest.test_build_require_ssl gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok gabbi.tests.test_driver.DriverTest.test_build_url_target gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok gabbi.tests.test_driver.DriverTest.test_driver_prefix gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok gabbi.tests.test_intercept.coerce_post_data.test_request gabbi.tests.test_intercept.coerce_post_data.test_request ... ok gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see_one.test_request gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... ok gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request ... ok #### left side json one #### > POST http://c1e39829-e718-491a-9b24-35b88751911f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c1e39829-e718-491a-9b24-35b88751911f:8001/ < Location: http://c1e39829-e718-491a-9b24-35b88751911f:8001/ { "alpha": "alpha1", "beta": "beta1" } #### expand left side #### > POST http://c1e39829-e718-491a-9b24-35b88751911f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c1e39829-e718-491a-9b24-35b88751911f:8001/ < Location: http://c1e39829-e718-491a-9b24-35b88751911f:8001/ { "alpha1": "alpha", "beta1": "beta" } #### expand environ left side #### > POST http://c1e39829-e718-491a-9b24-35b88751911f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta", "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c1e39829-e718-491a-9b24-35b88751911f:8001/ < Location: http://c1e39829-e718-491a-9b24-35b88751911f:8001/ { "alpha1": "alpha", "beta1": "beta", "1": "cow" } #### set key and value #### > GET http://c1e39829-e718-491a-9b24-35b88751911f:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < Content-Type: application/json { "1": "10" } #### check key and value #### > GET http://c1e39829-e718-491a-9b24-35b88751911f:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < Content-Type: application/json { "1": "10" } #### default casts #### > POST http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ < Location: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ < Location: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ { "string": "2" } #### json set up #### > POST http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ < Location: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### send casted json #### > POST http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ < Location: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ { "casted": 2 } #### historic casted json #### > POST http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ < Location: http://7ae1dac3-595b-4941-a51b-774f68ab046f:8001/ { "casted": 2 } #### yaml encoded value from disk #### > POST http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere < Location: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### json encoded value from disk #### > POST http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere < Location: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### yaml parital from disk #### > POST http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "type": "cat", "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere < Location: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere { "type": "cat", "sound": "meow" } #### yaml partial both sides #### > POST http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere < Location: http://cb49d2ab-f1e1-43ce-9596-522331a68b02:8001/somewhere [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] gabbi.tests.test_intercept.self_confirm_environ.test_request gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok gabbi.tests.test_intercept.self_fail_pluggable_response.test_request gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... expected failure gabbi.tests.test_intercept.self_fail_pluggable_response.test_request gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... ok Exception ignored in: Traceback (most recent call last): File "/usr/lib/python3.13/http/client.py", line 434, in close if self.fp: AttributeError: 'HTTPResponse' object has no attribute 'fp' gabbi.tests.test_intercept.self_non_json_response_failure.test_request gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure gabbi.tests.test_intercept.self_non_json_response_failure.test_request gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok #### header named http #### > GET http://3ebb295d-8f7e-4bfd-9582-40c9e13c2fbb:8001/header_key > http: some-scheme > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://3ebb295d-8f7e-4bfd-9582-40c9e13c2fbb:8001/header_key < HTTP: some-scheme {} #### post data #### > POST http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ < Location: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ < Location: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ < Location: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ { "one_environ": 1 } #### with list #### > POST http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ < Location: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ < Location: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ < Location: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ < Location: http://668ffc6a-fddc-4bdc-b46f-1ae825a30014:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### left side json one #### > POST http://a4da795e-1bcb-402c-95e5-dc272b002b47:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://a4da795e-1bcb-402c-95e5-dc272b002b47:8001/ < Location: http://a4da795e-1bcb-402c-95e5-dc272b002b47:8001/ { "alpha": "alpha1", "beta": "beta1" } #### expand left side #### > POST http://a4da795e-1bcb-402c-95e5-dc272b002b47:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://a4da795e-1bcb-402c-95e5-dc272b002b47:8001/ < Location: http://a4da795e-1bcb-402c-95e5-dc272b002b47:8001/ { "alpha1": "alpha", "beta1": "beta" } #### get simple page #### > GET http://6190a213-ca95-4d94-8032-efdce297fd9f:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6190a213-ca95-4d94-8032-efdce297fd9f:8001/ {} gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok gabbi.tests.test_intercept.queryparams_simple_param.test_request gabbi.tests.test_intercept.queryparams_simple_param.test_request ... ok gabbi.tests.test_intercept.poll_poller.test_request gabbi.tests.test_intercept.poll_poller.test_request ... ok Exception ignored in: Traceback (most recent call last): File "/usr/lib/python3.13/http/client.py", line 434, in close if self.fp: AttributeError: 'HTTPResponse' object has no attribute 'fp' gabbi.tests.test_intercept.self_xml_derived_content_type.test_request gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... expected failure gabbi.tests.test_intercept.self_xml_derived_content_type.test_request gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... ok gabbi.tests.test_intercept.cookie_get_a_cookie.test_request gabbi.tests.test_intercept.cookie_get_a_cookie.test_request ... ok gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true ... ok gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false ... ok gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true ... ok gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request ... ok #### post data #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "one_environ": 1 } #### with list #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results (reversed) #### > POST http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ < Location: http://c8c87d3e-2539-44f1-a359-f5186c0dbdac:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### get simple page #### > GET http://267a2f3f-d8fd-426b-a55b-47b74c535284:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://267a2f3f-d8fd-426b-a55b-47b74c535284:8001/ {} #### yaml encoded value from disk #### > POST http://9c01e6c0-294f-4ded-b2bb-8bc3c4cb5881:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://9c01e6c0-294f-4ded-b2bb-8bc3c4cb5881:8001/somewhere < Location: http://9c01e6c0-294f-4ded-b2bb-8bc3c4cb5881:8001/somewhere { "foo": { "b\u00e1r": 1 } } gabbi.tests.test_intercept.coerce_string_internal_replace.test_request gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request ... ok gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see_two.test_request gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok gabbi.tests.test_intercept.self_use_a_historical_location.test_request gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok gabbi.tests.test_intercept.self_post_a_body.test_request gabbi.tests.test_intercept.self_post_a_body.test_request ... ok gabbi.tests.test_intercept.self_get_location_from_headers.test_request gabbi.tests.test_intercept.self_get_location_from_headers.test_request ... ok Exception ignored in: Traceback (most recent call last): File "/usr/lib/python3.13/http/client.py", line 434, in close if self.fp: AttributeError: 'HTTPResponse' object has no attribute 'fp' gabbi.tests.test_intercept.self_test_exception_wrapper.test_request gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... expected failure gabbi.tests.test_intercept.self_test_exception_wrapper.test_request gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... ok gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request ... ok gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request ... ok #### post data #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "one_environ": 1 } #### with list #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results (reversed) #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### string internal replace #### > POST http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "endpoint_resp": "/api/0.1/item/1", "endpoint_var": "/api/0.1/item/1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ < Location: http://0adfd041-7824-4768-95ba-1300ba2bcdde:8001/ { "endpoint_resp": "/api/0.1/item/1", "endpoint_var": "/api/0.1/item/1" } #### get simple page #### > GET http://82c5424d-6676-468a-80d4-c2cec3a29250:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://82c5424d-6676-468a-80d4-c2cec3a29250:8001/ {} #### yaml encoded value from disk #### > POST http://4f65ab04-555e-4bfc-acd0-eb8ab527989e:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://4f65ab04-555e-4bfc-acd0-eb8ab527989e:8001/somewhere < Location: http://4f65ab04-555e-4bfc-acd0-eb8ab527989e:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### json encoded value from disk #### > POST http://4f65ab04-555e-4bfc-acd0-eb8ab527989e:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://4f65ab04-555e-4bfc-acd0-eb8ab527989e:8001/somewhere < Location: http://4f65ab04-555e-4bfc-acd0-eb8ab527989e:8001/somewhere { "foo": { "b\u00e1r": 1 } } ---------------------------------------------------------------------- Ran 314 tests in 19.974s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- gabbi.tests.test_driver.DriverTest.test_build_require_ssl 7.004 gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 6.216 gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 5.087 gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files 3.044 gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 2.506 gabbi.tests.test_intercept.coerce_post_extra_data.test_request 2.471 gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 2.379 gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request 2.216 gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.969 gabbi.tests.test_intercept.coerce_object_with_list.test_request 1.607 + rm -rf .stestr + [ 3.12 = disabled ] + + cut -d. -f1 echo 3.12 + PYMAJOR=3 + echo ===> Testing with python (python3) ===> Testing with python (python3) + pwd + [ -d /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ] + [ -z /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ] + [ -e .stestr.conf ] + [ -x /usr/bin/python3-stestr ] + STESTR=stestr + rm -rf .stestr + subunit2pyunit + PYTHON=python3.12 stestr run --parallel --subunit gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request) /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers gabbi.tests.test_handlers.HandlersTest.test_response_headers ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_inner_fixture.inner_get_one.test_request gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_data_to_string.TestDataToString.testHappyPath gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok gabbi.tests.test_data_to_string.TestDataToString.testNoContentType gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok gabbi.tests.test_data_to_string.TestDataToString.testNoHandler gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request ... ok gabbi.tests.test_intercept.contenttype_put_content-type.test_request gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok gabbi.tests.test_intercept.contenttype_post_content-type.test_request gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok gabbi.tests.test_inner_fixture.inner_get_three.test_request gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok gabbi.tests.test_intercept.header-key_header_named_http.test_request gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_history.HistoryTest.test_cookie_replace_history gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok gabbi.tests.test_history.HistoryTest.test_header_replace_prior gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_header_replace_with_history gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok gabbi.tests.test_history.HistoryTest.test_location_replace_history gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_location_replace_prior gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok gabbi.tests.test_history.HistoryTest.test_response_replace_prior gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path ... ok gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok gabbi.tests.test_intercept.coerce_post_data.test_request gabbi.tests.test_intercept.coerce_post_data.test_request ... ok gabbi.tests.test_history.HistoryTest.test_response_replace_with_history gabbi.tests.test_history.HistoryTest.test_response_replace_with_history ... ok gabbi.tests.test_history.HistoryTest.test_url_replace_history gabbi.tests.test_history.HistoryTest.test_url_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_url_replace_prior gabbi.tests.test_history.HistoryTest.test_url_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.coerce_from_environ.test_request gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail ... ok gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request ... ok gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok gabbi.tests.test_intercept.regex_regex_string_test_json.test_request gabbi.tests.test_intercept.regex_regex_string_test_json.test_request ... ok gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.json-extensions_test_filtered.test_request gabbi.tests.test_intercept.json-extensions_test_filtered.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler ... ok gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings gabbi.tests.test_handlers.HandlersTest.test_response_strings ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload ... ok gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok gabbi.tests.test_intercept.coerce_use_data.test_request gabbi.tests.test_intercept.coerce_use_data.test_request ... ok gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request ... ok gabbi.tests.test_intercept.coerce_object_with_list.test_request gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... expected failure gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... ok gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request ... ok gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... expected failure gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... ok gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok gabbi.tests.test_inner_fixture.inner_get_two.test_request gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request ... ok gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok gabbi.tests.test_intercept.data_load_data_list.test_request gabbi.tests.test_intercept.data_load_data_list.test_request ... ok gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see_two.test_request gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request ... ok gabbi.tests.test_intercept.host-header_host_without_ssl.test_request gabbi.tests.test_intercept.host-header_host_without_ssl.test_request ... ok gabbi.tests.test_intercept.poll_poller.test_request gabbi.tests.test_intercept.poll_poller.test_request ... ok gabbi.tests.test_intercept.json-extensions_test_len.test_request gabbi.tests.test_intercept.json-extensions_test_len.test_request ... ok gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok gabbi.tests.test_intercept.casting_json_set_up.test_request gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok gabbi.tests.test_intercept.failskip_skip_me.test_request gabbi.tests.test_intercept.failskip_skip_me.test_request ... skipped "Skipping for now because we can't do it" gabbi.tests.test_intercept.self_post_a_body_with_query.test_request gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.coerce_post_extra_data.test_request gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request ... ok gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok #### post data #### > POST http://1f1d09a0-b7ec-485a-9647-a27250fb9fdd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://1f1d09a0-b7ec-485a-9647-a27250fb9fdd:8001/ < Location: http://1f1d09a0-b7ec-485a-9647-a27250fb9fdd:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://1f1d09a0-b7ec-485a-9647-a27250fb9fdd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://1f1d09a0-b7ec-485a-9647-a27250fb9fdd:8001/ < Location: http://1f1d09a0-b7ec-485a-9647-a27250fb9fdd:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### left side json one #### > POST http://7b4abe34-2cf5-4174-9786-3fad9a274385:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://7b4abe34-2cf5-4174-9786-3fad9a274385:8001/ < Location: http://7b4abe34-2cf5-4174-9786-3fad9a274385:8001/ { "alpha": "alpha1", "beta": "beta1" } #### get simple page #### > GET http://ecdee87b-fb2c-4115-9ae7-49058f2ca81a:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ecdee87b-fb2c-4115-9ae7-49058f2ca81a:8001/ {} gabbi.tests.test_intercept.coerce_with_list.test_request gabbi.tests.test_intercept.coerce_with_list.test_request ... ok gabbi.tests.test_intercept.failskip_wrong_status.test_request gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure gabbi.tests.test_intercept.failskip_wrong_status.test_request gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok gabbi.tests.test_intercept.data_load_data_dictionary.test_request gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok gabbi.tests.test_intercept.casting_internal_json_fine.test_request gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok gabbi.tests.test_intercept.last-url_add_some_query_params.test_request gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok gabbi.tests.test_intercept.backref_post_even_more_json.test_request gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok gabbi.tests.test_intercept.last-url_get_that_same_url_again.test_request gabbi.tests.test_intercept.last-url_get_that_same_url_again.test_request ... ok gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... ok gabbi.tests.test_intercept.data_post_data_for_next.test_request gabbi.tests.test_intercept.data_post_data_for_next.test_request ... ok gabbi.tests.test_intercept.self_get_location_from_headers.test_request gabbi.tests.test_intercept.self_get_location_from_headers.test_request ... ok gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok gabbi.tests.test_intercept.casting_send_casted_json.test_request gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.coerce_check_posted_data.test_request gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... ok gabbi.tests.test_intercept.host-header_ssl_no_host.test_request gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... ok gabbi.tests.test_intercept.poll_create_a_thing.test_request gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok gabbi.tests.test_intercept.poll_poller_fail.test_request gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure gabbi.tests.test_intercept.poll_poller_fail.test_request gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok gabbi.tests.test_intercept.self_test_pluggable_response.test_request gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... expected failure gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... ok gabbi.tests.test_intercept.data_load_image_file.test_request gabbi.tests.test_intercept.data_load_image_file.test_request ... ok gabbi.tests.test_intercept.data_load_encoded_text.test_request gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request ... ok gabbi.tests.test_intercept.self_checklimit.test_request gabbi.tests.test_intercept.self_checklimit.test_request ... ok gabbi.tests.test_intercept.data_json_value_from_disk.test_request gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok gabbi.tests.test_intercept.self_get_ssl_page.test_request gabbi.tests.test_intercept.self_get_ssl_page.test_request ... ok gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok #### post data #### > POST http://4ede8980-f3fc-4f90-886e-cdc9adfc3d4b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://4ede8980-f3fc-4f90-886e-cdc9adfc3d4b:8001/ < Location: http://4ede8980-f3fc-4f90-886e-cdc9adfc3d4b:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### default casts #### > POST http://bc33a026-6aac-4815-a810-2d593e254105:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://bc33a026-6aac-4815-a810-2d593e254105:8001/ < Location: http://bc33a026-6aac-4815-a810-2d593e254105:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://bc33a026-6aac-4815-a810-2d593e254105:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://bc33a026-6aac-4815-a810-2d593e254105:8001/ < Location: http://bc33a026-6aac-4815-a810-2d593e254105:8001/ { "string": "2" } #### get simple page #### > GET http://219c7cab-7a05-4c6a-82a6-a669f25f2667:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://219c7cab-7a05-4c6a-82a6-a669f25f2667:8001/ {} gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request ... ok gabbi.tests.test_intercept.self_test_exception_wrapper.test_request gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... expected failure gabbi.tests.test_intercept.self_test_exception_wrapper.test_request gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... ok gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok gabbi.tests.test_intercept.cookie_get_a_cookie.test_request gabbi.tests.test_intercept.cookie_get_a_cookie.test_request ... ok gabbi.tests.test_intercept.failskip_non_existent_header.test_request gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure gabbi.tests.test_intercept.failskip_non_existent_header.test_request gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok gabbi.tests.test_intercept.method-shortcut_simple_post.test_request gabbi.tests.test_intercept.method-shortcut_simple_post.test_request ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request ... ok gabbi.tests.test_intercept.data_partial_json_from_disk.test_request gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok gabbi.tests.test_intercept.casting_cast_to_string.test_request gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok gabbi.tests.test_intercept.backref_post_some_json.test_request gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see_one.test_request gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see_three.test_request gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok gabbi.tests.test_intercept.host-header_ssl_with_host.test_request gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok gabbi.tests.test_intercept.backref_post_some_more_json.test_request gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request ... ok #### get simple page #### > GET http://239a50ac-7774-44b7-8440-77fac777ad82:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://239a50ac-7774-44b7-8440-77fac777ad82:8001/ {} #### yaml encoded value from disk #### > POST http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere < Location: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### json encoded value from disk #### > POST http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere < Location: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### yaml parital from disk #### > POST http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "type": "cat", "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere < Location: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere { "type": "cat", "sound": "meow" } #### yaml partial both sides #### > POST http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere < Location: http://6dc08513-410e-4c19-add2-e368a34a6c3f:8001/somewhere [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request ... ok gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request ... ok gabbi.tests.test_intercept.json-extensions_test_sort.test_request gabbi.tests.test_intercept.json-extensions_test_sort.test_request ... ok gabbi.tests.test_intercept.backref_get_a_historical_response.test_request gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request ... ok gabbi.tests.test_intercept.last-url_get_prior_url.test_request gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok gabbi.tests.test_intercept.data_load_json_file.test_request gabbi.tests.test_intercept.data_load_json_file.test_request ... ok gabbi.tests.test_intercept.self_xml_derived_content_type.test_request gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... expected failure gabbi.tests.test_intercept.self_xml_derived_content_type.test_request gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... ok gabbi.tests.test_intercept.self_non_json_response_failure.test_request gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure gabbi.tests.test_intercept.self_non_json_response_failure.test_request gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true ... ok gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false ... ok gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true ... ok gabbi.tests.test_utils.BinaryTypesTest.test_binary gabbi.tests.test_utils.BinaryTypesTest.test_binary ... ok gabbi.tests.test_utils.BinaryTypesTest.test_not_binary gabbi.tests.test_utils.BinaryTypesTest.test_not_binary ... ok gabbi.tests.test_intercept.casting_default_casts.test_request gabbi.tests.test_intercept.casting_default_casts.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", #### left side json one #### > POST http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ < Location: http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ { "alpha": "alpha1", "beta": "beta1" } #### expand left side #### > POST http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ < Location: http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ { "alpha1": "alpha", "beta1": "beta" } #### expand environ left side #### > POST http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta", "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ < Location: http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/ { "alpha1": "alpha", "beta1": "beta", "1": "cow" } #### set key and value #### > GET http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < Content-Type: application/json { "1": "10" } #### check key and value #### > GET http://e3f8ef6f-7ba2-4e7b-84dc-64dc4a041597:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < Content-Type: application/json { "1": "10" } #### default casts #### > POST http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ < Location: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ < Location: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ { "string": "2" } #### json set up #### > POST http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ < Location: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### send casted json #### > POST http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ < Location: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ { "casted": 2 } #### historic casted json #### > POST http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ < Location: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ { "casted": 2 } #### internal json fine #### > POST http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": "in this 2 is not errors" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ < Location: http://0f0bc412-4d38-4730-9a07-c4f56fdb8bb2:8001/ { "casted": "in this 2 is not errors" } #### get simple page #### > GET http://922eeb91-8bb5-4d5e-bbf9-1a03a47fb7d9:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://922eeb91-8bb5-4d5e-bbf9-1a03a47fb7d9:8001/ {} gabbi.tests.test_runner.RunnerTest.test_custom_response_handler gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok gabbi.tests.test_intercept.queryparams_unicode.test_request gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok gabbi.tests.test_intercept.queryparams_multi_params.test_request gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.queryparams_url_in_param.test_request gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok gabbi.tests.test_runner.RunnerTest.test_data_dir_good gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok #### post data #### > POST http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ < Location: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ < Location: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ < Location: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ { "one_environ": 1 } #### with list #### > POST http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ < Location: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ < Location: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ < Location: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ < Location: http://ffbd900d-d2eb-452a-b92b-0c72634c03b4:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### left side json one #### > POST http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ < Location: http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ { "alpha": "alpha1", "beta": "beta1" } #### expand left side #### > POST http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ < Location: http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ { "alpha1": "alpha", "beta1": "beta" } #### expand environ left side #### > POST http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta", "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ < Location: http://4735c256-a1a0-4fd0-9578-63f806705c1d:8001/ { "alpha1": "alpha", "beta1": "beta", "1": "cow" } #### default casts #### > POST http://c0c3ad3a-f250-497d-83ae-b6ae49d5e246:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://c0c3ad3a-f250-497d-83ae-b6ae49d5e246:8001/ < Location: http://c0c3ad3a-f250-497d-83ae-b6ae49d5e246:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://c0c3ad3a-f250-497d-83ae-b6ae49d5e246:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://c0c3ad3a-f250-497d-83ae-b6ae49d5e246:8001/ < Location: http://c0c3ad3a-f250-497d-83ae-b6ae49d5e246:8001/ { "string": "2" } #### json encoded value from disk #### > POST http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ < Location: http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ { "foo": { "b\u00e1r": 1 } } #### json parital from disk #### > POST http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "type": "cat", "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ < Location: http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ { "type": "cat", "sound": "meow" } #### json partial both sides #### > POST http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ < Location: http://537a4541-c297-4dea-8395-a1ebc8fcac90:8001/ [ { "type": "cat", "sound": "meow" }, { "type": "dog", "sound": "woof" } ] #### get simple page #### > GET http://8806b9d2-c80d-42af-89fe-d85c50dd9852:8001/ > x-random-header: ya/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_exit_code gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok gabbi.tests.test_intercept.self_simple_post.test_request gabbi.tests.test_intercept.self_simple_post.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_input_files gabbi.tests.test_runner.RunnerTest.test_input_files ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_target_url_parsing gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok gabbi.tests.test_intercept.self_test_binary_handling.test_request gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok gabbi.tests.test_intercept.regex_regex_header_test.test_request gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request ... ok gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok gabbi.tests.test_intercept.queryparams_joined_params.test_request gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request ... ok gabbi.tests.test_intercept.self_json_derived_content_type.test_request gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... ok gabbi.tests.test_intercept.poll_loop_location.test_request gabbi.tests.test_intercept.poll_loop_location.test_request ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required ... ok gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required ... ok gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... expected failure gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... ok gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://8806b9d2-c80d-42af-89fe-d85c50dd9852:8001/ {} gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request ... ok #### post data #### > POST http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ < Location: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ < Location: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ < Location: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ { "one_environ": 1 } #### with list #### > POST http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ < Location: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ < Location: http://6f733db5-85c8-466b-a9cb-e7560ab6577b:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### get simple page #### > GET http://6d1ba598-c90b-4e18-aa78-93ae27dd8ccc:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6d1ba598-c90b-4e18-aa78-93ae27dd8ccc:8001/ {} #### yaml encoded value from disk #### > POST http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere < Location: http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### json encoded value from disk #### > POST http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere < Location: http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### yaml parital from disk #### > POST http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "type": "cat", "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere < Location: http://36b1847b-9abc-4bc7-81a7-09ef9cdef496:8001/somewhere { "type": "cat", "sound": "meow" } gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request ... ok #### left side json one #### > POST http://8a09b527-614e-4899-9401-d3d9dc1eeb80:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha": "alpha1", "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://8a09b527-614e-4899-9401-d3d9dc1eeb80:8001/ < Location: http://8a09b527-614e-4899-9401-d3d9dc1eeb80:8001/ { "alpha": "alpha1", "beta": "beta1" } #### expand left side #### > POST http://8a09b527-614e-4899-9401-d3d9dc1eeb80:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "alpha1": "alpha", "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://8a09b527-614e-4899-9401-d3d9dc1eeb80:8001/ < Location: http://8a09b527-614e-4899-9401-d3d9dc1eeb80:8001/ { "alpha1": "alpha", "beta1": "beta" } #### default casts #### > POST http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ < Location: http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ < Location: http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ { "string": "2" } #### json set up #### > POST http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ < Location: http://15f7a40a-bf80-4398-bc18-b099fded7612:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### loop location #### > GET http://1ea3cd3c-f0bf-4603-b4ed-ccf9fde8cc3f:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) < 400 Bad Reqest #### loop location #### > GET http://1ea3cd3c-f0bf-4603-b4ed-ccf9fde8cc3f:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) < 400 Bad Reqest #### loop location #### > GET http://1ea3cd3c-f0bf-4603-b4ed-ccf9fde8cc3f:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://1ea3cd3c-f0bf-4603-b4ed-ccf9fde8cc3f:8001/poller?count=2&x=1&y=2&z=3.4 { "count": [ "2" ], "x": [ "1" ], "y": [ "2" ], "z": [ "3.4" ] } #### yaml encoded value from disk #### > POST http://2a59d6b2-118d-4187-8970-29f2bc3b7b7d:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2a59d6b2-118d-4187-8970-29f2bc3b7b7d:8001/somewhere < Location: http://2a59d6b2-118d-4187-8970-29f2bc3b7b7d:8001/somewhere { "foo": { "b\u00e1r": 1 } } #### json encoded value from disk #### > POST http://2a59d6b2-118d-4187-8970-29f2bc3b7b7d:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2a59d6b2-118d-4187-8970-29f2bc3b7b7d:8001/somewhere < Location: http://2a59d6b2-118d-4187-8970-29f2bc3b7b7d:8001/somewhere { "foo": { "b\u00e1r": 1 } } /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_driver.DriverTest.test_build_require_ssl gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok gabbi.tests.test_driver.DriverTest.test_build_url_target gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok gabbi.tests.test_intercept.self_fail_pluggable_response.test_request gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... expected failure gabbi.tests.test_intercept.self_fail_pluggable_response.test_request gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... ok gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok gabbi.tests.test_driver.DriverTest.test_driver_prefix gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok gabbi.tests.test_intercept.contenttype_patch_content-type.test_request gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request ... ok #### post data #### > POST http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ < Location: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ < Location: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ < Location: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ { "one_environ": 1 } #### with list #### > POST http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ < Location: http://d68ad437-5957-4bd5-b1e0-8f811f9d3f9c:8001/ [ 1, 2, "3" ] #### get simple page #### > GET http://5b94602c-706d-47d8-976d-e4d367b69903:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://5b94602c-706d-47d8-976d-e4d367b69903:8001/ {} #### yaml encoded value from disk #### > POST http://976aec3b-b3f3-4794-9b55-05859c57cdfe:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://976aec3b-b3f3-4794-9b55-05859c57cdfe:8001/somewhere < Location: http://976aec3b-b3f3-4794-9b55-05859c57cdfe:8001/somewhere { "foo": { "b\u00e1r": 1 } } gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok #### header named http #### > GET http://606c4783-1396-4dcf-b7b8-1ab0e71fc0c4:8001/header_key > http: some-scheme > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://606c4783-1396-4dcf-b7b8-1ab0e71fc0c4:8001/header_key < HTTP: some-scheme {} #### post data #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "one_environ": 1 } #### with list #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results (reversed) #### > POST http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ < Location: http://d0795578-65fe-4052-8515-9f632cfe0dbe:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### default casts #### > POST http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ < Location: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ < Location: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ { "string": "2" } #### json set up #### > POST http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ < Location: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### send casted json #### > POST http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ < Location: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ { "casted": 2 } #### historic casted json ####gabbi.tests.test_intercept.casting_historic_casted_json.test_request gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... ok gabbi.tests.test_intercept.skipall_a_skipped_test.test_request gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' gabbi.tests.test_intercept.queryparams_simple_param.test_request gabbi.tests.test_intercept.queryparams_simple_param.test_request ... ok gabbi.tests.test_intercept.self_get_simple_page.test_request gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok gabbi.tests.test_intercept.self_bogus_method.test_request gabbi.tests.test_intercept.self_bogus_method.test_request ... ok gabbi.tests.test_intercept.self_query_returned.test_request gabbi.tests.test_intercept.self_query_returned.test_request ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_port gabbi.tests.test_utils.CreateURLTest.test_create_url_port ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_simple gabbi.tests.test_utils.CreateURLTest.test_create_url_simple ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl ... ok gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 ... ok #### post data #### > POST http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ < Location: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ < Location: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ < Location: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ { "one_environ": 1 } #### with list #### > POST http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ < Location: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ < Location: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ < Location: http://2525ac31-1be6-45b0-836d-1919d703a8c0:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### confirm notempty #### > GET http://817d07e7-9dbc-446c-8aed-f30ac2e3889f:8001/notempty > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK notempty #### default casts #### > POST http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ < Location: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ < Location: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ { "string": "2" } #### json set up #### > POST http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ < Location: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### send casted json #### > POST http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ < Location: http://b3ff0e99-95b2-400f-b689-5737ae3bd027:8001/ { "casted": 2 } #### get simple page #### > GET http://276eb33c-8e20-4ab2-b555-d1447c0ac421:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://276eb33c-8e20-4ab2-b555-d1447c0ac421:8001/ {} gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request ... ok > POST http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ < Location: http://5551d25e-5ca8-4ceb-9aae-01e4a8aa3380:8001/ { "casted": 2 } #### get simple page #### > GET http://860e754f-85b3-4ade-95c7-37ab5a1ba817:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://860e754f-85b3-4ade-95c7-37ab5a1ba817:8001/ {} gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request ... ok gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... expected failure gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... ok gabbi.tests.test_intercept.self_use_prior_location.test_request gabbi.tests.test_intercept.self_use_prior_location.test_request ... ok gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request ... ok gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok #### post data #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ { "one_environ": 1 } #### with list #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results #### > POST http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ < Location: http://2f1d4f79-9029-4c90-823e-80e74310f86f:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### default casts #### > POST http://613866d4-6ca2-490b-9ab2-77c981b34bbd:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://613866d4-6ca2-490b-9ab2-77c981b34bbd:8001/ < Location: http://613866d4-6ca2-490b-9ab2-77c981b34bbd:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### get simple page #### > GET http://8e3f02e3-a10b-40fc-b3df-79d7796f9524:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://8e3f02e3-a10b-40fc-b3df-79d7796f9524:8001/ {} gabbi.tests.test_intercept.coerce_string_internal_replace.test_request gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok #### post data #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### use data #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_string": "1", "one_int": 1, "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "one_string": "1", "one_int": 1, "one_float": 1.1 } #### from environ #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "one_environ": 1 } #### with list #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ 1, 2, "3" ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ [ 1, 2, "3" ] #### object with list #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "collection": [ { "alpha": 1, "beta": "max" }, { "alpha": 2, "beta": "climb" } ] } #### post extra data #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### check posted data #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### Post again and check the results (reversed) #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "a": 1, "b": 1.0, "c": "[1,2,3]", "d": true, "e": false, "f": { "key": "val" }, "g": null, "h": { "key": { "less_key": [ 1, true, null ], "more_key": 1 } } } #### string internal replace #### > POST http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "endpoint_resp": "/api/0.1/item/1", "endpoint_var": "/api/0.1/item/1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ < Location: http://6cdb71e0-dd2c-4f0f-8433-a8442efd0a03:8001/ { "endpoint_resp": "/api/0.1/item/1", "endpoint_var": "/api/0.1/item/1" } #### default casts #### > POST http://184f0564-cb59-4753-af18-612617a38bf5:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ < Location: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ { "int": 1, "float": 1.5, "string": 2, "tbool": true, "fbool": false } #### cast to string #### > POST http://184f0564-cb59-4753-af18-612617a38bf5:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "string": "2" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ < Location: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ { "string": "2" } #### json set up #### > POST http://184f0564-cb59-4753-af18-612617a38bf5:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ < Location: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ { "int": 1, "float": 1.5, "string": "2", "tbool": true, "fbool": false } #### send casted json #### > POST http://184f0564-cb59-4753-af18-612617a38bf5:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POSTgabbi.tests.test_intercept.casting_internal_json_fail.test_request gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure gabbi.tests.test_intercept.casting_internal_json_fail.test_request gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request ... ok gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request ... ok gabbi.tests.test_intercept.fixture_just_to_see.test_request gabbi.tests.test_intercept.fixture_just_to_see.test_request ... ok gabbi.tests.test_intercept.self_use_a_historical_location.test_request gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok gabbi.tests.test_intercept.self_post_a_body.test_request gabbi.tests.test_intercept.self_post_a_body.test_request ... ok gabbi.tests.test_intercept.self_confirm_environ.test_request gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... expected failure gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... ok gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok gabbi.tests.test_intercept.method-shortcut_simple_get.test_request gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl ... ok gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int ... ok gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params ... ok gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... ok gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl ... ok gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_parse_full gabbi.tests.test_parse_url.UrlParseTest.test_parse_full ... ok gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix ... ok gabbi.tests.test_parse_url.UrlParseTest.test_parse_url gabbi.tests.test_parse_url.UrlParseTest.test_parse_url ... ok gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl ... ok < Content-Type: application/json < X-Gabbi-url: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ < Location: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ { "casted": 2 } #### historic casted json #### > POST http://184f0564-cb59-4753-af18-612617a38bf5:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json < X-Gabbi-url: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ < Location: http://184f0564-cb59-4753-af18-612617a38bf5:8001/ { "casted": 2 } #### json encoded value from disk #### > POST http://a00bd24a-8c75-498c-adf7-fcd72bb94ea4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://a00bd24a-8c75-498c-adf7-fcd72bb94ea4:8001/ < Location: http://a00bd24a-8c75-498c-adf7-fcd72bb94ea4:8001/ { "foo": { "b\u00e1r": 1 } } #### get simple page #### > GET http://83cf1c84-85da-4b82-8a41-011da03bec48:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no < X-Gabbi-url: http://83cf1c84-85da-4b82-8a41-011da03bec48:8001/ {} ---------------------------------------------------------------------- Ran 314 tests in 18.772s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- gabbi.tests.test_driver.DriverTest.test_build_require_ssl 6.780 gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 5.961 gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 3.859 gabbi.tests.test_intercept.coerce_check_posted_data.test_request 3.507 gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files 3.043 gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request 2.450 gabbi.tests.test_intercept.coerce_post_extra_data.test_request 2.283 gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 2.246 gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 2.165 gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.862 + rm -rf .stestr make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_install -O--buildsystem=python_distutils dh_installdocs -O--buildsystem=python_distutils debian/rules override_dh_sphinxdoc make[1]: Entering directory '/build/reproducible-path/python-gabbi-3.0.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions python3 -m sphinx -b html docs/source debian/python-gabbi-doc/usr/share/doc/python-gabbi-doc/html Running Sphinx v7.4.7 loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 12 source files that are out of date updating environment: [new config] 12 added, 0 changed, 0 removed reading sources... [ 8%] example reading sources... [ 17%] faq reading sources... [ 25%] fixtures reading sources... [ 33%] format reading sources... [ 42%] gabbi reading sources... [ 50%] handlers reading sources... [ 58%] host reading sources... [ 67%] index reading sources... [ 75%] jsonpath reading sources... [ 83%] loader reading sources... [ 92%] release reading sources... [100%] runner /build/reproducible-path/python-gabbi-3.0.0/docs/source/release.rst:18: WARNING: Title underline too short. 2.11.0 ----- /build/reproducible-path/python-gabbi-3.0.0/docs/source/release.rst:18: WARNING: Title underline too short. 2.11.0 ----- looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... done copying extra files... done copying assets: done writing output... [ 8%] example writing output... [ 17%] faq writing output... [ 25%] fixtures writing output... [ 33%] format writing output... [ 42%] gabbi writing output... [ 50%] handlers writing output... [ 58%] host writing output... [ 67%] index writing output... [ 75%] jsonpath writing output... [ 83%] loader writing output... [ 92%] release writing output... [100%] runner /build/reproducible-path/python-gabbi-3.0.0/docs/source/jsonpath.rst:72: WARNING: Lexing literal_block 'response_json_paths:\n $: @>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done + ls -1 debian/*.init.in ls: cannot access 'debian/*.init.in': No such file or directory # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done + ls -1 debian/*.service.in ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in/.service.in/` ; \ if ! [ -e $MYINIT ] ; then \ pkgos-gen-systemd-unit $i ; \ fi \ done + ls debian/*.init.in ls: cannot access 'debian/*.init.in': No such file or directory dh_installinit --error-handler=true make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' debian/rules override_dh_installsystemd make[1]: Entering directory '/build/reproducible-path/python-gabbi-3.0.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions # Create the init scripts and systemd unit files from the template set -e ; set -x ; for i in `ls -1 debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in//` ; \ cp $i $MYINIT.init ; \ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done + ls -1 debian/*.init.in ls: cannot access 'debian/*.init.in': No such file or directory # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done + ls -1 debian/*.service.in ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in/.service.in/` ; \ if ! [ -e $MYINIT ] ; then \ pkgos-gen-systemd-unit $i ; \ fi \ done + ls debian/*.init.in ls: cannot access 'debian/*.init.in': No such file or directory dh_installsystemd make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_perl -O--buildsystem=python_distutils dh_link -O--buildsystem=python_distutils dh_strip_nondeterminism -O--buildsystem=python_distutils dh_compress -O--buildsystem=python_distutils dh_fixperms -O--buildsystem=python_distutils dh_missing -O--buildsystem=python_distutils dh_installdeb -O--buildsystem=python_distutils debian/rules override_dh_gencontrol make[1]: Entering directory '/build/reproducible-path/python-gabbi-3.0.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions if dpkg-vendor --derives-from ubuntu ; then \ dh_gencontrol -- -T/build/reproducible-path/python-gabbi-3.0.0/debian/ubuntu_control_vars ; \ else \ dh_gencontrol -- -T/build/reproducible-path/python-gabbi-3.0.0/debian/debian_control_vars ; \ fi dpkg-gencontrol: warning: package python-gabbi-doc: substitution variable ${sphinxdoc:Built-Using} unused, but is defined make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_md5sums -O--buildsystem=python_distutils dh_builddeb -O--buildsystem=python_distutils dpkg-deb: building package 'python-gabbi-doc' in '../python-gabbi-doc_3.0.0-2_all.deb'. dpkg-deb: building package 'python3-gabbi' in '../python3-gabbi_3.0.0-2_all.deb'. dpkg-genbuildinfo --build=binary -O../python-gabbi_3.0.0-2_amd64.buildinfo dpkg-genchanges --build=binary -O../python-gabbi_3.0.0-2_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-source: info: using options from python-gabbi-3.0.0/debian/source/options: --extend-diff-ignore=^[^/]*[.]egg-info/ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/3032869 and its subdirectories I: Current time: Fri Dec 19 20:40:50 -12 2025 I: pbuilder-time-stamp: 1766220050 Sun Nov 17 02:17:52 UTC 2024 I: 1st build successful. Starting 2nd build on remote node infom01-amd64.debian.net. Sun Nov 17 02:17:52 UTC 2024 I: Preparing to do remote build '2' on infom01-amd64.debian.net. Sun Nov 17 02:19:45 UTC 2024 I: Deleting $TMPDIR on infom01-amd64.debian.net. Sun Nov 17 02:19:46 UTC 2024 I: python-gabbi_3.0.0-2_amd64.changes: Format: 1.8 Date: Thu, 19 Sep 2024 17:00:49 +0200 Source: python-gabbi Binary: python-gabbi-doc python3-gabbi Architecture: all Version: 3.0.0-2 Distribution: unstable Urgency: medium Maintainer: Debian OpenStack Changed-By: Thomas Goirand Description: python-gabbi-doc - declarative HTTP testing library - doc python3-gabbi - declarative HTTP testing library - Python 3.x Changes: python-gabbi (3.0.0-2) unstable; urgency=medium . * Uploading to unstable. Checksums-Sha1: 8e7daf99d9b6b2532af760c0293e3266c2d3dd94 67736 python-gabbi-doc_3.0.0-2_all.deb 8e8b23a2f2e12def4a4f278f0cde7931245be1f5 9159 python-gabbi_3.0.0-2_amd64.buildinfo c38c2f1c338a20c701179e091955e15be81c87d8 42012 python3-gabbi_3.0.0-2_all.deb Checksums-Sha256: 64c8b39fa761c5d22b5f055c5b324621eb7f7b7b6085cab0f32c1c3869827f8a 67736 python-gabbi-doc_3.0.0-2_all.deb 42780a422e84b80df6adefca77bb965f8bd5e5d9c0cc0d007132e00f2e7f4612 9159 python-gabbi_3.0.0-2_amd64.buildinfo 38ab47b53bbb66913fd002f3bb041b49e2ccdcdf579f36046a7cc080b3158b9a 42012 python3-gabbi_3.0.0-2_all.deb Files: ae3dd999fbeccc38c0d9153df6816b7f 67736 doc optional python-gabbi-doc_3.0.0-2_all.deb ac5484bc504eec93e48744ccba789a1f 9159 python optional python-gabbi_3.0.0-2_amd64.buildinfo 403fc09016f0ed16ad08a9a686d268dc 42012 python optional python3-gabbi_3.0.0-2_all.deb Sun Nov 17 02:19:47 UTC 2024 I: diffoscope 283 will be used to compare the two builds: Running as unit: rb-diffoscope-amd64_34-36156.service # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.Q3U1Lr3s/python-gabbi_3.0.0-2.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.Q3U1Lr3s/python-gabbi_3.0.0-2.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.Q3U1Lr3s/python-gabbi_3.0.0-2.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.Q3U1Lr3s/b1/python-gabbi_3.0.0-2_amd64.changes /srv/reproducible-results/rbuild-debian/r-b-build.Q3U1Lr3s/b2/python-gabbi_3.0.0-2_amd64.changes ## command (total time: 0.000s) 0.000s 1 call cmp (internal) ## has_same_content_as (total time: 0.000s) 0.000s 1 call abc.DotChangesFile ## main (total time: 0.328s) 0.328s 2 calls outputs 0.000s 1 call cleanup ## recognizes (total time: 0.015s) 0.015s 12 calls diffoscope.comparators.binary.FilesystemFile ## specialize (total time: 0.000s) 0.000s 1 call specialize Finished with result: success Main processes terminated with: code=exited/status=0 Service runtime: 638ms CPU time consumed: 638ms Sun Nov 17 02:19:48 UTC 2024 I: diffoscope 283 found no differences in the changes files, and a .buildinfo file also exists. Sun Nov 17 02:19:48 UTC 2024 I: python-gabbi from unstable built successfully and reproducibly on amd64. Sun Nov 17 02:19:49 UTC 2024 I: Submitting .buildinfo files to external archives: Sun Nov 17 02:19:49 UTC 2024 I: Submitting 12K b1/python-gabbi_3.0.0-2_amd64.buildinfo.asc Sun Nov 17 02:19:50 UTC 2024 I: Submitting 12K b2/python-gabbi_3.0.0-2_amd64.buildinfo.asc Sun Nov 17 02:19:51 UTC 2024 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Sun Nov 17 02:19:51 UTC 2024 I: Done submitting .buildinfo files. Sun Nov 17 02:19:51 UTC 2024 I: Removing signed python-gabbi_3.0.0-2_amd64.buildinfo.asc files: removed './b1/python-gabbi_3.0.0-2_amd64.buildinfo.asc' removed './b2/python-gabbi_3.0.0-2_amd64.buildinfo.asc'