Diff of the two buildlogs: -- --- b1/build.log 2025-08-01 07:25:00.812277045 +0000 +++ b2/build.log 2025-08-01 07:26:14.096371788 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Jul 31 19:23:58 -12 2025 -I: pbuilder-time-stamp: 1754033038 +I: Current time: Fri Sep 4 03:48:02 +14 2026 +I: pbuilder-time-stamp: 1788443282 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -22,52 +22,84 @@ dpkg-source: info: unpacking python-gabbi_3.0.0-3.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1766873/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1804284/tmp/hooks/D01_modify_environment starting +debug: Running on codethink03-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Sep 3 13:48 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1804284/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1804284/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='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='456a7c1276484eb5af97821d180ddc81' - 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='1766873' - PS1='# ' - PS2='> ' + INVOCATION_ID=ad5911989fec48808c455226af5a4480 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1804284 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.b4aeKKqp/pbuilderrc_8I7b --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.b4aeKKqp/b1 --logfile b1/build.log python-gabbi_3.0.0-3.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' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.b4aeKKqp/pbuilderrc_yrRl --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.b4aeKKqp/b2 --logfile b2/build.log python-gabbi_3.0.0-3.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink04-arm64 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-37-cloud-arm64 #1 SMP Debian 6.1.140-1 (2025-05-22) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 May 12 19:25 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1766873/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 12 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1804284/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -289,7 +321,7 @@ Get: 146 http://deb.debian.org/debian trixie/main arm64 subunit all 1.4.2-3 [5248 B] Get: 147 http://deb.debian.org/debian trixie/main arm64 python3-stestr all 4.1.0-3 [56.9 kB] Get: 148 http://deb.debian.org/debian trixie/main arm64 python3-wsgi-intercept all 1.13.1-1 [18.9 kB] -Fetched 36.3 MB in 0s (148 MB/s) +Fetched 36.3 MB in 0s (177 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1:arm64. (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 ... 19965 files and directories currently installed.) @@ -770,8 +802,8 @@ Setting up tzdata (2025b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Fri Aug 1 07:24:17 UTC 2025. -Universal Time is now: Fri Aug 1 07:24:17 UTC 2025. +Local time is now: Thu Sep 3 13:48:23 UTC 2026. +Universal Time is now: Thu Sep 3 13:48:23 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... @@ -925,7 +957,11 @@ fakeroot is already the newest version (1.37.1.1-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-3_source.changes +I: user script /srv/workspace/pbuilder/1804284/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/1804284/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/python-gabbi-3.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../python-gabbi_3.0.0-3_source.changes dpkg-buildpackage: info: source package python-gabbi dpkg-buildpackage: info: source version 3.0.0-3 dpkg-buildpackage: info: source distribution unstable @@ -1043,21 +1079,26 @@ 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. ++ for i in $@ ++ case "${1}" in ++ echo 'WARNING: --no-py2 is deprecated and always on.' WARNING: --no-py2 is deprecated and always on. + shift ++ for i in $@ ++ case "${1}" in + PKGOS_IN_TMP=yes + shift -+ dpkg-parsechangelog -SSource +++ dpkg-parsechangelog -SSource + SRC_PKG_NAME=python-gabbi -+ + echo python-gabbi -sed s/python-// +++ echo python-gabbi +++ sed s/python-// + PY_MODULE_NAME=gabbi -+ py3versions -vr +++ py3versions -vr + PYTHON3S=3.13 -+ [ yes = yes ] ++ '[' yes = yes ']' + TARGET_DIR=tmp -+ pwd ++ for pyvers in ${PYTHON3S} +++ 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/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! @@ -1128,6 +1169,20 @@ [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/suite.py -> build/lib/gabbi +copying gabbi/runner.py -> build/lib/gabbi +copying gabbi/reporter.py -> build/lib/gabbi +copying gabbi/pytester.py -> build/lib/gabbi +copying gabbi/json_parser.py -> build/lib/gabbi +copying gabbi/httpclient.py -> build/lib/gabbi +copying gabbi/fixture.py -> build/lib/gabbi +copying gabbi/exception.py -> build/lib/gabbi +copying gabbi/driver.py -> build/lib/gabbi +copying gabbi/case.py -> build/lib/gabbi +copying gabbi/__init__.py -> build/lib/gabbi creating build/lib/gabbi/tests copying gabbi/tests/util.py -> build/lib/gabbi/tests copying gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/tests @@ -1159,19 +1214,6 @@ copying gabbi/handlers/core.py -> build/lib/gabbi/handlers copying gabbi/handlers/base.py -> build/lib/gabbi/handlers copying gabbi/handlers/__init__.py -> build/lib/gabbi/handlers -copying gabbi/utils.py -> build/lib/gabbi -copying gabbi/suitemaker.py -> build/lib/gabbi -copying gabbi/suite.py -> build/lib/gabbi -copying gabbi/runner.py -> build/lib/gabbi -copying gabbi/reporter.py -> build/lib/gabbi -copying gabbi/pytester.py -> build/lib/gabbi -copying gabbi/json_parser.py -> build/lib/gabbi -copying gabbi/httpclient.py -> build/lib/gabbi -copying gabbi/fixture.py -> build/lib/gabbi -copying gabbi/exception.py -> build/lib/gabbi -copying gabbi/driver.py -> build/lib/gabbi -copying gabbi/case.py -> build/lib/gabbi -copying gabbi/__init__.py -> build/lib/gabbi running egg_info creating gabbi.egg-info writing gabbi.egg-info/PKG-INFO @@ -1191,19 +1233,6 @@ 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/__init__.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/driver.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/fixture.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/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 -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/runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/suite.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/utils.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/__init__.py -> /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 @@ -1235,19 +1264,19 @@ 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_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/tests/util.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -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/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/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/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/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/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/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/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/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/suite.py to suite.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/utils.py to utils.cpython-313.pyc +copying build/lib/gabbi/__init__.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/driver.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/fixture.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/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 +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/runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/suite.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/utils.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/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/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/core.py to core.cpython-313.pyc @@ -1277,15 +1306,28 @@ 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_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/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/__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/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/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/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/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/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/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/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/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/suite.py to suite.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/utils.py to utils.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 -+ 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 +++ 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 @@ -1294,35 +1336,72 @@ + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + TEST_SERIAL_OPT= -+ echo WARNING: --no-py2 is deprecated, and always on. ++ for i in $@ ++ case "${1}" in ++ echo 'WARNING: --no-py2 is deprecated, and always on.' WARNING: --no-py2 is deprecated, and always on. + shift -+ py3versions -vr ++ for i in $@ ++ case "${1}" in +++ py3versions -vr + PYTHON3S=3.13 -+ [ yes = no ] -+ [ no = yes ] -+ [ 3.13 = disabled ] -+ echo 3.13 -+ cut -d. -f1 ++ '[' yes = no ']' ++ '[' no = yes ']' ++ for pyvers in ${PYTHON3S} ++ '[' 3.13 = disabled ']' +++ echo 3.13 +++ cut -d. -f1 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ 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 +++ 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 +++ 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 ] ++ 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 -+ + PYTHON=python3.13 stestr run --parallel --subunitsubunit2pyunit 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) - ++ PYTHON=python3.13 ++ subunit2pyunit ++ 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)' +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", + ... skipped 'entire suite skipped' +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_inner_fixture.inner_get_one.test_request +gabbi.tests.test_inner_fixture.inner_get_one.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_inner_fixture.inner_get_two.test_request +gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/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.self_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.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_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.regex_regex_string_test_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_json.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_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 @@ -1331,6 +1410,8 @@ 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_get_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_location_from_headers.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 @@ -1339,181 +1420,35 @@ 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_inner_fixture.inner_get_one.test_request -gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/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.self_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.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.self_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.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.self_checklimit.test_request -gabbi.tests.test_intercept.self_checklimit.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.self_post_a_body.test_request -gabbi.tests.test_intercept.self_post_a_body.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_handlers.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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.jsonbody_test_empty_list.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_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", -Exception ignored in: +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_binary_handling.test_request -gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok -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_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 ... Exception ignored in: -Traceback (most recent call last): - File "/usr/lib/python3.13/http/client.py", line 434, in close -ok -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex if self.fp: -AttributeError: 'HTTPResponse' object has no attribute 'fp' - ... 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_intercept.regex_regex_jsonpath_test.test_request -gabbi.tests.test_intercept.regex_regex_jsonpath_test.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_history.HistoryTest.test_response_replace_prior -gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok -gabbi.tests.test_intercept.queryparams_multi_params.test_request -gabbi.tests.test_intercept.queryparams_multi_params.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.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_history.HistoryTest.test_response_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok -gabbi.tests.test_intercept.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.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.self_json_derived_content_type.test_request -gabbi.tests.test_intercept.self_json_derived_content_type.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.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_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_intercept.queryparams_replacers_in_params.test_request -gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok -gabbi.tests.test_intercept.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.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.forbiddenheaders_header_not_there_basic.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.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.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.self_use_a_historical_location.test_request -gabbi.tests.test_intercept.self_use_a_historical_location.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_get_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_location_from_headers.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.contenttype_put_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_no_content-type.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.poll_create_a_thing.test_request -gabbi.tests.test_intercept.poll_create_a_thing.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.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.fixture_just_to_see_three.test_request -gabbi.tests.test_intercept.fixture_just_to_see_three.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.contenttype_post_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_no_content-type.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 -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/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.self_get_historical_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/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.self_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.test_request ... ok -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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.self_simple_post.test_request -gabbi.tests.test_intercept.self_simple_post.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.self_post_a_body_with_query.test_request +gabbi.tests.test_intercept.self_post_a_body_with_query.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_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_intercept.self_get_ssl_page.test_request +gabbi.tests.test_intercept.self_get_ssl_page.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_handlers.HandlersTest.test_response_headers gabbi.tests.test_handlers.HandlersTest.test_response_headers ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data @@ -1536,119 +1471,239 @@ 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_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.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.host-header_host_without_ssl.test_request -gabbi.tests.test_intercept.host-header_host_without_ssl.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.fixture_just_to_see.test_request -gabbi.tests.test_intercept.fixture_just_to_see.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.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.regex_regex_string_test_json.test_request -gabbi.tests.test_intercept.regex_regex_string_test_json.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.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 -/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 -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_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_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_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_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.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.method-shortcut_post_with_query.test_request -gabbi.tests.test_intercept.method-shortcut_post_with_query.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.method-shortcut_post_with_query.test_request/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_intercept.regex_regex_jsonpath_test.test_request +gabbi.tests.test_intercept.regex_regex_jsonpath_test.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.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_content-type.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_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... 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_fail_path -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... 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.method-shortcut_simple_get.test_request +gabbi.tests.test_intercept.method-shortcut_simple_get.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.self_simple_post.test_request +gabbi.tests.test_intercept.self_simple_post.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_handlers.HandlersTest.test_response_json_paths_fail_path +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... 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_simple_post.test_request +gabbi.tests.test_intercept.method-shortcut_simple_post.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.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +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.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_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_intercept.regex_regex_string_test_mix.test_request gabbi.tests.test_intercept.regex_regex_string_test_mix.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_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: +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 +/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.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.host-header_host_without_ssl.test_request +gabbi.tests.test_intercept.host-header_host_without_ssl.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_history.HistoryTest.test_response_replace_prior +gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... 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.forbiddenheaders_header_not_there_basic.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.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_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.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 -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.queryparams_url_in_param.test_request -gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... 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.data_partial_json_from_disk.test_request -gabbi.tests.test_intercept.data_partial_json_from_disk.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.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.json-left-side_expand_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_left_side.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.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_intercept.regex_regex_header_test.test_request -gabbi.tests.test_intercept.regex_regex_header_test.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.contenttype_patch_content-type.test_request gabbi.tests.test_intercept.contenttype_patch_content-type.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.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_handlers.HandlersTest.test_response_json_paths_regex_number +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... 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_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.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_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 +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_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.data_load_data_list.test_request gabbi.tests.test_intercept.data_load_data_list.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.cookie_use_a_historical_cookie.test_request -gabbi.tests.test_intercept.cookie_use_a_historical_cookie.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_handlers.HandlersTest.test_response_json_paths_substitution_noregex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... 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.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_intercept.data_load_json_file.test_request +gabbi.tests.test_intercept.data_load_json_file.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.json-extensions_test_filtered.test_request +gabbi.tests.test_intercept.json-extensions_test_filtered.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_handlers.HandlersTest.test_response_json_paths_substitution_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... 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_embedded_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... 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.self_get_simple_page.test_request +gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... 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.contenttype_put_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.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_jsonpath.JSONPathTest.test_len_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok +gabbi.tests.test_intercept.coerce_post_data.test_request +gabbi.tests.test_intercept.coerce_post_data.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +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_checklimit.test_request +gabbi.tests.test_intercept.self_checklimit.test_request ... ok +gabbi.tests.test_intercept.data_load_encoded_text.test_request +gabbi.tests.test_intercept.data_load_encoded_text.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_jsonpath.JSONPathTest.test_sorted_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... 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_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... 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_intercept.self_confirm_environ.test_request gabbi.tests.test_intercept.self_confirm_environ.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_load_data_file.DataFileTest.test_load_file_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... 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.self_json_derived_content_type.test_request +gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... 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_intercept.self_test_binary_handling.test_request +gabbi.tests.test_intercept.self_test_binary_handling.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.jsonbody_test_fully_body.test_request +gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok #### get simple page #### -> GET http://ab83830f-f203-49f7-b313-0e745ff423f3:8001/ +> GET http://ece2d684-3c28-4944-a5c8-523c69097810:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1656,12 +1711,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ab83830f-f203-49f7-b313-0e745ff423f3:8001/ +< X-Gabbi-url: http://ece2d684-3c28-4944-a5c8-523c69097810:8001/ {} #### json encoded value from disk #### -> POST http://58262045-3918-4108-ab15-df9fa5d66efd:8001/ +> POST http://d3912b91-221b-4b43-b277-c9bf6b11d438:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1674,8 +1729,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58262045-3918-4108-ab15-df9fa5d66efd:8001/ -< Location: http://58262045-3918-4108-ab15-df9fa5d66efd:8001/ +< X-Gabbi-url: http://d3912b91-221b-4b43-b277-c9bf6b11d438:8001/ +< Location: http://d3912b91-221b-4b43-b277-c9bf6b11d438:8001/ { "foo": { @@ -1684,7 +1739,7 @@ } #### json parital from disk #### -> POST http://58262045-3918-4108-ab15-df9fa5d66efd:8001/ +> POST http://d3912b91-221b-4b43-b277-c9bf6b11d438:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1696,96 +1751,59 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58262045-3918-4108-ab15-df9fa5d66efd:8001/ -< Location: http://58262045-3918-4108-ab15-df9fa5d66efd:8001/ +< X-Gabbi-url: http://d3912b91-221b-4b43-b277-c9bf6b11d438:8001/ +< Location: http://d3912b91-221b-4b43-b277-c9bf6b11d438:8001/ { "type": "cat", "sound": "meow" } -#### header named http #### -> GET http://0a76d42c-aa82-46d3-8d26-a0ee36f4a168: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://0a76d42c-aa82-46d3-8d26-a0ee36f4a168:8001/header_key -< HTTP: some-scheme - -{} - -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... 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.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_regex_number -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... 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_intercept.poll_loop_location.test_request -gabbi.tests.test_intercept.poll_loop_location.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.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_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.coerce_post_data.test_request -gabbi.tests.test_intercept.coerce_post_data.test_request ... 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.casting_cast_to_string.test_request -gabbi.tests.test_intercept.casting_cast_to_string.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.coerce_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.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.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_handlers.HandlersTest.test_response_json_paths_substitution_noregex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... 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.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.host-header_ssl_with_capitalised_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.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.backref_post_even_more_json.test_request +gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok +gabbi.tests.test_intercept.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.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.casting_default_casts.test_request gabbi.tests.test_intercept.casting_default_casts.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.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.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.contenttype_patch_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_no_content-type.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.json-extensions_test_sort.test_request -gabbi.tests.test_intercept.json-extensions_test_sort.test_request ... ok -gabbi.tests.test_intercept.coerce_use_data.test_request -gabbi.tests.test_intercept.coerce_use_data.test_request ... ok -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... 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_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_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.UtilsHostInfoFromTarget.test_ipv6_host_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost @@ -1808,10 +1826,18 @@ 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_intercept.backref_post_some_more_json.test_request -gabbi.tests.test_intercept.backref_post_some_more_json.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 +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.queryparams_joined_params.test_request +gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok #### get simple page #### -> GET http://92d14769-3573-41c5-845c-a4ff501f0cdf:8001/ +> GET http://41b13001-0200-4ec0-8c74-4e4b52262bdc:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1819,89 +1845,170 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://92d14769-3573-41c5-845c-a4ff501f0cdf:8001/ +< X-Gabbi-url: http://41b13001-0200-4ec0-8c74-4e4b52262bdc:8001/ {} -#### json encoded value from disk #### -> POST http://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ -> content-type: application/json +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.poll_loop_location.test_request +gabbi.tests.test_intercept.poll_loop_location.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.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.regex_regex_string_test_splat.test_request +gabbi.tests.test_intercept.regex_regex_string_test_splat.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.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_last_with_adjusted_parameters.test_request +gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request ... ok +gabbi.tests.test_intercept.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.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_get_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.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.fixture_just_to_see_three.test_request +gabbi.tests.test_intercept.fixture_just_to_see_three.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.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.data_json_value_from_disk.test_request +gabbi.tests.test_intercept.data_json_value_from_disk.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.cookie_use_a_historical_cookie.test_request +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.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.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_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_intercept.data_post_data_for_next.test_request +gabbi.tests.test_intercept.data_post_data_for_next.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_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_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_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... 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 +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.last-url_add_some_query_params.test_request +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok +#### get simple page #### +> GET http://e47e2cdf-ffe6-47eb-a419-083c394a9a89:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "foo": { - "b\u00e1r": 1 - } -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ -< Location: http://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ +< X-Gabbi-url: http://e47e2cdf-ffe6-47eb-a419-083c394a9a89:8001/ -{ - "foo": { - "b\u00e1r": 1 - } -} +{} -#### json parital from disk #### -> POST http://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ +#### left side json one #### +> POST http://158ccc01-12ad-4cc8-b896-b7adbff4586d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ -< Location: http://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ +< X-Gabbi-url: http://158ccc01-12ad-4cc8-b896-b7adbff4586d:8001/ +< Location: http://158ccc01-12ad-4cc8-b896-b7adbff4586d:8001/ { - "type": "cat", - "sound": "meow" + "alpha": "alpha1", + "beta": "beta1" } -#### json partial both sides #### -> POST http://adec5e72-f138-4fb9-ac90-0d7519deb433: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://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ -< Location: http://adec5e72-f138-4fb9-ac90-0d7519deb433:8001/ - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - #### post data #### -> POST http://ca652f34-2283-4ace-95f9-c0ec0971ce52:8001/ +> POST http://b1566a93-26c5-4775-bb66-1a653f2b0036:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1914,8 +2021,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ca652f34-2283-4ace-95f9-c0ec0971ce52:8001/ -< Location: http://ca652f34-2283-4ace-95f9-c0ec0971ce52:8001/ +< X-Gabbi-url: http://b1566a93-26c5-4775-bb66-1a653f2b0036:8001/ +< Location: http://b1566a93-26c5-4775-bb66-1a653f2b0036:8001/ { "one_string": "1", @@ -1924,7 +2031,7 @@ } #### use data #### -> POST http://ca652f34-2283-4ace-95f9-c0ec0971ce52:8001/ +> POST http://b1566a93-26c5-4775-bb66-1a653f2b0036:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1937,8 +2044,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ca652f34-2283-4ace-95f9-c0ec0971ce52:8001/ -< Location: http://ca652f34-2283-4ace-95f9-c0ec0971ce52:8001/ +< X-Gabbi-url: http://b1566a93-26c5-4775-bb66-1a653f2b0036:8001/ +< Location: http://b1566a93-26c5-4775-bb66-1a653f2b0036:8001/ { "one_string": "1", @@ -1946,80 +2053,72 @@ "one_float": 1.1 } -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.self_test_pluggable_response.test_request -gabbi.tests.test_intercept.self_test_pluggable_response.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.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.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.method-shortcut_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok -gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request -gabbi.tests.test_intercept.method-shortcut_arbitrary_method.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.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_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_intercept.host-header_ssl_no_host.test_request -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... 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://f2d415f2-ab5b-4ecc-8a02-ff8e5400f2d2:8001/notempty +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.fixture_just_to_see_two.test_request +gabbi.tests.test_intercept.fixture_just_to_see_two.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.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_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 +gabbi.tests.test_intercept.data_load_data_dictionary.test_request +gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok +#### get simple page #### +> GET http://11c42a14-365b-47dc-a538-20ca7c08c498: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://11c42a14-365b-47dc-a538-20ca7c08c498:8001/ -notempty +{} -#### get simple page #### -> GET http://8df4e661-e854-45c9-918b-b1d303fd64fc:8001/ -> x-random-header: ya +#### header named http #### +> GET http://9d66f27d-9f4c-479f-8d57-7ce9c1fcf26f: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://8df4e661-e854-45c9-918b-b1d303fd64fc:8001/ +< X-Gabbi-url: http://9d66f27d-9f4c-479f-8d57-7ce9c1fcf26f:8001/header_key +< HTTP: some-scheme {} +#### post data #### +> POST http://eb6cfde9-5efb-492f-8f9a-bda2b2d8beed: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://eb6cfde9-5efb-492f-8f9a-bda2b2d8beed:8001/ +< Location: http://eb6cfde9-5efb-492f-8f9a-bda2b2d8beed:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + #### default casts #### -> POST http://2c96313e-ad1e-46b1-b355-8084856e17bc:8001/ +> POST http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2035,8 +2134,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2c96313e-ad1e-46b1-b355-8084856e17bc:8001/ -< Location: http://2c96313e-ad1e-46b1-b355-8084856e17bc:8001/ +< X-Gabbi-url: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ +< Location: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ { "int": 1, @@ -2047,7 +2146,7 @@ } #### cast to string #### -> POST http://2c96313e-ad1e-46b1-b355-8084856e17bc:8001/ +> POST http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2059,59 +2158,239 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2c96313e-ad1e-46b1-b355-8084856e17bc:8001/ -< Location: http://2c96313e-ad1e-46b1-b355-8084856e17bc:8001/ +< X-Gabbi-url: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ +< Location: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ { "string": "2" } -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.coerce_post_extra_data.test_request -gabbi.tests.test_intercept.coerce_post_extra_data.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_intercept.data_json_value_from_disk.test_request -gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok +#### json set up #### +> POST http://21d70677-52b4-4a7e-a0f8-7c5041cc4134: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://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ +< Location: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +#### send casted json #### +> POST http://21d70677-52b4-4a7e-a0f8-7c5041cc4134: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://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ +< Location: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ + +{ + "casted": 2 +} + +#### historic casted json #### +> POST http://21d70677-52b4-4a7e-a0f8-7c5041cc4134: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://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ +< Location: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ + +{ + "casted": 2 +} + +#### internal json fine #### +> POST http://21d70677-52b4-4a7e-a0f8-7c5041cc4134: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://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ +< Location: http://21d70677-52b4-4a7e-a0f8-7c5041cc4134:8001/ + +{ + "casted": "in this 2 is not errors" +} + +#### yaml encoded value from disk #### +> POST http://008a5df1-76c3-4b3d-9306-8fbd72bcadd9: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://008a5df1-76c3-4b3d-9306-8fbd72bcadd9:8001/somewhere +< Location: http://008a5df1-76c3-4b3d-9306-8fbd72bcadd9:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json encoded value from disk #### +> POST http://008a5df1-76c3-4b3d-9306-8fbd72bcadd9: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://008a5df1-76c3-4b3d-9306-8fbd72bcadd9:8001/somewhere +< Location: http://008a5df1-76c3-4b3d-9306-8fbd72bcadd9:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +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.cookie_get_a_cookie.test_request gabbi.tests.test_intercept.cookie_get_a_cookie.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.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.json-left-side_expand_left_side.test_request +gabbi.tests.test_intercept.json-left-side_expand_left_side.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_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.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.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_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 +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/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_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 +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/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 +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok +gabbi.tests.test_intercept.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_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", +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/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.coerce_object_with_list.test_request +gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok +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_unsafe_yaml.nan_test_nan.test_request +gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/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 +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok +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", +/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 +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... 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 +gabbi.tests.test_intercept.coerce_with_list.test_request +gabbi.tests.test_intercept.coerce_with_list.test_request ... ok #### get simple page #### -> GET http://7b51798c-941a-4fb9-b884-6a8d845e7574:8001/ +> GET http://7ff9f8e3-ea3b-4acb-97f2-4193f16b6f32:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2119,12 +2398,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7b51798c-941a-4fb9-b884-6a8d845e7574:8001/ +< X-Gabbi-url: http://7ff9f8e3-ea3b-4acb-97f2-4193f16b6f32:8001/ {} #### left side json one #### -> POST http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ +> POST http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2136,8 +2415,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ -< Location: http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ +< X-Gabbi-url: http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ +< Location: http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ { "alpha": "alpha1", @@ -2145,7 +2424,7 @@ } #### expand left side #### -> POST http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ +> POST http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2157,8 +2436,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ -< Location: http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ +< X-Gabbi-url: http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ +< Location: http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ { "alpha1": "alpha", @@ -2166,7 +2445,7 @@ } #### expand environ left side #### -> POST http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ +> POST http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2179,8 +2458,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ -< Location: http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/ +< X-Gabbi-url: http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ +< Location: http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/ { "alpha1": "alpha", @@ -2189,7 +2468,7 @@ } #### set key and value #### -> GET http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/jsonator?key=1&value=10 +> GET http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2202,7 +2481,7 @@ } #### check key and value #### -> GET http://db67690b-24b9-40bc-9a04-12c06ad95d08:8001/jsonator?key=1&value=10 +> GET http://078c3f6d-3e8f-4227-b96d-b027fd8561c3:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2214,8 +2493,189 @@ "1": "10" } +#### default casts #### +> POST http://8534fd04-7190-402d-acd9-6aa10bd53cf3: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://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ +< Location: http://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + +#### cast to string #### +> POST http://8534fd04-7190-402d-acd9-6aa10bd53cf3: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://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ +< Location: http://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ + +{ + "string": "2" +} + +#### json set up #### +> POST http://8534fd04-7190-402d-acd9-6aa10bd53cf3: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://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ +< Location: http://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +#### send casted json #### +> POST http://8534fd04-7190-402d-acd9-6aa10bd53cf3: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://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ +< Location: http://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ + +{ + "casted": 2 +} + +#### historic casted json #### +> POST http://8534fd04-7190-402d-acd9-6aa10bd53cf3: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://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ +< Location: http://8534fd04-7190-402d-acd9-6aa10bd53cf3:8001/ + +{ + "casted": 2 +} + +#### yaml encoded value from disk #### +> POST http://64c12cbe-5256-48b1-bf4e-5cbd1cad0243: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://64c12cbe-5256-48b1-bf4e-5cbd1cad0243:8001/somewhere +< Location: http://64c12cbe-5256-48b1-bf4e-5cbd1cad0243:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +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.casting_send_casted_json.test_request +gabbi.tests.test_intercept.casting_send_casted_json.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://e3a1fade-3881-4776-acdb-ffdbe17196b2: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://e3a1fade-3881-4776-acdb-ffdbe17196b2:8001/ + +{} + +#### json encoded value from disk #### +> POST http://5aa5a4bf-7799-45e7-91a2-d035ac3b8d22: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://5aa5a4bf-7799-45e7-91a2-d035ac3b8d22:8001/ +< Location: http://5aa5a4bf-7799-45e7-91a2-d035ac3b8d22:8001/ + +{ + "foo": { + "b\u00e1r": 1 + } +} + #### post data #### -> POST http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +> POST http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2228,8 +2688,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ -< Location: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +< X-Gabbi-url: http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ +< Location: http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ { "one_string": "1", @@ -2238,7 +2698,7 @@ } #### use data #### -> POST http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +> POST http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2251,8 +2711,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ -< Location: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +< X-Gabbi-url: http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ +< Location: http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ { "one_string": "1", @@ -2261,7 +2721,7 @@ } #### from environ #### -> POST http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +> POST http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2272,159 +2732,125 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ -< Location: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +< X-Gabbi-url: http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ +< Location: http://a10e2119-3352-4d6f-8981-95bce859b6f0:8001/ { "one_environ": 1 } -#### with list #### -> POST http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +#### yaml encoded value from disk #### +> POST http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - 1, - 2, - "3" -] +{ + "foo": { + "b\u00e1r": 1 + } +} < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ -< Location: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +< X-Gabbi-url: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere +< Location: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere -[ - 1, - 2, - "3" -] +{ + "foo": { + "b\u00e1r": 1 + } +} -#### object with list #### -> POST http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +#### json encoded value from disk #### +> POST http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ -< Location: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +< X-Gabbi-url: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere +< Location: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "foo": { + "b\u00e1r": 1 + } } -#### post extra data #### -> POST http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +#### yaml parital from disk #### +> POST http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere > 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 - } - } + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ -< Location: http://389ca8da-c210-4c8f-8ff4-c120517d79e4:8001/ +< X-Gabbi-url: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere +< Location: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere { - "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 - } - } + "type": "cat", + "sound": "meow" } -#### yaml encoded value from disk #### -> POST http://fc75bcb9-9046-46e5-9687-44731da4eafd:8001/somewhere +#### yaml partial both sides #### +> POST http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "foo": { - "b\u00e1r": 1 +[ + { + "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://fc75bcb9-9046-46e5-9687-44731da4eafd:8001/somewhere -< Location: http://fc75bcb9-9046-46e5-9687-44731da4eafd:8001/somewhere +< X-Gabbi-url: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere +< Location: http://47f50b04-6530-4b3f-a4b2-445dddae9532:8001/somewhere -{ - "foo": { - "b\u00e1r": 1 +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" } -} +] -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.coerce_check_posted_data.test_request gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... 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 +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.casting_historic_casted_json.test_request +gabbi.tests.test_intercept.casting_historic_casted_json.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.backref_post_a_raw_int_as_json.test_request +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request ... ok #### get simple page #### -> GET http://9b392a7a-ac42-4906-b758-a5d900f3e2c9:8001/ +> GET http://6c51ad58-35cc-404d-810e-1e3456bd714c:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2432,131 +2858,131 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9b392a7a-ac42-4906-b758-a5d900f3e2c9:8001/ +< X-Gabbi-url: http://6c51ad58-35cc-404d-810e-1e3456bd714c:8001/ {} -#### loop location #### -> GET http://c805c6e8-3365-4d82-a199-43406c1892c3: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://c805c6e8-3365-4d82-a199-43406c1892c3: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://c805c6e8-3365-4d82-a199-43406c1892c3:8001/poller?count=2&x=1&y=2&z=3.4 +#### json encoded value from disk #### +> POST http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "foo": { + "b\u00e1r": 1 + } +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c805c6e8-3365-4d82-a199-43406c1892c3:8001/poller?count=2&x=1&y=2&z=3.4 +< X-Gabbi-url: http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ +< Location: http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ { - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] + "foo": { + "b\u00e1r": 1 + } } -#### left side json one #### -> POST http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ +#### json parital from disk #### +> POST http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ -< Location: http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ +< X-Gabbi-url: http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ +< Location: http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "type": "cat", + "sound": "meow" } -#### expand left side #### -> POST http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ +#### json partial both sides #### +> POST http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "alpha1": "alpha", - "beta1": "beta" -} +[ + { + "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://017d00d3-39b0-4223-9f1e-538333032c97:8001/ -< Location: http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ +< X-Gabbi-url: http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ +< Location: http://510033cd-2fe4-4545-8ccd-cfcb7d27d123:8001/ -{ - "alpha1": "alpha", - "beta1": "beta" -} +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] -#### expand environ left side #### -> POST http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ +#### left side json one #### +> POST http://91fc38cf-e9cb-43c1-a6eb-aad4e04bff0f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ -< Location: http://017d00d3-39b0-4223-9f1e-538333032c97:8001/ +< X-Gabbi-url: http://91fc38cf-e9cb-43c1-a6eb-aad4e04bff0f:8001/ +< Location: http://91fc38cf-e9cb-43c1-a6eb-aad4e04bff0f:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "alpha": "alpha1", + "beta": "beta1" } -#### set key and value #### -> GET http://017d00d3-39b0-4223-9f1e-538333032c97:8001/jsonator?key=1&value=10 +#### expand left side #### +> POST http://91fc38cf-e9cb-43c1-a6eb-aad4e04bff0f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "alpha1": "alpha", + "beta1": "beta" +} < 200 OK -< Content-Type: application/json +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://91fc38cf-e9cb-43c1-a6eb-aad4e04bff0f:8001/ +< Location: http://91fc38cf-e9cb-43c1-a6eb-aad4e04bff0f:8001/ { - "1": "10" + "alpha1": "alpha", + "beta1": "beta" } #### default casts #### -> POST http://10577cc8-06cd-4163-a27e-f10d51c5aca8:8001/ +> POST http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2572,8 +2998,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://10577cc8-06cd-4163-a27e-f10d51c5aca8:8001/ -< Location: http://10577cc8-06cd-4163-a27e-f10d51c5aca8:8001/ +< X-Gabbi-url: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ +< Location: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ { "int": 1, @@ -2583,91 +3009,104 @@ "fbool": false } -#### yaml encoded value from disk #### -> POST http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere +#### cast to string #### +> POST http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere -< Location: http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ +< Location: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ { - "foo": { - "b\u00e1r": 1 - } + "string": "2" } -#### json encoded value from disk #### -> POST http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere +#### json set up #### +> POST http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere -< Location: http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ +< Location: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } -#### yaml parital from disk #### -> POST http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere +#### send casted json #### +> POST http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere -< Location: http://02b45038-56f7-4e4e-ab61-df65eae8a927:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ +< Location: http://a6caaba3-5244-48a0-9c49-190661ac632e:8001/ { - "type": "cat", - "sound": "meow" + "casted": 2 } -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.casting_internal_json_fine.test_request -gabbi.tests.test_intercept.casting_internal_json_fine.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.coerce_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.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_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.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.backref_backref_json_fail_start.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_start.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_suite.SuiteTest.test_suite_catches_fixture_fail +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... 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.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_(reversed).test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok #### get simple page #### -> GET http://8f481eb5-ae51-484d-b13a-39ae0eec366d:8001/ +> GET http://0d37dd77-2563-448e-ac2b-5b6f792c4c6d:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2675,12 +3114,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8f481eb5-ae51-484d-b13a-39ae0eec366d:8001/ +< X-Gabbi-url: http://0d37dd77-2563-448e-ac2b-5b6f792c4c6d:8001/ {} #### post data #### -> POST http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +> POST http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2693,8 +3132,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ -< Location: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +< X-Gabbi-url: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ +< Location: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ { "one_string": "1", @@ -2703,7 +3142,7 @@ } #### use data #### -> POST http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +> POST http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2716,8 +3155,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ -< Location: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +< X-Gabbi-url: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ +< Location: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ { "one_string": "1", @@ -2726,7 +3165,7 @@ } #### from environ #### -> POST http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +> POST http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2737,15 +3176,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ -< Location: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +< X-Gabbi-url: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ +< Location: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ { "one_environ": 1 } #### with list #### -> POST http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +> POST http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2758,8 +3197,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ -< Location: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +< X-Gabbi-url: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ +< Location: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ [ 1, @@ -2768,7 +3207,7 @@ ] #### object with list #### -> POST http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +> POST http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2788,8 +3227,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ -< Location: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +< X-Gabbi-url: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ +< Location: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ { "collection": [ @@ -2805,7 +3244,7 @@ } #### post extra data #### -> POST http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +> POST http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2834,63 +3273,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ -< Location: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7: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://3c02a3e3-495b-41c5-9b99-6c93445ffef7: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://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ -< Location: http://3c02a3e3-495b-41c5-9b99-6c93445ffef7:8001/ +< X-Gabbi-url: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ +< Location: http://e8643751-02b2-47e0-8c35-e09c7217dc26:8001/ { "a": 1, @@ -2915,7 +3299,7 @@ } #### default casts #### -> POST http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +> POST http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2931,8 +3315,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ -< Location: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +< X-Gabbi-url: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ +< Location: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ { "int": 1, @@ -2943,7 +3327,7 @@ } #### cast to string #### -> POST http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +> POST http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2955,15 +3339,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ -< Location: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +< X-Gabbi-url: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ +< Location: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ { "string": "2" } #### json set up #### -> POST http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +> POST http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2979,8 +3363,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ -< Location: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +< X-Gabbi-url: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ +< Location: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ { "int": 1, @@ -2991,7 +3375,7 @@ } #### send casted json #### -> POST http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +> POST http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3003,15 +3387,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ -< Location: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +< X-Gabbi-url: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ +< Location: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ { "casted": 2 } #### historic casted json #### -> POST http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +> POST http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3023,50 +3407,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ -< Location: http://5b91974a-d828-4495-95e1-7e13259b6e43:8001/ +< X-Gabbi-url: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ +< Location: http://e7e584b4-2c50-4325-8481-af23e08cf436:8001/ { "casted": 2 } -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_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_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_syntax_warning.DriverTest.test_driver_warnings_on_files -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... 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.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 -#### get simple page #### -> GET http://b8e96427-7897-4713-9442-a6e2658e2b9e: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://b8e96427-7897-4713-9442-a6e2658e2b9e:8001/ - -{} - #### left side json one #### -> POST http://441ddbf5-d72a-4f68-a331-522978f97cfd:8001/ +> POST http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3078,8 +3427,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://441ddbf5-d72a-4f68-a331-522978f97cfd:8001/ -< Location: http://441ddbf5-d72a-4f68-a331-522978f97cfd:8001/ +< X-Gabbi-url: http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ +< Location: http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ { "alpha": "alpha1", @@ -3087,7 +3436,7 @@ } #### expand left side #### -> POST http://441ddbf5-d72a-4f68-a331-522978f97cfd:8001/ +> POST http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3099,148 +3448,52 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://441ddbf5-d72a-4f68-a331-522978f97cfd:8001/ -< Location: http://441ddbf5-d72a-4f68-a331-522978f97cfd:8001/ +< X-Gabbi-url: http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ +< Location: http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ { "alpha1": "alpha", "beta1": "beta" } -#### default casts #### -> POST http://ee766b66-3f07-4633-b0a4-ec43f61dadb5: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://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ -< Location: http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ - -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} - -#### cast to string #### -> POST http://ee766b66-3f07-4633-b0a4-ec43f61dadb5: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://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ -< Location: http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ - -{ - "string": "2" -} - -#### json set up #### -> POST http://ee766b66-3f07-4633-b0a4-ec43f61dadb5: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://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ -< Location: http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ - -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -} - -#### send casted json #### -> POST http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ +#### expand environ left side #### +> POST http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ -< Location: http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ +< Location: http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/ { - "casted": 2 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } -#### historic casted json #### -> POST http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ +#### set key and value #### +> GET http://0f423fbd-b446-4f8f-b7ce-7303a33ac0ff:8001/jsonator?key=1&value=10 > 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://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ -< Location: http://ee766b66-3f07-4633-b0a4-ec43f61dadb5:8001/ { - "casted": 2 + "1": "10" } -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.backref_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.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 #### post data #### -> POST http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +> POST http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3253,8 +3506,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +< X-Gabbi-url: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ +< Location: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ { "one_string": "1", @@ -3263,7 +3516,7 @@ } #### use data #### -> POST http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +> POST http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3276,8 +3529,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +< X-Gabbi-url: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ +< Location: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ { "one_string": "1", @@ -3286,7 +3539,7 @@ } #### from environ #### -> POST http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +> POST http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3297,15 +3550,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +< X-Gabbi-url: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ +< Location: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ { "one_environ": 1 } #### with list #### -> POST http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +> POST http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3318,8 +3571,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +< X-Gabbi-url: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ +< Location: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ [ 1, @@ -3328,7 +3581,7 @@ ] #### object with list #### -> POST http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +> POST http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3348,8 +3601,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +< X-Gabbi-url: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ +< Location: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ { "collection": [ @@ -3365,7 +3618,7 @@ } #### post extra data #### -> POST http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +> POST http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3394,8 +3647,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +< X-Gabbi-url: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ +< Location: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ { "a": 1, @@ -3420,7 +3673,7 @@ } #### check posted data #### -> POST http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +> POST http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3449,63 +3702,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de: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://b6473070-8e7c-4afe-a26a-570d072400de: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://b6473070-8e7c-4afe-a26a-570d072400de:8001/ -< Location: http://b6473070-8e7c-4afe-a26a-570d072400de:8001/ +< X-Gabbi-url: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ +< Location: http://4c4cc1c6-5fd2-41d7-9c4c-59d05d4893f1:8001/ { "a": 1, @@ -3530,7 +3728,7 @@ } #### default casts #### -> POST http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +> POST http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3546,8 +3744,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -< Location: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +< X-Gabbi-url: http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ +< Location: http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ { "int": 1, @@ -3558,7 +3756,7 @@ } #### cast to string #### -> POST http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +> POST http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3570,15 +3768,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -< Location: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +< X-Gabbi-url: http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ +< Location: http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ { "string": "2" } #### json set up #### -> POST http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +> POST http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3594,8 +3792,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -< Location: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +< X-Gabbi-url: http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ +< Location: http://71e500de-d9c6-4b51-b170-b8b180207eac:8001/ { "int": 1, @@ -3605,93 +3803,95 @@ "fbool": false } -#### send casted json #### -> POST http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -> content-type: application/json -> accept: application/json +#### confirm notempty #### +> GET http://bacbb759-aa9d-4dde-b82f-53e7f152cc0a:8001/notempty > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "casted": 2 -} < 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -< Location: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -{ - "casted": 2 -} +notempty -#### historic casted json #### -> POST http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +#### get simple page #### +> GET http://932babb6-4764-4820-9bfa-501c4d5b8095: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://932babb6-4764-4820-9bfa-501c4d5b8095:8001/ + +{} + +#### left side json one #### +> POST http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -< Location: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ +< Location: http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ { - "casted": 2 + "alpha": "alpha1", + "beta": "beta1" } -#### internal json fine #### -> POST http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +#### expand left side #### +> POST http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": "in this 2 is not errors" + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ -< Location: http://70de611b-56ce-4caf-84ca-7d9c055dc43a:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ +< Location: http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ { - "casted": "in this 2 is not errors" + "alpha1": "alpha", + "beta1": "beta" } -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.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_replacers.EnvironReplaceTest.test_environ_boolean -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... 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 -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -#### get simple page #### -> GET http://1d96bee5-e115-4351-875a-e3edde61a46c:8001/ -> x-random-header: ya +#### expand environ left side #### +> POST http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1d96bee5-e115-4351-875a-e3edde61a46c:8001/ +< X-Gabbi-url: http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ +< Location: http://746d8b67-07ed-4057-80ad-6fb5b9678317:8001/ -{} +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} #### post data #### -> POST http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3704,8 +3904,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ -< Location: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { "one_string": "1", @@ -3714,7 +3914,7 @@ } #### use data #### -> POST http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3727,8 +3927,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ -< Location: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { "one_string": "1", @@ -3737,7 +3937,7 @@ } #### from environ #### -> POST http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3748,15 +3948,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ -< Location: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { "one_environ": 1 } #### with list #### -> POST http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3769,8 +3969,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ -< Location: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ [ 1, @@ -3779,7 +3979,7 @@ ] #### object with list #### -> POST http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3799,8 +3999,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ -< Location: http://8dd48f92-8da4-4f7d-99a6-c726d6e38180:8001/ +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { "collection": [ @@ -3815,199 +4015,228 @@ ] } -#### default casts #### -> POST http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +#### post extra data #### +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab: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 + "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 -< X-Gabbi-url: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ -< Location: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "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 + } + } } -#### cast to string #### -> POST http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +#### check posted data #### +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "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 -< X-Gabbi-url: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ -< Location: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { - "string": "2" + "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 + } + } } -#### json set up #### -> POST http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +#### Post again and check the results #### +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab: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 + "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 -< X-Gabbi-url: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ -< Location: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "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 + } + } } -#### send casted json #### -> POST http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +#### Post again and check the results (reversed) #### +> POST http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "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 -< X-Gabbi-url: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ -< Location: http://75462a53-1731-4ef8-9e35-a048abd11f54:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ +< Location: http://95bc2e9a-b76f-4a93-be58-e3029d39b8ab:8001/ { - "casted": 2 + "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 + } + } } -/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_runner.RunnerTest.test_data_dir_good -gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok -gabbi.tests.test_runner.RunnerTest.test_exit_code -gabbi.tests.test_runner.RunnerTest.test_exit_code ... 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_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 -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/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 -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -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", -/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 -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", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/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 -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... 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.coerce_string_internal_replace.test_request -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... 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://3644e637-7fe1-441b-b33c-bc1ded6afe64: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://3644e637-7fe1-441b-b33c-bc1ded6afe64:8001/ - -{} - #### default casts #### -> POST http://7b67b107-25dd-4ae5-8525-e8112f6df1e4:8001/ +> POST http://a787a0f0-ae1f-40f6-ad1d-915f82cc857e:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4023,8 +4252,10 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://7b67b107-25dd-4ae5-8525-e8112f6df1e4:8001/ -< Location: http://7b67b107-25dd-4ae5-8525-e8112f6df1e4:8001/ +< X-Gabbi-url: http://a787a0f0-ae1f-40f6-ad1d-915f82cc857e:8001/gabbi.tests.test_intercept.casting_cast_to_string.test_request +gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok + +< Location: http://a787a0f0-ae1f-40f6-ad1d-915f82cc857e:8001/ { "int": 1, @@ -4035,7 +4266,7 @@ } #### cast to string #### -> POST http://7b67b107-25dd-4ae5-8525-e8112f6df1e4:8001/ +> POST http://a787a0f0-ae1f-40f6-ad1d-915f82cc857e:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4047,171 +4278,81 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://7b67b107-25dd-4ae5-8525-e8112f6df1e4:8001/ -< Location: http://7b67b107-25dd-4ae5-8525-e8112f6df1e4:8001/ +< X-Gabbi-url: http://a787a0f0-ae1f-40f6-ad1d-915f82cc857e:8001/ +< Location: http://a787a0f0-ae1f-40f6-ad1d-915f82cc857e:8001/ { "string": "2" } -#### yaml encoded value from disk #### -> POST http://c8f89e45-8c74-4e0d-afef-310186e087d7: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://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere -< Location: http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json encoded value from disk #### -> POST http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere -> content-type: application/json +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.backref_use_raw_json_from_response.test_request +gabbi.tests.test_intercept.backref_use_raw_json_from_response.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.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_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 +#### get simple page #### +> GET http://69cff935-669c-4f78-a15f-8105fe2e17c3:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "foo": { - "b\u00e1r": 1 - } -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere -< Location: http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere +< X-Gabbi-url: http://69cff935-669c-4f78-a15f-8105fe2e17c3:8001/ -{ - "foo": { - "b\u00e1r": 1 - } -} +{} -#### yaml parital from disk #### -> POST http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere -> content-type: application/json +#### loop location #### +> GET http://091f4687-cbf7-4432-ac43-e52bdbf4d765:8001/poller?count=2&x=1&y=2&z=3.4 > 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://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere -< Location: http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere +< 400 Bad Reqest -{ - "type": "cat", - "sound": "meow" -} -#### yaml partial both sides #### -> POST http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere -> content-type: application/json +#### loop location #### +> GET http://091f4687-cbf7-4432-ac43-e52bdbf4d765:8001/poller?count=2&x=1&y=2&z=3.4 > 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://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere -< Location: http://c8f89e45-8c74-4e0d-afef-310186e087d7:8001/somewhere +< 400 Bad Reqest -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... 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_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 -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... 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_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_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 -#### get simple page #### -> GET http://60e6e3e9-5dcc-44be-a7e3-fb4d4a447ed7:8001/ -> x-random-header: ya +#### loop location #### +> GET http://091f4687-cbf7-4432-ac43-e52bdbf4d765: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://60e6e3e9-5dcc-44be-a7e3-fb4d4a447ed7:8001/ - -{} - -#### left side json one #### -> POST http://30c8182d-90cd-44ae-90d5-30b959a1f176:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) +< X-Gabbi-url: http://091f4687-cbf7-4432-ac43-e52bdbf4d765:8001/poller?count=2&x=1&y=2&z=3.4 { - "alpha": "alpha1", - "beta": "beta1" -} - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://30c8182d-90cd-44ae-90d5-30b959a1f176:8001/ -< Location: http://30c8182d-90cd-44ae-90d5-30b959a1f176:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" + "count": [ + "2" + ], + "x": [ + "1" + ], + "y": [ + "2" + ], + "z": [ + "3.4" + ] } #### post data #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4224,8 +4365,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ { "one_string": "1", @@ -4234,7 +4375,7 @@ } #### use data #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4247,8 +4388,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ { "one_string": "1", @@ -4257,7 +4398,7 @@ } #### from environ #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4268,15 +4409,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ { "one_environ": 1 } #### with list #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4289,8 +4430,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ [ 1, @@ -4299,7 +4440,7 @@ ] #### object with list #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4319,8 +4460,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ { "collection": [ @@ -4336,7 +4477,7 @@ } #### post extra data #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4365,8 +4506,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ { "a": 1, @@ -4391,7 +4532,7 @@ } #### check posted data #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4420,8 +4561,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ { "a": 1, @@ -4446,7 +4587,7 @@ } #### Post again and check the results #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +> POST http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4475,8 +4616,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ +< Location: http://18453e27-4c07-495e-b752-aea3e3f74bcd:8001/ { "a": 1, @@ -4500,88 +4641,31 @@ } } -#### Post again and check the results (reversed) #### -> POST http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +#### yaml encoded value from disk #### +> POST http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere > 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 - } + "foo": { + "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ -< Location: http://23a75e80-f43e-4a88-ba0c-aeb022f2a98f:8001/ +< X-Gabbi-url: http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere +< Location: http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere { - "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 - } + "foo": { + "b\u00e1r": 1 } } -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 -#### get simple page #### -> GET http://e28566a5-1712-480a-99be-9dfaed74d327: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://e28566a5-1712-480a-99be-9dfaed74d327:8001/ - -{} - #### json encoded value from disk #### -> POST http://44e45fa7-6da1-4551-864d-14dcb7a276e0:8001/ +> POST http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4594,8 +4678,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://44e45fa7-6da1-4551-864d-14dcb7a276e0:8001/ -< Location: http://44e45fa7-6da1-4551-864d-14dcb7a276e0:8001/ +< X-Gabbi-url: http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere +< Location: http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere { "foo": { @@ -4603,8 +4687,44 @@ } } +#### yaml parital from disk #### +> POST http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c: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://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere +< Location: http://1e6d07e9-fa70-4da7-95d9-107fe3ef544c:8001/somewhere + +{ + "type": "cat", + "sound": "meow" +} + +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok +#### get simple page #### +> GET http://cf1505c5-ef63-4f4d-84e4-378aa5e5973b: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://cf1505c5-ef63-4f4d-84e4-378aa5e5973b:8001/ + +{} + #### post data #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4617,8 +4737,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "one_string": "1", @@ -4627,7 +4747,7 @@ } #### use data #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4640,8 +4760,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "one_string": "1", @@ -4650,7 +4770,7 @@ } #### from environ #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4661,15 +4781,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "one_environ": 1 } #### with list #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4682,8 +4802,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ [ 1, @@ -4692,7 +4812,7 @@ ] #### object with list #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4712,8 +4832,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "collection": [ @@ -4729,7 +4849,7 @@ } #### post extra data #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4758,8 +4878,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "a": 1, @@ -4784,7 +4904,7 @@ } #### check posted data #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4813,8 +4933,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "a": 1, @@ -4839,7 +4959,7 @@ } #### Post again and check the results #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4868,8 +4988,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "a": 1, @@ -4894,7 +5014,7 @@ } #### Post again and check the results (reversed) #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4923,8 +5043,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "a": 1, @@ -4949,7 +5069,7 @@ } #### string internal replace #### -> POST http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +> POST http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4961,80 +5081,80 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ -< Location: http://3b53d3c6-0c64-4926-9afd-b3f06d133a68:8001/ +< X-Gabbi-url: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ +< Location: http://d0b5a979-9830-4984-921a-315f7d61bcaf:8001/ { "endpoint_resp": "/api/0.1/item/1", "endpoint_var": "/api/0.1/item/1" } -#### yaml encoded value from disk #### -> POST http://4948c197-e191-4d0e-ac6a-cffa9bb37054:8001/somewhere +#### default casts #### +> POST http://88f581ff-3ea0-4bdc-b99b-f5f465618053:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4948c197-e191-4d0e-ac6a-cffa9bb37054:8001/somewhere -< Location: http://4948c197-e191-4d0e-ac6a-cffa9bb37054:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://88f581ff-3ea0-4bdc-b99b-f5f465618053:8001/ +< Location: http://88f581ff-3ea0-4bdc-b99b-f5f465618053:8001/ { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### json encoded value from disk #### -> POST http://4948c197-e191-4d0e-ac6a-cffa9bb37054:8001/somewhere +#### cast to string #### +> POST http://88f581ff-3ea0-4bdc-b99b-f5f465618053:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4948c197-e191-4d0e-ac6a-cffa9bb37054:8001/somewhere -< Location: http://4948c197-e191-4d0e-ac6a-cffa9bb37054:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://88f581ff-3ea0-4bdc-b99b-f5f465618053:8001/ +< Location: http://88f581ff-3ea0-4bdc-b99b-f5f465618053:8001/ { - "foo": { - "b\u00e1r": 1 - } -}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 - + "string": "2" +} ---------------------------------------------------------------------- -Ran 314 tests in 3.840s +Ran 314 tests in 3.885s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.959 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 1.417 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 0.718 -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 0.618 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.578 -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.574 -gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.519 -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.434 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.414 -gabbi.tests.test_intercept.poll_loop_location.test_request 0.356 +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 0.995 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 0.895 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 0.853 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.703 +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 0.446 +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 0.436 +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.433 +gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 0.406 +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.399 +gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.377 + rm -rf .stestr make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_install -O--buildsystem=pybuild @@ -5139,14 +5259,14 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/*.init.in +++ 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 -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 \ @@ -5155,7 +5275,7 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/*.init.in +++ 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' @@ -5170,14 +5290,14 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/*.init.in +++ 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 -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 \ @@ -5186,7 +5306,7 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/*.init.in +++ 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' @@ -5220,12 +5340,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1804284/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1804284/tmp/hooks/B01_cleanup finished 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/1766873 and its subdirectories -I: Current time: Thu Jul 31 19:24:59 -12 2025 -I: pbuilder-time-stamp: 1754033099 +I: removing directory /srv/workspace/pbuilder/1804284 and its subdirectories +I: Current time: Fri Sep 4 03:49:12 +14 2026 +I: pbuilder-time-stamp: 1788443352