Diff of the two buildlogs: -- --- b1/build.log 2024-12-24 05:28:48.304283696 +0000 +++ b2/build.log 2024-12-24 05:31:29.444928100 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Jan 25 23:49:25 -12 2026 -I: pbuilder-time-stamp: 1769428165 +I: Current time: Tue Dec 24 19:28:51 +14 2024 +I: pbuilder-time-stamp: 1735018131 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -25,52 +25,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/2417472/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/511047/tmp/hooks/D01_modify_environment starting +debug: Running on codethink02-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 Dec 24 05:28 /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/511047/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/511047/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='e335ed03b44e4e35bc975cdbe358e8f1' - 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='2417472' - PS1='# ' - PS2='> ' + INVOCATION_ID=8676b1013d6c4450841f334b6b7d93c7 + 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=511047 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.EoYBv128/pbuilderrc_ZgEl --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.EoYBv128/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.EoYBv128/pbuilderrc_nNZV --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.EoYBv128/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 codethink01-arm64 6.1.0-28-cloud-arm64 #1 SMP Debian 6.1.119-1 (2024-11-22) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-28-cloud-arm64 #1 SMP Debian 6.1.119-1 (2024-11-22) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2417472/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/511047/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -304,7 +336,7 @@ Get: 158 http://deb.debian.org/debian trixie/main arm64 subunit all 1.4.2-3 [5248 B] Get: 159 http://deb.debian.org/debian trixie/main arm64 python3-stestr all 4.1.0-3 [56.9 kB] Get: 160 http://deb.debian.org/debian trixie/main arm64 python3-wsgi-intercept all 1.13.0-2 [18.6 kB] -Fetched 50.3 MB in 0s (198 MB/s) +Fetched 50.3 MB in 0s (120 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libjs-jquery. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20082 files and directories currently installed.) @@ -828,8 +860,8 @@ Setting up tzdata (2024b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Jan 26 11:49:49 UTC 2026. -Universal Time is now: Mon Jan 26 11:49:49 UTC 2026. +Local time is now: Tue Dec 24 05:29:45 UTC 2024. +Universal Time is now: Tue Dec 24 05:29:45 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpython3.13-minimal:arm64 (3.13.1-2) ... @@ -990,7 +1022,11 @@ fakeroot is already the newest version (1.36.2-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/511047/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/511047/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 @@ -1126,21 +1162,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 -+ PYTHON3S=3.13 3.12 -+ [ yes = yes ] +++ py3versions -vr ++ PYTHON3S='3.13 3.12' ++ '[' 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/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! @@ -1199,12 +1240,6 @@ 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/handlers -copying gabbi/handlers/yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/handlers -copying gabbi/handlers/jsonhandler.py -> build/lib/gabbi/handlers -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 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 @@ -1230,6 +1265,12 @@ copying gabbi/tests/simple_wsgi.py -> build/lib/gabbi/tests copying gabbi/tests/custom_response_handler.py -> build/lib/gabbi/tests copying gabbi/tests/__init__.py -> build/lib/gabbi/tests +creating build/lib/gabbi/handlers +copying gabbi/handlers/yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/handlers +copying gabbi/handlers/jsonhandler.py -> build/lib/gabbi/handlers +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 running egg_info creating gabbi.egg-info writing gabbi.egg-info/PKG-INFO @@ -1249,6 +1290,12 @@ 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 +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 +copying build/lib/gabbi/handlers/core.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/custom_response_handler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests @@ -1274,12 +1321,6 @@ 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 -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 -copying build/lib/gabbi/handlers/core.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers -copying build/lib/gabbi/handlers/jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers -copying build/lib/gabbi/handlers/yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/__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 @@ -1293,6 +1334,11 @@ 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 +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/custom_response_handler.py to custom_response_handler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-313.pyc @@ -1317,11 +1363,6 @@ 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/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 -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__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 @@ -1340,7 +1381,8 @@ Skipping SOURCES.txt running install_scripts Installing gabbi-run script to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/bin -+ pwd ++ for pyvers in ${PYTHON3S} +++ pwd + python3.12 setup.py install --install-layout=deb --root /build/reproducible-path/python-gabbi-3.0.0/debian/tmp /usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! @@ -1393,6 +1435,11 @@ writing top-level names to gabbi.egg-info/top_level.txt [pbr] Reusing existing SOURCES.txt running install_lib +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/custom_response_handler.py to custom_response_handler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-312.pyc @@ -1417,11 +1464,6 @@ byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_utils.py to test_utils.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__init__.py to __init__.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/case.py to case.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-312.pyc @@ -1441,10 +1483,10 @@ 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 @@ -1453,37 +1495,70 @@ + 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 -+ PYTHON3S=3.13 3.12 -+ [ yes = no ] -+ [ no = yes ] -+ [ 3.13 = disabled ] -+ echo 3.13 -+ cut -d. -f1 ++ for i in $@ ++ case "${1}" in +++ py3versions -vr ++ PYTHON3S='3.13 3.12' ++ '[' 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 --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) + subunit2pyunit ++ PYTHON=python3.13 ++ stestr run --parallel --subunit 'gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request)' /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_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_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_fixtures.FixtureTest.test_fixture_informs_on_exception +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok +/usr/lib/python3.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 /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 @@ -1492,6 +1567,10 @@ gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers gabbi.tests.test_handlers.HandlersTest.test_response_headers ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_history.HistoryTest.test_response_replace_prior +gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header @@ -1512,207 +1591,232 @@ 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_handlers.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok +gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_inner_fixture.inner_get_three.test_request -gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_history.HistoryTest.test_cookie_replace_history -gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok -gabbi.tests.test_history.HistoryTest.test_header_replace_prior -gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok -gabbi.tests.test_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 /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_history.HistoryTest.test_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_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_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_intercept.self_query_returned.test_request +gabbi.tests.test_intercept.self_query_returned.test_request ... ok gabbi.tests.test_intercept.self_use_a_historical_location.test_request gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok -gabbi.tests.test_intercept.self_checklimit.test_request -gabbi.tests.test_intercept.self_checklimit.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_response_replace_with_history +gabbi.tests.test_history.HistoryTest.test_response_replace_with_history ... ok +gabbi.tests.test_history.HistoryTest.test_url_replace_history +gabbi.tests.test_history.HistoryTest.test_url_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_url_replace_prior +gabbi.tests.test_history.HistoryTest.test_url_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok -gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request -gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request ... ok -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok -gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request -gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok -gabbi.tests.test_intercept.self_simple_post.test_request -gabbi.tests.test_intercept.self_simple_post.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.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_test_pluggable_response.test_request -gabbi.tests.test_intercept.self_test_pluggable_response.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_inner_fixture.inner_get_two.test_request +gabbi.tests.test_inner_fixture.inner_get_two.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.self_get_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_location_from_headers.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.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 +gabbi.tests.test_intercept.queryparams_multi_params.test_request +gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +gabbi.tests.test_intercept.self_use_prior_location.test_request +gabbi.tests.test_intercept.self_use_prior_location.test_request ... ok +gabbi.tests.test_intercept.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_handlers.HandlersTest.test_response_json_paths_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok -gabbi.tests.test_history.HistoryTest.test_response_replace_prior -gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... 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.self_simple_post.test_request +gabbi.tests.test_intercept.self_simple_post.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_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_handlers.HandlersTest.test_response_json_paths_fail_path gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok -gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... 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_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.self_query_returned.test_request -gabbi.tests.test_intercept.self_query_returned.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.self_post_a_body.test_request -gabbi.tests.test_intercept.self_post_a_body.test_request ... ok -Exception ignored in: -gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request -gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok +gabbi.tests.test_inner_fixture.inner_get_one.test_request +gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok +gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request +gabbi.tests.test_intercept.verbosity_confirm_notempty.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 +Exception ignored in: Traceback (most recent call last): File "/usr/lib/python3.13/http/client.py", line 434, in close +gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request +gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request ... ok if self.fp: AttributeError: 'HTTPResponse' object has no attribute 'fp' /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_inner_fixture.inner_get_two.test_request -gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok +gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_historical_location_from_headers.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.self_post_a_body_with_query.test_request +gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok +Exception ignored in: +Traceback (most recent call last): + File "/usr/lib/python3.13/http/client.py", line 434, in close +gabbi.tests.test_intercept.self_confirm_environ.test_request +gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok + if self.fp: +AttributeError: 'HTTPResponse' object has no attribute 'fp' +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_pluggable_response.test_request +gabbi.tests.test_intercept.self_test_pluggable_response.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.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_add_some_query_params.test_request +gabbi.tests.test_intercept.last-url_add_some_query_params.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.last-url_get_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok +gabbi.tests.test_intercept.self_test_binary_handling.test_request +gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok gabbi.tests.test_intercept.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.fixture_just_to_see_one.test_request -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_two.test_request -gabbi.tests.test_intercept.fixture_just_to_see_two.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.host-header_ssl_no_host.test_request -gabbi.tests.test_intercept.host-header_ssl_no_host.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.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.regex_regex_string_test_json.test_request -gabbi.tests.test_intercept.regex_regex_string_test_json.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.self_test_binary_handling.test_request -gabbi.tests.test_intercept.self_test_binary_handling.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.regex_regex_jsonpath_test.test_request +gabbi.tests.test_intercept.regex_regex_jsonpath_test.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.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_multiline.test_request +gabbi.tests.test_intercept.regex_regex_string_test_multiline.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.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_handlers.HandlersTest.test_response_json_paths_regex_number gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... 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_that_same_url_again.test_request +gabbi.tests.test_intercept.last-url_get_that_same_url_again.test_request ... ok +gabbi.tests.test_intercept.self_xml_derived_content_type.test_request +gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... expected failure +gabbi.tests.test_intercept.self_xml_derived_content_type.test_request +gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... ok +gabbi.tests.test_intercept.self_get_ssl_page.test_request +gabbi.tests.test_intercept.self_get_ssl_page.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_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.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.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.self_confirm_environ.test_request -gabbi.tests.test_intercept.self_confirm_environ.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.jsonbody_test_empty_list.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_list.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_set_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok +gabbi.tests.test_intercept.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.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.regex_regex_header_test.test_request -gabbi.tests.test_intercept.regex_regex_header_test.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.last-url_get_prior_url.test_request -gabbi.tests.test_intercept.last-url_get_prior_url.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.method-shortcut_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.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.failskip_non_existent_header.test_request -gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure -gabbi.tests.test_intercept.failskip_non_existent_header.test_request -gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok -gabbi.tests.test_intercept.failskip_skip_me.test_request -gabbi.tests.test_intercept.failskip_skip_me.test_request ... skipped "Skipping for now because we can't do it" -gabbi.tests.test_intercept.host-header_host_without_ssl.test_request -gabbi.tests.test_intercept.host-header_host_without_ssl.test_request ... ok +gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request +gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok +gabbi.tests.test_intercept.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_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.fixture_just_to_see_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.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_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_intercept.host-header_host_without_ssl.test_request +gabbi.tests.test_intercept.host-header_host_without_ssl.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.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.queryparams_multi_params.test_request -gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok -gabbi.tests.test_intercept.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok +gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request +gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok +gabbi.tests.test_intercept.header-key_header_named_http.test_request +gabbi.tests.test_intercept.header-key_header_named_http.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_handlers.HandlersTest.test_response_json_paths_substitution_noregex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok -gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request -gabbi.tests.test_intercept.regex_regex_jsonpath_test.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.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_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.method-shortcut_simple_get.test_request +gabbi.tests.test_intercept.method-shortcut_simple_get.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.json-left-side_check_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... 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 -/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_confirm_environ_no_key_fail.test_request -gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... ok -gabbi.tests.test_intercept.data_load_encoded_text.test_request -gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok +gabbi.tests.test_intercept.data_load_data_dictionary.test_request +gabbi.tests.test_intercept.data_load_data_dictionary.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.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.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.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.cookie_get_a_cookie.test_request +gabbi.tests.test_intercept.cookie_get_a_cookie.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.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_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.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_simple_post.test_request +gabbi.tests.test_intercept.method-shortcut_simple_post.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_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.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_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 @@ -1725,165 +1829,32 @@ 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.jsonbody_test_empty_list.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_list.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.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.poll_create_a_thing.test_request -gabbi.tests.test_intercept.poll_create_a_thing.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.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.contenttype_patch_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_content-type.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.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.jsonbody_test_fully_body.test_request -gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok -gabbi.tests.test_intercept.self_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.test_request ... ok -gabbi.tests.test_intercept.data_json_value_from_disk.test_request -gabbi.tests.test_intercept.data_json_value_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_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true ... ok -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false ... ok -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true ... ok -#### get simple page #### -> GET http://ae2f8ac0-72c7-4aef-8678-3ff7b77724e9: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://ae2f8ac0-72c7-4aef-8678-3ff7b77724e9:8001/ - -{} - -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.json-left-side_set_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_three.test_request -gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok -gabbi.tests.test_intercept.contenttype_put_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_content-type.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.regex_regex_string_test_splat.test_request -gabbi.tests.test_intercept.regex_regex_string_test_splat.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.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.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.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_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.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.method-shortcut_post_with_query.test_request -gabbi.tests.test_intercept.method-shortcut_post_with_query.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.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.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.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.cookie_get_a_cookie.test_request -gabbi.tests.test_intercept.cookie_get_a_cookie.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.coerce_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok -gabbi.tests.test_intercept.data_load_data_list.test_request -gabbi.tests.test_intercept.data_load_data_list.test_request ... ok -gabbi.tests.test_intercept.backref_post_some_more_json.test_request -gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok -gabbi.tests.test_intercept.coerce_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok -gabbi.tests.test_intercept.coerce_use_data.test_request -gabbi.tests.test_intercept.coerce_use_data.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.fixture_just_to_see.test_request +gabbi.tests.test_intercept.fixture_just_to_see.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.data_load_encoded_text.test_request +gabbi.tests.test_intercept.data_load_encoded_text.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.json-extensions_test_filtered.test_request -gabbi.tests.test_intercept.json-extensions_test_filtered.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.host-header_ssl_with_capitalised_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok -gabbi.tests.test_intercept.data_partial_json_from_disk.test_request -gabbi.tests.test_intercept.data_partial_json_from_disk.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.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.contenttype_patch_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_no_content-type.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.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.header-key_header_named_http.test_request -gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok -gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request -gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... expected failure -gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request -gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... ok -gabbi.tests.test_intercept.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_jsonpath.JSONPathTest.test_basic_match -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... 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.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_post_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_no_content-type.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_jsonpath.JSONPathTest.test_embedded_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok +gabbi.tests.test_intercept.self_bogus_method.test_request +gabbi.tests.test_intercept.self_bogus_method.test_request ... ok +gabbi.tests.test_intercept.host-header_ssl_no_host.test_request +gabbi.tests.test_intercept.host-header_ssl_no_host.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.casting_default_casts.test_request +gabbi.tests.test_intercept.casting_default_casts.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 @@ -1910,8 +1881,10 @@ 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.coerce_post_data.test_request +gabbi.tests.test_intercept.coerce_post_data.test_request ... ok #### confirm notempty #### -> GET http://2bbc495b-c66d-4afe-bdde-229c204e21be:8001/notempty +> GET http://45ff17e3-c88a-4c47-a64c-b327dc042052:8001/notempty > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1920,32 +1893,7 @@ notempty #### get simple page #### -> GET http://092d4c05-cbec-4ad2-8a8a-c522ccb98c4e: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://092d4c05-cbec-4ad2-8a8a-c522ccb98c4e:8001/ - -{} - -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok -gabbi.tests.test_intercept.casting_default_casts.test_request -gabbi.tests.test_intercept.casting_default_casts.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... 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_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://c633da7a-fd32-492a-9d2e-7272f66b5773:8001/ +> GET http://e833c2ae-3458-4586-a6d3-6668bc4d5d85:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1953,202 +1901,273 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c633da7a-fd32-492a-9d2e-7272f66b5773:8001/ +< X-Gabbi-url: http://e833c2ae-3458-4586-a6d3-6668bc4d5d85:8001/ {} -#### left side json one #### -> POST http://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ +#### default casts #### +> POST http://5912e3ef-c5a9-4906-bb23-ee5935db6651:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "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://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ -< Location: http://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://5912e3ef-c5a9-4906-bb23-ee5935db6651:8001/ +< Location: http://5912e3ef-c5a9-4906-bb23-ee5935db6651:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### expand left side #### -> POST http://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ -> content-type: application/json +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://d7c37e2a-882b-412d-89c4-55004b514fbc:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "alpha1": "alpha", - "beta1": "beta" -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ -< Location: http://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ +< X-Gabbi-url: http://d7c37e2a-882b-412d-89c4-55004b514fbc:8001/ -{ - "alpha1": "alpha", - "beta1": "beta" -} +{} -#### expand environ left side #### -> POST http://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ +#### left side json one #### +> POST http://90e56c32-b359-4e9a-85b2-2cfebd4fe7b8: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://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ -< Location: http://7eb250b6-8286-4551-a7ac-cb981915949d:8001/ +< X-Gabbi-url: http://90e56c32-b359-4e9a-85b2-2cfebd4fe7b8:8001/ +< Location: http://90e56c32-b359-4e9a-85b2-2cfebd4fe7b8:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "alpha": "alpha1", + "beta": "beta1" } -#### post data #### -> POST http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +#### yaml encoded value from disk #### +> POST http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ -< Location: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +< X-Gabbi-url: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere +< Location: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } -#### use data #### -> POST http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +#### json encoded value from disk #### +> POST http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ -< Location: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +< X-Gabbi-url: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere +< Location: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } -#### from environ #### -> POST http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +#### yaml parital from disk #### +> POST http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_environ": 1 + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ -< Location: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +< X-Gabbi-url: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere +< Location: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere { - "one_environ": 1 + "type": "cat", + "sound": "meow" } -#### with list #### -> POST http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +#### yaml partial both sides #### +> POST http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ - 1, - 2, - "3" + { + "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://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ -< Location: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +< X-Gabbi-url: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere +< Location: http://f1ddd081-e94e-4e1c-92c8-734bc433e3bb:8001/somewhere [ - 1, - 2, - "3" + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } ] -#### object with list #### -> POST http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ -> content-type: application/json +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.poll_loop_location.test_request +gabbi.tests.test_intercept.poll_loop_location.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.fixture_just_to_see_two.test_request +gabbi.tests.test_intercept.fixture_just_to_see_two.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.forbiddenheaders_header_not_there_basic.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok +gabbi.tests.test_intercept.data_json_value_from_disk.test_request +gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok +gabbi.tests.test_intercept.self_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.coerce_with_list.test_request +gabbi.tests.test_intercept.coerce_with_list.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_patch_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request ... ok +gabbi.tests.test_intercept.data_load_data_list.test_request +gabbi.tests.test_intercept.data_load_data_list.test_request ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.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.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.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.method-shortcut_post_with_query.test_request +gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok +gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request +gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request ... ok +gabbi.tests.test_intercept.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.jsonbody_test_empty_dict.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... expected failure +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... ok +gabbi.tests.test_intercept.casting_send_casted_json.test_request +gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok +gabbi.tests.test_intercept.casting_internal_json_fail.test_request +gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure +gabbi.tests.test_intercept.casting_internal_json_fail.test_request +gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok +gabbi.tests.test_intercept.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.contenttype_put_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_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 +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_driver.DriverTest.test_build_require_ssl +gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok +gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept +gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_target +gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl +gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test +gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok +gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host +gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok +gabbi.tests.test_intercept.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.test_request ... 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_driver.DriverTest.test_driver_loads_three_tests +gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok +#### get simple page #### +> GET http://348e1482-7891-406e-b986-7eea7b9e677e:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ -< Location: http://e2323abc-4eda-406a-9d5c-8779ae9573f9:8001/ +< X-Gabbi-url: http://348e1482-7891-406e-b986-7eea7b9e677e:8001/ -{ - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] -} +{} #### default casts #### -> POST http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ +> POST http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2164,8 +2183,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ -< Location: http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ +< X-Gabbi-url: http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ +< Location: http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ { "int": 1, @@ -2176,7 +2195,7 @@ } #### cast to string #### -> POST http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ +> POST http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2188,15 +2207,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ -< Location: http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ +< X-Gabbi-url: http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ +< Location: http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ { "string": "2" } #### json set up #### -> POST http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ +> POST http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2212,8 +2231,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ -< Location: http://205e3765-c922-4f86-a394-7f4ea0ab7df3:8001/ +< X-Gabbi-url: http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ +< Location: http://c782d093-ff15-4d24-acf8-3005c3f1cc76:8001/ { "int": 1, @@ -2223,18 +2242,38 @@ "fbool": false } -gabbi.tests.test_intercept.coerce_with_list.test_request -gabbi.tests.test_intercept.coerce_with_list.test_request ... ok -gabbi.tests.test_intercept.casting_cast_to_string.test_request -gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok +gabbi.tests.test_driver.DriverTest.test_driver_prefix +gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok +gabbi.tests.test_inner_fixture.inner_get_three.test_request +gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' +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.self_post_a_body.test_request +gabbi.tests.test_intercept.self_post_a_body.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.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.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_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.queryparams_replacers_in_params.test_request +gabbi.tests.test_intercept.queryparams_replacers_in_params.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.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.cookie_use_a_historical_cookie.test_request +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request ... ok +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok +gabbi.tests.test_intercept.coerce_check_posted_data.test_request +gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... ok #### get simple page #### -> GET http://fbab290c-4ed3-470f-9fbb-638deff5b9c9:8001/ +> GET http://545f2413-72ab-4daa-a6c5-018203734d98:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2242,74 +2281,26 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fbab290c-4ed3-470f-9fbb-638deff5b9c9:8001/ +< X-Gabbi-url: http://545f2413-72ab-4daa-a6c5-018203734d98:8001/ {} -#### loop location #### -> GET http://367ead8d-5e00-4827-b494-99f5983151cf: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://367ead8d-5e00-4827-b494-99f5983151cf: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://367ead8d-5e00-4827-b494-99f5983151cf:8001/poller?count=2&x=1&y=2&z=3.4 +#### header named http #### +> GET http://d1026978-d4f2-4857-9e6c-5f454e8a3838: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://367ead8d-5e00-4827-b494-99f5983151cf:8001/poller?count=2&x=1&y=2&z=3.4 - -{ - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] -} - -#### left side json one #### -> POST http://3e879bf9-0d2b-48fd-a221-b8c00dad22f0:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3e879bf9-0d2b-48fd-a221-b8c00dad22f0:8001/ -< Location: http://3e879bf9-0d2b-48fd-a221-b8c00dad22f0:8001/ +< X-Gabbi-url: http://d1026978-d4f2-4857-9e6c-5f454e8a3838:8001/header_key +< HTTP: some-scheme -{ - "alpha": "alpha1", - "beta": "beta1" -} +{} #### post data #### -> POST http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +> POST http://12fc5153-911d-4318-9838-008c8c553e64:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2322,8 +2313,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ -< Location: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +< X-Gabbi-url: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ +< Location: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ { "one_string": "1", @@ -2332,7 +2323,7 @@ } #### use data #### -> POST http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +> POST http://12fc5153-911d-4318-9838-008c8c553e64:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2345,8 +2336,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ -< Location: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +< X-Gabbi-url: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ +< Location: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ { "one_string": "1", @@ -2355,7 +2346,7 @@ } #### from environ #### -> POST http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +> POST http://12fc5153-911d-4318-9838-008c8c553e64:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2366,15 +2357,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ -< Location: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +< X-Gabbi-url: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ +< Location: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ { "one_environ": 1 } #### with list #### -> POST http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +> POST http://12fc5153-911d-4318-9838-008c8c553e64:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2387,8 +2378,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ -< Location: http://f6ef3f32-d3cc-49d7-86c5-725a14dafcaa:8001/ +< X-Gabbi-url: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ +< Location: http://12fc5153-911d-4318-9838-008c8c553e64:8001/ [ 1, @@ -2397,7 +2388,7 @@ ] #### default casts #### -> POST http://01a3aa06-bbcb-41dd-a6cf-32f56099b512:8001/ +> POST http://c44cdc89-7869-417b-86fa-742ca259c4ee:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2413,8 +2404,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://01a3aa06-bbcb-41dd-a6cf-32f56099b512:8001/ -< Location: http://01a3aa06-bbcb-41dd-a6cf-32f56099b512:8001/ +< X-Gabbi-url: http://c44cdc89-7869-417b-86fa-742ca259c4ee:8001/ +< Location: http://c44cdc89-7869-417b-86fa-742ca259c4ee:8001/ { "int": 1, @@ -2425,7 +2416,7 @@ } #### cast to string #### -> POST http://01a3aa06-bbcb-41dd-a6cf-32f56099b512:8001/ +> POST http://c44cdc89-7869-417b-86fa-742ca259c4ee:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2437,38 +2428,42 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://01a3aa06-bbcb-41dd-a6cf-32f56099b512:8001/ -< Location: http://01a3aa06-bbcb-41dd-a6cf-32f56099b512:8001/ +< X-Gabbi-url: http://c44cdc89-7869-417b-86fa-742ca259c4ee:8001/ +< Location: http://c44cdc89-7869-417b-86fa-742ca259c4ee:8001/ { "string": "2" } -#### yaml encoded value from disk #### -> POST http://80e4c5a2-2f46-4203-b6fb-b9a9a0c4ae96:8001/somewhere -> content-type: application/json +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_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 +#### get simple page #### +> GET http://57609da4-c38b-40ab-80a7-3f5b10b3d29d: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://80e4c5a2-2f46-4203-b6fb-b9a9a0c4ae96:8001/somewhere -< Location: http://80e4c5a2-2f46-4203-b6fb-b9a9a0c4ae96:8001/somewhere +< X-Gabbi-url: http://57609da4-c38b-40ab-80a7-3f5b10b3d29d:8001/ -{ - "foo": { - "b\u00e1r": 1 - } -} +{} #### json encoded value from disk #### -> POST http://80e4c5a2-2f46-4203-b6fb-b9a9a0c4ae96:8001/somewhere +> POST http://f5ec7335-905c-48f7-bdf3-6f2f18821f30:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2481,8 +2476,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://80e4c5a2-2f46-4203-b6fb-b9a9a0c4ae96:8001/somewhere -< Location: http://80e4c5a2-2f46-4203-b6fb-b9a9a0c4ae96:8001/somewhere +< X-Gabbi-url: http://f5ec7335-905c-48f7-bdf3-6f2f18821f30:8001/ +< Location: http://f5ec7335-905c-48f7-bdf3-6f2f18821f30:8001/ { "foo": { @@ -2490,27 +2485,8 @@ } } -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_post_even_more_json_quote_different.test_request -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok -#### get simple page #### -> GET http://b3efad34-c88d-4a2b-90ad-9cd6f2669f61: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://b3efad34-c88d-4a2b-90ad-9cd6f2669f61:8001/ - -{} - #### left side json one #### -> POST http://b3115843-91e3-475d-b37c-77db9b95bf27:8001/ +> POST http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2522,8 +2498,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b3115843-91e3-475d-b37c-77db9b95bf27:8001/ -< Location: http://b3115843-91e3-475d-b37c-77db9b95bf27:8001/ +< X-Gabbi-url: http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ +< Location: http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ { "alpha": "alpha1", @@ -2531,7 +2507,7 @@ } #### expand left side #### -> POST http://b3115843-91e3-475d-b37c-77db9b95bf27:8001/ +> POST http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2543,87 +2519,39 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b3115843-91e3-475d-b37c-77db9b95bf27:8001/ -< Location: http://b3115843-91e3-475d-b37c-77db9b95bf27:8001/ +< X-Gabbi-url: http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ +< Location: http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ { "alpha1": "alpha", "beta1": "beta" } -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request ... ok -gabbi.tests.test_intercept.backref_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.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.casting_historic_casted_json.test_request -gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... 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 -#### get simple page #### -> GET http://73238a9f-cfbd-4976-b0a9-041e14fb59aa: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://73238a9f-cfbd-4976-b0a9-041e14fb59aa:8001/ - -{} - -#### post data #### -> POST http://fdaf060f-1524-470a-afe9-8b9f3f8e2bcb: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://fdaf060f-1524-470a-afe9-8b9f3f8e2bcb:8001/ -< Location: http://fdaf060f-1524-470a-afe9-8b9f3f8e2bcb:8001/ - -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} - -#### use data #### -> POST http://fdaf060f-1524-470a-afe9-8b9f3f8e2bcb:8001/ +#### expand environ left side #### +> POST http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fdaf060f-1524-470a-afe9-8b9f3f8e2bcb:8001/ -< Location: http://fdaf060f-1524-470a-afe9-8b9f3f8e2bcb:8001/ +< X-Gabbi-url: http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ +< Location: http://544732d7-5425-4959-a8be-80d1fb298cca:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } #### default casts #### -> POST http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +> POST http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2639,8 +2567,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ -< Location: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +< X-Gabbi-url: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ +< Location: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ { "int": 1, @@ -2651,7 +2579,7 @@ } #### cast to string #### -> POST http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +> POST http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2663,15 +2591,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ -< Location: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +< X-Gabbi-url: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ +< Location: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ { "string": "2" } #### json set up #### -> POST http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +> POST http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2687,8 +2615,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ -< Location: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +< X-Gabbi-url: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ +< Location: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ { "int": 1, @@ -2699,7 +2627,7 @@ } #### send casted json #### -> POST http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +> POST http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2711,56 +2639,79 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ -< Location: http://5f7d1fac-b2fc-4f58-9a6b-aa7a7777e266:8001/ +< X-Gabbi-url: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ +< Location: http://80dc8832-0a77-4482-a03a-a8ad1739996a:8001/ { "casted": 2 } -#### yaml encoded value from disk #### -> POST http://92446356-298f-49b5-be47-9bbbb5fc4263: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://92446356-298f-49b5-be47-9bbbb5fc4263:8001/somewhere -< Location: http://92446356-298f-49b5-be47-9bbbb5fc4263:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - +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.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_data_dir_good +gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_exit_code +gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_input_files +gabbi.tests.test_runner.RunnerTest.test_input_files ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok gabbi.tests.test_intercept.backref_post_some_json.test_request gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file -gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... 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.casting_internal_json_fine.test_request +gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml +gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting +gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok #### get simple page #### -> GET http://36b22b17-705a-4b82-8302-853380b49ce4:8001/ +> GET http://0430b64e-b02f-4330-a4bb-4cdf6b961c03:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2768,103 +2719,83 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://36b22b17-705a-4b82-8302-853380b49ce4:8001/ +< X-Gabbi-url: http://0430b64e-b02f-4330-a4bb-4cdf6b961c03:8001/ {} -#### json encoded value from disk #### -> POST http://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ +#### post data #### +> POST http://c53e4318-b632-4f98-a238-d2b4d256a9c9:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "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://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ -< Location: http://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ +< X-Gabbi-url: http://c53e4318-b632-4f98-a238-d2b4d256a9c9:8001/ +< Location: http://c53e4318-b632-4f98-a238-d2b4d256a9c9:8001/ { - "foo": { - "b\u00e1r": 1 - } + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### json parital from disk #### -> POST http://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ +#### default casts #### +> POST http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "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://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ -< Location: http://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ +< Location: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ { - "type": "cat", - "sound": "meow" + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### json partial both sides #### -> POST http://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ +#### cast to string #### +> POST http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +{ + "string": "2" +} < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ -< Location: http://9ff1ffa5-5252-4588-857c-53a7dc31af56:8001/ - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -#### header named http #### -> GET http://69497bfe-a0c9-48a0-ac88-392aa530a4ac: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://69497bfe-a0c9-48a0-ac88-392aa530a4ac:8001/header_key -< HTTP: some-scheme +< Content-Type: application/json +< X-Gabbi-url: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ +< Location: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ -{} +{ + "string": "2" +} -#### default casts #### -> POST http://8215f61c-78dc-439f-87b4-0ef4dff8a6b6:8001/ +#### json set up #### +> POST http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2872,7 +2803,7 @@ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } @@ -2880,157 +2811,194 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://8215f61c-78dc-439f-87b4-0ef4dff8a6b6:8001/ -< Location: http://8215f61c-78dc-439f-87b4-0ef4dff8a6b6:8001/ +< X-Gabbi-url: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ +< Location: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } -#### yaml encoded value from disk #### -> POST http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere +#### send casted json #### +> POST http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere -< Location: http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ +< Location: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ { - "foo": { - "b\u00e1r": 1 - } + "casted": 2 } -#### json encoded value from disk #### -> POST http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere +#### historic casted json #### +> POST http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "casted": 2 } < 200 OK < X-Gabbi-method: POST +< Content-Type: application/json +< X-Gabbi-url: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ +< Location: http://40e01518-e340-4c3d-a2f5-39b0152d1c34:8001/ + +{ + "casted": 2 +} + +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_utils.ExtractContentTypeTest.test_extract_content_type_bad_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok +gabbi.tests.test_intercept.coerce_post_extra_data.test_request +gabbi.tests.test_intercept.coerce_post_extra_data.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.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_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_even_more_json.test_request +gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok +#### get simple page #### +> GET http://7a83c204-c351-4eaa-a958-f964aaabedeb: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://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere -< Location: http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere +< X-Gabbi-url: http://7a83c204-c351-4eaa-a958-f964aaabedeb:8001/ + +{} + +#### left side json one #### +> POST http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } -#### yaml parital from disk #### -> POST http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ +< Location: http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +#### expand left side #### +> POST http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere -< Location: http://b6b044dd-15f9-494a-9ad8-143964803e82:8001/somewhere +< X-Gabbi-url: http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ +< Location: http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ { - "type": "cat", - "sound": "meow" + "alpha1": "alpha", + "beta1": "beta" } -/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 -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_data_dir_good -gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_exit_code -gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok -/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", -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok -#### get simple page #### -> GET http://8a0795cc-dbce-4374-b901-52ea824902fa:8001/ -> x-random-header: ya +#### expand environ left side #### +> POST http://e2aca196-158f-47aa-acfe-83db5ad24034: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://8a0795cc-dbce-4374-b901-52ea824902fa:8001/ +< X-Gabbi-url: http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ +< Location: http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/ -{} +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + +#### set key and value #### +> GET http://e2aca196-158f-47aa-acfe-83db5ad24034:8001/jsonator?key=1&value=10 +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK +< Content-Type: application/json + +{ + "1": "10" +} #### post data #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +> POST http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3043,8 +3011,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ +< Location: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ { "one_string": "1", @@ -3053,7 +3021,7 @@ } #### use data #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +> POST http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3066,8 +3034,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ +< Location: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ { "one_string": "1", @@ -3076,7 +3044,7 @@ } #### from environ #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +> POST http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3087,15 +3055,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ +< Location: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ { "one_environ": 1 } #### with list #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +> POST http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3108,8 +3076,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ +< Location: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ [ 1, @@ -3118,7 +3086,7 @@ ] #### object with list #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +> POST http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3138,8 +3106,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ +< Location: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ { "collection": [ @@ -3155,7 +3123,7 @@ } #### post extra data #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +> POST http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3184,8 +3152,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ +< Location: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ { "a": 1, @@ -3210,7 +3178,7 @@ } #### check posted data #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +> POST http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3239,8 +3207,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ +< Location: http://af5b8229-2553-4085-bc0b-c362290e4d58:8001/ { "a": 1, @@ -3264,63 +3232,332 @@ } } -#### Post again and check the results #### -> POST http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +#### yaml encoded value from disk #### +> POST http://7c9fd661-440b-4261-9afc-03a3c80c8a25: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://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ -< Location: http://f8803a06-0488-4829-9ccd-2a33be89cf59:8001/ +< X-Gabbi-url: http://7c9fd661-440b-4261-9afc-03a3c80c8a25:8001/somewhere +< Location: http://7c9fd661-440b-4261-9afc-03a3c80c8a25:8001/somewhere { - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" + "foo": { + "b\u00e1r": 1 + } +} + +#### json encoded value from disk #### +> POST http://7c9fd661-440b-4261-9afc-03a3c80c8a25: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://7c9fd661-440b-4261-9afc-03a3c80c8a25:8001/somewhere +< Location: http://7c9fd661-440b-4261-9afc-03a3c80c8a25:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### yaml parital from disk #### +> POST http://7c9fd661-440b-4261-9afc-03a3c80c8a25: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://7c9fd661-440b-4261-9afc-03a3c80c8a25:8001/somewhere +< Location: http://7c9fd661-440b-4261-9afc-03a3c80c8a25:8001/somewhere + +{ + "type": "cat", + "sound": "meow" +} + +#### get simple page #### +> GET http://1d36f393-618b-497e-893e-943823e3828d: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://1d36f393-618b-497e-893e-943823e3828d:8001/ + +{} + +#### json encoded value from disk #### +> POST http://f6792731-94df-4ecd-935a-b384b4736d4e: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://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ +< Location: http://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json parital from disk #### +> POST http://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "type": "cat", + "sound": "meow" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ +< Location: http://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ + +{ + "type": "cat", + "sound": "meow" +} + +#### json partial both sides #### +> POST http://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + { + "type": "cat", + "sound": "meow" }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } + { + "type": "dog", + "sound": "woof" } +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ +< Location: http://f6792731-94df-4ecd-935a-b384b4736d4e:8001/ + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +#### left side json one #### +> POST http://0a0697ee-af6e-4734-ba84-be274c20f09a:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://0a0697ee-af6e-4734-ba84-be274c20f09a:8001/ +< Location: http://0a0697ee-af6e-4734-ba84-be274c20f09a:8001/ + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +#### expand left side #### +> POST http://0a0697ee-af6e-4734-ba84-be274c20f09a:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "alpha1": "alpha", + "beta1": "beta" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://0a0697ee-af6e-4734-ba84-be274c20f09a:8001/ +< Location: http://0a0697ee-af6e-4734-ba84-be274c20f09a:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta" +} + +#### post data #### +> POST http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2: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://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +< Location: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### use data #### +> POST http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2: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://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +< Location: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### from environ #### +> POST http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "one_environ": 1 +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +< Location: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ + +{ + "one_environ": 1 +} + +#### with list #### +> POST http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + 1, + 2, + "3" +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +< Location: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ + +[ + 1, + 2, + "3" +] + +#### object with list #### +> POST http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ +< Location: http://ee4c2751-2ef5-4531-9ead-ca7ca7ab55b2:8001/ + +{ + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } #### default casts #### -> POST http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +> POST http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3336,8 +3573,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ -< Location: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +< X-Gabbi-url: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ +< Location: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ { "int": 1, @@ -3348,7 +3585,7 @@ } #### cast to string #### -> POST http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +> POST http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3360,15 +3597,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ -< Location: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +< X-Gabbi-url: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ +< Location: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ { "string": "2" } #### json set up #### -> POST http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +> POST http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3384,8 +3621,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ -< Location: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +< X-Gabbi-url: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ +< Location: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ { "int": 1, @@ -3396,7 +3633,7 @@ } #### send casted json #### -> POST http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +> POST http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3408,15 +3645,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ -< Location: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +< X-Gabbi-url: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ +< Location: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ { "casted": 2 } #### historic casted json #### -> POST http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +> POST http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3428,17 +3665,65 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ -< Location: http://7802eb6d-c768-4c23-95be-e135bf85391d:8001/ +< X-Gabbi-url: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ +< Location: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ { "casted": 2 } -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok +#### internal json fine #### +> POST http://19a0be0f-f47c-4ddd-862f-24df91ab0c48: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://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ +< Location: http://19a0be0f-f47c-4ddd-862f-24df91ab0c48:8001/ + +{ + "casted": "in this 2 is not errors" +} + +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_suite.SuiteTest.test_suite_catches_fixture_fail +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... 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/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_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_syntax_warning.DriverTest.test_driver_warnings_on_files +gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok #### get simple page #### -> GET http://f5c6cb34-3904-4995-bcfa-fd770d0e047d:8001/ +> GET http://a61e697b-b281-4a4b-bcc3-c2805c465aaf:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3446,126 +3731,119 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f5c6cb34-3904-4995-bcfa-fd770d0e047d:8001/ +< X-Gabbi-url: http://a61e697b-b281-4a4b-bcc3-c2805c465aaf:8001/ {} -#### json encoded value from disk #### -> POST http://f5f7cb24-ac38-43d4-bf67-ef0439bb9503:8001/ +#### post data #### +> POST http://10a9b3b5-df13-4de9-8f45-fb76e59494ba:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "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://f5f7cb24-ac38-43d4-bf67-ef0439bb9503:8001/ -< Location: http://f5f7cb24-ac38-43d4-bf67-ef0439bb9503:8001/ +< X-Gabbi-url: http://10a9b3b5-df13-4de9-8f45-fb76e59494ba:8001/ +< Location: http://10a9b3b5-df13-4de9-8f45-fb76e59494ba:8001/ { - "foo": { - "b\u00e1r": 1 - } + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### left side json one #### -> POST http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ +#### use data #### +> POST http://10a9b3b5-df13-4de9-8f45-fb76e59494ba:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "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://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ -< Location: http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ +< X-Gabbi-url: http://10a9b3b5-df13-4de9-8f45-fb76e59494ba:8001/ +< Location: http://10a9b3b5-df13-4de9-8f45-fb76e59494ba:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### expand left side #### -> POST http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ -> content-type: application/json +gabbi.tests.test_intercept.casting_historic_casted_json.test_request +gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... ok +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok +#### get simple page #### +> GET http://2ee4501f-8afd-4bf0-bc41-db9ac0e0696d:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "alpha1": "alpha", - "beta1": "beta" -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ -< Location: http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ +< X-Gabbi-url: http://2ee4501f-8afd-4bf0-bc41-db9ac0e0696d:8001/ -{ - "alpha1": "alpha", - "beta1": "beta" -} +{} -#### expand environ left side #### -> POST http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ +#### json encoded value from disk #### +> POST http://17fc0098-715a-4620-85d3-158b8da7bb6b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ -< Location: http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/ +< X-Gabbi-url: http://17fc0098-715a-4620-85d3-158b8da7bb6b:8001/ +< Location: http://17fc0098-715a-4620-85d3-158b8da7bb6b:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "foo": { + "b\u00e1r": 1 + } } -#### set key and value #### -> GET http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/jsonator?key=1&value=10 +#### json parital from disk #### +> POST http://17fc0098-715a-4620-85d3-158b8da7bb6b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) - -< 200 OK -< Content-Type: application/json - { - "1": "10" + "type": "cat", + "sound": "meow" } -#### check key and value #### -> GET http://0bbd429f-50c3-44f7-9739-3a60a3af2f54:8001/jsonator?key=1&value=10 -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - - < 200 OK -< Content-Type: application/json +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://17fc0098-715a-4620-85d3-158b8da7bb6b:8001/ +< Location: http://17fc0098-715a-4620-85d3-158b8da7bb6b:8001/ { - "1": "10" + "type": "cat", + "sound": "meow" } #### post data #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +> POST http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3578,8 +3856,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +< X-Gabbi-url: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ +< Location: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ { "one_string": "1", @@ -3588,7 +3866,7 @@ } #### use data #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +> POST http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3601,8 +3879,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +< X-Gabbi-url: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ +< Location: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ { "one_string": "1", @@ -3611,7 +3889,7 @@ } #### from environ #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +> POST http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3622,15 +3900,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +< X-Gabbi-url: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ +< Location: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ { "one_environ": 1 } #### with list #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +> POST http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3643,8 +3921,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +< X-Gabbi-url: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ +< Location: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ [ 1, @@ -3653,7 +3931,7 @@ ] #### object with list #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +> POST http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3673,8 +3951,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +< X-Gabbi-url: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ +< Location: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ { "collection": [ @@ -3690,7 +3968,7 @@ } #### post extra data #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +> POST http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3719,8 +3997,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +< X-Gabbi-url: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ +< Location: http://318e542d-3ec0-4eb2-a1d9-dea241681df3:8001/ { "a": 1, @@ -3744,339 +4022,182 @@ } } -#### check posted data #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +#### default casts #### +> POST http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ > content-type: application/json +> accept: 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 - } - } + "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://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ +< Location: http://3de8116a-bedb-48be-b62c-a2738909485c: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 - } - } + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### Post again and check the results #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ +#### cast to string #### +> POST http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ > content-type: application/json +> accept: 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 - } - } + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ - -{ - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } -} - -#### Post again and check the results (reversed) #### -> POST http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) +< Content-Type: application/json +< X-Gabbi-url: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ +< Location: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ { - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } + "string": "2" } -< 200 OK -< X-Gabbi-method: POST/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_driver.DriverTest.test_build_require_ssl -gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok -gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept -gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_target -gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl -gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test -gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok -gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host -gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok -gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests -gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok -gabbi.tests.test_driver.DriverTest.test_driver_prefix -gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok -gabbi.tests.test_intercept.self_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok -gabbi.tests.test_intercept.self_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.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_syntax_warning.DriverTest.test_driver_warnings_on_files -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok -gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request -gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok -#### get simple page #### -> GET http://589477e9-2489-4b49-a9e4-803193441bf4: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://589477e9-2489-4b49-a9e4-803193441bf4:8001/ - -{} - -#### left side json one #### -> POST http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ +#### json set up #### +> POST http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "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://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ -< Location: http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ +< Location: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } -#### expand left side #### -> POST http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ +#### send casted json #### +> POST http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ -< Location: http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ +< Location: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "casted": 2 } -#### expand environ left side #### -> POST http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ +#### historic casted json #### +> POST http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ -< Location: http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ +< Location: http://3de8116a-bedb-48be-b62c-a2738909485c:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "casted": 2 } -#### set key and value #### -> GET http://ce6d4dc0-7c01-41cb-b4df-a3f3f8af6586:8001/jsonator?key=1&value=10 -> content-type: application/json +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok +#### get simple page #### +> GET http://1632aa20-7b65-47d9-9aae-eaae1268f3ef:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK -< Content-Type: application/json +< X-Gabbi-method: GET +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://1632aa20-7b65-47d9-9aae-eaae1268f3ef:8001/ -{ - "1": "10" -} +{} -#### post data #### -> POST http://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ -> content-type: application/json +#### loop location #### +> GET http://d3e72ba2-2017-4222-b7fb-9d89a22a8db7:8001/poller?count=2&x=1&y=2&z=3.4 > 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://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ -< Location: http://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ +< 400 Bad Reqest -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} -#### use data #### -> POST http://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ -> content-type: application/json +#### loop location #### +> GET http://d3e72ba2-2017-4222-b7fb-9d89a22a8db7:8001/poller?count=2&x=1&y=2&z=3.4 > 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://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ -< Location: http://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ +< 400 Bad Reqest -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} -#### from environ #### -> POST http://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ -> content-type: application/json +#### loop location #### +> GET http://d3e72ba2-2017-4222-b7fb-9d89a22a8db7:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "one_environ": 1 -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ -< Location: http://9ee58f84-0e17-47b9-9cef-d08c011db1c2:8001/ +< X-Gabbi-url: http://d3e72ba2-2017-4222-b7fb-9d89a22a8db7:8001/poller?count=2&x=1&y=2&z=3.4 { - "one_environ": 1 + "count": [ + "2" + ], + "x": [ + "1" + ], + "y": [ + "2" + ], + "z": [ + "3.4" + ] } -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 #### post data #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4089,8 +4210,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "one_string": "1", @@ -4099,7 +4220,7 @@ } #### use data #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4112,8 +4233,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "one_string": "1", @@ -4122,7 +4243,7 @@ } #### from environ #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4133,15 +4254,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "one_environ": 1 } #### with list #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4154,8 +4275,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ [ 1, @@ -4164,7 +4285,7 @@ ] #### object with list #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4184,8 +4305,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "collection": [ @@ -4201,7 +4322,7 @@ } #### post extra data #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4230,8 +4351,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "a": 1, @@ -4256,7 +4377,7 @@ } #### check posted data #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4285,8 +4406,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "a": 1, @@ -4311,7 +4432,7 @@ } #### Post again and check the results #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4340,8 +4461,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "a": 1, @@ -4366,7 +4487,7 @@ } #### Post again and check the results (reversed) #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4395,8 +4516,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "a": 1, @@ -4421,7 +4542,7 @@ } #### string internal replace #### -> POST http://4557063e-a012-4f39-9361-873229981af0:8001/ +> POST http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4433,8 +4554,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4557063e-a012-4f39-9361-873229981af0:8001/ -< Location: http://4557063e-a012-4f39-9361-873229981af0:8001/ +< X-Gabbi-url: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ +< Location: http://8078a2dd-0f87-41e2-a416-7146d89209c2:8001/ { "endpoint_resp": "/api/0.1/item/1", @@ -4442,7 +4563,7 @@ } #### default casts #### -> POST http://255d688a-242d-4364-84b4-e0e92d942845:8001/ +> POST http://33afaed4-99b8-44ef-838e-5bf9ce726b34:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4458,8 +4579,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://255d688a-242d-4364-84b4-e0e92d942845:8001/ -< Location: http://255d688a-242d-4364-84b4-e0e92d942845:8001/ +< X-Gabbi-url: http://33afaed4-99b8-44ef-838e-5bf9ce726b34:8001/ +< Location: http://33afaed4-99b8-44ef-838e-5bf9ce726b34:8001/ { "int": 1, @@ -4470,86 +4591,45 @@ } #### cast to string #### -> POST http://255d688a-242d-4364-84b4-e0e92d942845: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://255d688a-242d-4364-84b4-e0e92d942845:8001/ -< Location: http://255d688a-242d-4364-84b4-e0e92d942845:8001/ - -{ - "string": "2" -} - -#### json set up #### -> POST http://255d688a-242d-4364-84b4-e0e92d942845: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://255d688a-242d-4364-84b4-e0e92d942845:8001/ -< Location: http://255d688a-242d-4364-84b4-e0e92d942845:8001/ - -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -} - -#### send casted json #### -> POST http://255d688a-242d-4364-84b4-e0e92d942845:8001/ -> content-type: application/json -> accept: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -{ - "casted": 2 -} - -< 200 OK -< X-Gabbi-method: POSTgabbi.tests.test_intercept.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure -gabbi.tests.test_intercept.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok -gabbi.tests.test_intercept.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.coerce_post_again_and_check_the_results_(reversed).test_request -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok -gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request -gabbi.tests.test_intercept.method-shortcut_arbitrary_method.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.forbiddenheaders_header_not_there_basic.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok -gabbi.tests.test_intercept.data_post_data_for_next.test_request -gabbi.tests.test_intercept.data_post_data_for_next.test_request ... ok -gabbi.tests.test_intercept.coerce_post_data.test_request -gabbi.tests.test_intercept.coerce_post_data.test_request ... ok -gabbi.tests.test_intercept.casting_internal_json_fine.test_request -gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok +> POST http://33afaed4-99b8-44ef-838e-5bf9ce726b34:8001/ +> content-type: application/jsongabbi.tests.test_intercept.casting_cast_to_string.test_request +gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request +gabbi.tests.test_intercept.backref_use_raw_json_from_response.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_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok +gabbi.tests.test_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_jsonpath.JSONPathTest.test_sorted_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file +gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... expected failure +gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request +gabbi.tests.test_unsafe_yaml.nan_test_nan.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 ... 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 @@ -4580,66 +4660,11 @@ 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_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 - -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ -< Location: http://ffede51c-b1fd-483a-8105-dceb3cfc74cf:8001/ - -{ - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } -} - -#### default casts #### -> POST http://fa82645f-42ba-45a1-a8dd-c0b3eb835475: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://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ -< Location: http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ - -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok -#### cast to string #### -> POST http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ -> content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4650,321 +4675,106 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ -< Location: http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ +< X-Gabbi-url: http://33afaed4-99b8-44ef-838e-5bf9ce726b34:8001/ +< Location: http://33afaed4-99b8-44ef-838e-5bf9ce726b34:8001/ { "string": "2" } -#### json set up #### -> POST http://fa82645f-42ba-45a1-a8dd-c0b3eb835475: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://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ -< Location: http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ - -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -} - -#### send casted json #### -> POST http://fa82645f-42ba-45a1-a8dd-c0b3eb835475: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://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ -< Location: http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ - -{ - "casted": 2 -} - -#### historic casted json #### -> POST http://fa82645f-42ba-45a1-a8dd-c0b3eb835475: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://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ -< Location: http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ - -{ - "casted": 2 -} - -#### internal json fine #### -> POST http://fa82645f-42ba-45a1-a8dd-c0b3eb835475: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://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ -< Location: http://fa82645f-42ba-45a1-a8dd-c0b3eb835475:8001/ - -{ - "casted": "in this 2 is not errors" -} - -#### yaml encoded value from disk #### -> POST http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere +#### left side json one #### +> POST http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere -< Location: http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere +< X-Gabbi-url: http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ +< Location: http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } -#### json encoded value from disk #### -> POST http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere +#### expand left side #### +> POST http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere -< Location: http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere +< X-Gabbi-url: http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ +< Location: http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha1": "alpha", + "beta1": "beta" } -#### yaml parital from disk #### -> POST http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere +#### expand environ left side #### +> POST http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere -< Location: http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere +< X-Gabbi-url: http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ +< Location: http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/ { - "type": "cat", - "sound": "meow" + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } -#### yaml partial both sides #### -> POST http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere +#### set key and value #### +> GET http://47c4cff5-9741-4e30-9e6b-f9e3872b4646:8001/jsonator?key=1&value=10 > 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://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere -< Location: http://5bffbde6-832c-4e4c-879d-3bb5f3856066:8001/somewhere - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -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_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 -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 - < Content-Type: application/json -< X-Gabbi-url: http://255d688a-242d-4364-84b4-e0e92d942845:8001/ -< Location: http://255d688a-242d-4364-84b4-e0e92d942845:8001/ { - "casted": 2 + "1": "10" } -#### historic casted json #### -> POST http://255d688a-242d-4364-84b4-e0e92d942845:8001/ +#### check key and value #### +> GET http://47c4cff5-9741-4e30-9e6b-f9e3872b4646: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://255d688a-242d-4364-84b4-e0e92d942845:8001/ -< Location: http://255d688a-242d-4364-84b4-e0e92d942845:8001/ { - "casted": 2 + "1": "10" } -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.coerce_check_posted_data.test_request -gabbi.tests.test_intercept.coerce_check_posted_data.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.UtilsHostInfoFromTarget.test_ipv6_host_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok -#### get simple page #### -> GET http://7c9310ad-a4e5-40cd-90c7-f346c2d7508b: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://7c9310ad-a4e5-40cd-90c7-f346c2d7508b:8001/ - -{} - #### post data #### -> POST http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4977,8 +4787,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ -< Location: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +< X-Gabbi-url: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ { "one_string": "1", @@ -4987,7 +4797,7 @@ } #### use data #### -> POST http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5000,8 +4810,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ -< Location: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +< X-Gabbi-url: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ { "one_string": "1", @@ -5010,7 +4820,7 @@ } #### from environ #### -> POST http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5021,15 +4831,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ -< Location: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +< X-Gabbi-url: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ { "one_environ": 1 } #### with list #### -> POST http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5042,8 +4852,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ -< Location: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +< X-Gabbi-url: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ [ 1, @@ -5052,7 +4862,7 @@ ] #### object with list #### -> POST http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5072,8 +4882,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ -< Location: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +< X-Gabbi-url: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ { "collection": [ @@ -5089,7 +4899,7 @@ } #### post extra data #### -> POST http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5118,8 +4928,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ -< Location: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +< X-Gabbi-url: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ { "a": 1, @@ -5144,7 +4954,117 @@ } #### check posted data #### -> POST http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471: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://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471: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://83fcca43-bc7d-4824-a5d4-c9f76c12c471: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://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ + +{ + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } +} + +#### Post again and check the results (reversed) #### +> POST http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5173,8 +5093,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ -< Location: http://cad76cfa-b660-42c9-8d09-7490dd390841:8001/ +< X-Gabbi-url: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ +< Location: http://83fcca43-bc7d-4824-a5d4-c9f76c12c471:8001/ { "a": 1, @@ -5200,82 +5120,40 @@ ---------------------------------------------------------------------- -Ran 314 tests in 16.795s +Ran 314 tests in 7.466s OK (skipped=2, expected failures=15) + stestr slowest -Test id Runtime (s) ------------------------------------------------------------------------------------------- ----------- -gabbi.tests.test_driver.DriverTest.test_build_require_ssl 6.312 -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 4.843 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 4.330 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 3.517 -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 2.155 -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files 1.770 -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 1.594 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 1.502 -gabbi.tests.test_intercept.coerce_object_with_list.test_request 1.218 -gabbi.tests.test_intercept.coerce_with_list.test_request 1.169 +Test id Runtime (s) +-------------------------------------------------------------------------------------- ----------- +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 2.137 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 1.805 +gabbi.tests.test_driver.DriverTest.test_build_require_ssl 1.729 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 1.181 +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 0.919 +gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request 0.897 +gabbi.tests.test_intercept.coerce_object_with_list.test_request 0.853 +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.824 +gabbi.tests.test_intercept.casting_send_casted_json.test_request 0.575 +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.523 + rm -rf .stestr -+ [ 3.12 = disabled ] -+ echo 3.12 -+ cut -d. -f1 ++ for pyvers in ${PYTHON3S} ++ '[' 3.12 = disabled ']' +++ echo 3.12 +++ 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 /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -e .stestr.conf ] -+ [ -x /usr/bin/python3-stestr ] +++ pwd ++ '[' -d /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -e .stestr.conf ']' ++ '[' -x /usr/bin/python3-stestr ']' + STESTR=stestr + rm -rf .stestr + subunit2pyunit -+ PYTHON=python3.12 stestr run --parallel --subunit gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request) -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_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_history.HistoryTest.test_response_replace_prior -gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... 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_history.HistoryTest.test_response_replace_with_history -gabbi.tests.test_history.HistoryTest.test_response_replace_with_history ... ok -gabbi.tests.test_history.HistoryTest.test_url_replace_history -gabbi.tests.test_history.HistoryTest.test_url_replace_history ... ok -gabbi.tests.test_history.HistoryTest.test_url_replace_prior -gabbi.tests.test_history.HistoryTest.test_url_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.self_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok -gabbi.tests.test_inner_fixture.inner_get_two.test_request -gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", ++ PYTHON=python3.12 ++ stestr run --parallel --subunit 'gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request)' /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler @@ -5304,174 +5182,362 @@ gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", gabbi.tests.test_data_to_string.TestDataToString.testHappyPath gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok gabbi.tests.test_data_to_string.TestDataToString.testNoContentType gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok gabbi.tests.test_data_to_string.TestDataToString.testNoHandler gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok -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_joined_params.test_request -gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request -gabbi.tests.test_intercept.verbosity_confirm_notempty.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.regex_regex_jsonpath_test.test_request -gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok -gabbi.tests.test_intercept.self_test_binary_handling.test_request -gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok -gabbi.tests.test_intercept.queryparams_simple_param.test_request -gabbi.tests.test_intercept.queryparams_simple_param.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_history.HistoryTest.test_cookie_replace_history +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_prior +gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_history +gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior +gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok -gabbi.tests.test_intercept.self_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.test_request ... ok -gabbi.tests.test_intercept.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.test_request ... ok -gabbi.tests.test_intercept.self_query_returned.test_request -gabbi.tests.test_intercept.self_query_returned.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok -gabbi.tests.test_intercept.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok -gabbi.tests.test_intercept.self_post_a_body.test_request -gabbi.tests.test_intercept.self_post_a_body.test_request ... ok -gabbi.tests.test_intercept.queryparams_multi_params.test_request -gabbi.tests.test_intercept.queryparams_multi_params.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.self_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.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_url_in_param.test_request -gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok -gabbi.tests.test_intercept.self_confirm_environ.test_request -gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.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_checklimit.test_request +gabbi.tests.test_intercept.self_checklimit.test_request ... ok +gabbi.tests.test_inner_fixture.inner_get_two.test_request +gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok +gabbi.tests.test_intercept.self_post_a_body.test_request +gabbi.tests.test_intercept.self_post_a_body.test_request ... ok +gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok +gabbi.tests.test_inner_fixture.inner_get_one.test_request +gabbi.tests.test_inner_fixture.inner_get_one.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_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.host-header_ssl_with_capitalised_host.test_request gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok +gabbi.tests.test_intercept.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.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_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok gabbi.tests.test_intercept.header-key_header_named_http.test_request gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.self_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.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_history.HistoryTest.test_response_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... 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.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_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 -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.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.last-url_get_a_url_the_first_time.test_request -gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request ... ok -gabbi.tests.test_intercept.last-url_get_prior_url.test_request -gabbi.tests.test_intercept.last-url_get_prior_url.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.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.self_get_simple_page.test_request +gabbi.tests.test_intercept.self_get_simple_page.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_handlers.HandlersTest.test_response_json_paths_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok -gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request -gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok -gabbi.tests.test_intercept.contenttype_post_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_content-type.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.poll_create_a_thing.test_request -gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.self_bogus_method.test_request +gabbi.tests.test_intercept.self_bogus_method.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok -gabbi.tests.test_intercept.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_use_prior_location.test_request +gabbi.tests.test_intercept.self_use_prior_location.test_request ... ok +gabbi.tests.test_intercept.self_use_a_historical_location.test_request +gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok +gabbi.tests.test_intercept.self_query_returned.test_request +gabbi.tests.test_intercept.self_query_returned.test_request ... ok +gabbi.tests.test_intercept.data_load_data_dictionary.test_request +gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok gabbi.tests.test_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.json-left-side_set_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok -gabbi.tests.test_intercept.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.host-header_host_without_ssl.test_request -gabbi.tests.test_intercept.host-header_host_without_ssl.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_header_test.test_request +gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.self_test_binary_handling.test_request +gabbi.tests.test_intercept.self_test_binary_handling.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.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.method-shortcut_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok -gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request -gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request ... ok -gabbi.tests.test_intercept.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_three.test_request -gabbi.tests.test_intercept.fixture_just_to_see_three.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_intercept.queryparams_replacers_in_params.test_request +gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex ... ok -gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request -gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request ... ok +gabbi.tests.test_intercept.self_post_a_body_with_query.test_request +gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok +gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request +gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok +gabbi.tests.test_intercept.queryparams_joined_params.test_request +gabbi.tests.test_intercept.queryparams_joined_params.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.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_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_substitution_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_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.regex_regex_string_test_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_json.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.method-shortcut_arbitrary_method.test_request +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.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.method-shortcut_post_with_query.test_request +gabbi.tests.test_intercept.method-shortcut_post_with_query.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.fixture_just_to_see.test_request +gabbi.tests.test_intercept.fixture_just_to_see.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_inner_fixture.inner_get_three.test_request +gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.self_json_derived_content_type.test_request +gabbi.tests.test_intercept.self_json_derived_content_type.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_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.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.fixture_just_to_see_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_two.test_request +gabbi.tests.test_intercept.fixture_just_to_see_two.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.json-left-side_set_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok +gabbi.tests.test_intercept.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.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.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.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_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_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 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.json-right-side_json_parital_from_disk.test_request +gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request ... ok +gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok +gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request +gabbi.tests.test_intercept.data_post_data_from_prior_response.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.data_load_json_file.test_request +gabbi.tests.test_intercept.data_load_json_file.test_request ... ok +gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request +gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok gabbi.tests.test_intercept.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.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.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.data_load_data_list.test_request +gabbi.tests.test_intercept.data_load_data_list.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_intercept.self_test_pluggable_response.test_request +gabbi.tests.test_intercept.self_test_pluggable_response.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.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.self_get_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_location_from_headers.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.casting_default_casts.test_request +gabbi.tests.test_intercept.casting_default_casts.test_request ... ok +gabbi.tests.test_intercept.self_confirm_environ.test_request +gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok +gabbi.tests.test_intercept.self_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.data_json_value_from_disk.test_request +gabbi.tests.test_intercept.data_json_value_from_disk.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.data_post_data_for_next.test_request +gabbi.tests.test_intercept.data_post_data_for_next.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.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.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.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.contenttype_post_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_content-type.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.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.method-shortcut_simple_post.test_request +gabbi.tests.test_intercept.method-shortcut_simple_post.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.cookie_get_a_cookie.test_request gabbi.tests.test_intercept.cookie_get_a_cookie.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_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok +gabbi.tests.test_intercept.json-extensions_test_filtered.test_request +gabbi.tests.test_intercept.json-extensions_test_filtered.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.host-header_host_without_ssl.test_request +gabbi.tests.test_intercept.host-header_host_without_ssl.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.poll_loop_location.test_request +gabbi.tests.test_intercept.poll_loop_location.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.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.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.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.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_content-type.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.host-header_ssl_no_host.test_request +gabbi.tests.test_intercept.host-header_ssl_no_host.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.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.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.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.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.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_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok +gabbi.tests.test_intercept.coerce_with_list.test_request +gabbi.tests.test_intercept.coerce_with_list.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_jsonpath.JSONPathTest.test_basic_match +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... 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_jsonpath.JSONPathTest.test_embedded_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok +gabbi.tests.test_intercept.coerce_object_with_list.test_request +gabbi.tests.test_intercept.coerce_object_with_list.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_intercept.backref_repost_that_raw_int.test_request +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok #### get simple page #### -> GET http://c75c1d4a-a18a-4bcf-abee-e631061ff81a:8001/ +> GET http://7e59a030-f065-4c9f-bfab-1ded4bb5a4b5:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5479,12 +5545,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c75c1d4a-a18a-4bcf-abee-e631061ff81a:8001/ +< X-Gabbi-url: http://7e59a030-f065-4c9f-bfab-1ded4bb5a4b5:8001/ {} #### left side json one #### -> POST http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ +> POST http://0951193a-1499-4239-b2f9-d1446a091361:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5496,8 +5562,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ -< Location: http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ +< X-Gabbi-url: http://0951193a-1499-4239-b2f9-d1446a091361:8001/ +< Location: http://0951193a-1499-4239-b2f9-d1446a091361:8001/ { "alpha": "alpha1", @@ -5505,7 +5571,7 @@ } #### expand left side #### -> POST http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ +> POST http://0951193a-1499-4239-b2f9-d1446a091361:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5517,8 +5583,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ -< Location: http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ +< X-Gabbi-url: http://0951193a-1499-4239-b2f9-d1446a091361:8001/ +< Location: http://0951193a-1499-4239-b2f9-d1446a091361:8001/ { "alpha1": "alpha", @@ -5526,7 +5592,7 @@ } #### expand environ left side #### -> POST http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ +> POST http://0951193a-1499-4239-b2f9-d1446a091361:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5539,8 +5605,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ -< Location: http://42c70811-3353-46a7-81b6-c097d226a03e:8001/ +< X-Gabbi-url: http://0951193a-1499-4239-b2f9-d1446a091361:8001/ +< Location: http://0951193a-1499-4239-b2f9-d1446a091361:8001/ { "alpha1": "alpha", @@ -5549,7 +5615,7 @@ } #### set key and value #### -> GET http://42c70811-3353-46a7-81b6-c097d226a03e:8001/jsonator?key=1&value=10 +> GET http://0951193a-1499-4239-b2f9-d1446a091361:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5561,170 +5627,39 @@ "1": "10" } -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.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.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.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.json-extensions_test_sort.test_request -gabbi.tests.test_intercept.json-extensions_test_sort.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.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_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.host-header_ssl_with_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok -gabbi.tests.test_intercept.data_partial_json_from_disk.test_request -gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok -gabbi.tests.test_intercept.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_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.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.skipall_a_skipped_test.test_request -gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' -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.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.self_simple_post.test_request -gabbi.tests.test_intercept.self_simple_post.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 -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.self_checklimit.test_request -gabbi.tests.test_intercept.self_checklimit.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.coerce_with_list.test_request -gabbi.tests.test_intercept.coerce_with_list.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.data_load_json_file.test_request -gabbi.tests.test_intercept.data_load_json_file.test_request ... ok -gabbi.tests.test_intercept.data_load_image_file.test_request -gabbi.tests.test_intercept.data_load_image_file.test_request ... ok -gabbi.tests.test_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_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_intercept.self_get_ssl_page.test_request -gabbi.tests.test_intercept.self_get_ssl_page.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.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.self_test_pluggable_response.test_request -gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok -gabbi.tests.test_intercept.data_load_encoded_text.test_request -gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok -gabbi.tests.test_intercept.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.json-extensions_test_filtered.test_request -gabbi.tests.test_intercept.json-extensions_test_filtered.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.fixture_just_to_see_one.test_request -gabbi.tests.test_intercept.fixture_just_to_see_one.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.coerce_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok -gabbi.tests.test_intercept.data_load_data_list.test_request -gabbi.tests.test_intercept.data_load_data_list.test_request ... ok -gabbi.tests.test_intercept.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.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_jsonpath.JSONPathTest.test_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok gabbi.tests.test_intercept.coerce_post_extra_data.test_request gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok -gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request -gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok -gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request -gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... ok -gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request -gabbi.tests.test_intercept.data_post_data_from_prior_response.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.coerce_use_data.test_request -gabbi.tests.test_intercept.coerce_use_data.test_request ... ok -gabbi.tests.test_intercept.casting_default_casts.test_request -gabbi.tests.test_intercept.casting_default_casts.test_request ... ok -gabbi.tests.test_intercept.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.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.backref_post_even_more_json_quote_different.test_request -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok -gabbi.tests.test_intercept.backref_post_even_more_json.test_request -gabbi.tests.test_intercept.backref_post_even_more_json.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_intercept.coerce_check_posted_data.test_request +gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok +#### get simple page #### +> GET http://4be7ac2d-534b-41a5-8937-7a7a200dacbe: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://4be7ac2d-534b-41a5-8937-7a7a200dacbe:8001/ + +{} + #### json encoded value from disk #### -> POST http://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ +> POST http://0fff4333-089c-48db-8323-8815a7c26ae6:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5737,8 +5672,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ -< Location: http://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ +< X-Gabbi-url: http://0fff4333-089c-48db-8323-8815a7c26ae6:8001/ +< Location: http://0fff4333-089c-48db-8323-8815a7c26ae6:8001/ { "foo": { @@ -5746,191 +5681,200 @@ } } -#### json parital from disk #### -> POST http://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ +#### post data #### +> POST http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "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://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ -< Location: http://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ +< X-Gabbi-url: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ +< Location: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ { - "type": "cat", - "sound": "meow" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### json partial both sides #### -> POST http://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ +#### use data #### +> POST http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +{ + "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://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ -< Location: http://421330b1-24ae-475c-84ab-df85e07d9e4b:8001/ +< X-Gabbi-url: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ +< Location: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} -#### left side json one #### -> POST http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ +#### from environ #### +> POST http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ -< Location: http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ +< X-Gabbi-url: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ +< Location: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "one_environ": 1 } -#### expand left side #### -> POST http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ +#### with list #### +> POST http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + 1, + 2, + "3" +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ +< Location: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ + +[ + 1, + 2, + "3" +] + +#### object with list #### +> POST http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ -< Location: http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ +< X-Gabbi-url: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ +< Location: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } -#### expand environ left side #### -> POST http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ +#### post extra data #### +> POST http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "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://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ -< Location: http://38bf904b-7536-449d-9daf-5e6d36df7894:8001/ +< X-Gabbi-url: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ +< Location: http://b02eacb0-b1a3-421e-b0d4-a3437f142ab0:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "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 + } + } } -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.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.coerce_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok -gabbi.tests.test_intercept.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure -gabbi.tests.test_intercept.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... 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.backref_post_some_json.test_request -gabbi.tests.test_intercept.backref_post_some_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 -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_driver.DriverTest.test_build_require_ssl -gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok -gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept -gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_target -gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl -gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok -gabbi.tests.test_intercept.casting_internal_json_fine.test_request -gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test -gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok -gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host -gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok -gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests -gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... 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_suite.SuiteTest.test_suite_catches_fixture_fail +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... 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_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 #### get simple page #### -> GET http://efa0286b-0400-46cd-8b90-38c815c7cff9:8001/ +> GET http://2a275a68-50b2-4a11-8ef4-d87c9298d978:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5938,12 +5882,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://efa0286b-0400-46cd-8b90-38c815c7cff9:8001/ +< X-Gabbi-url: http://2a275a68-50b2-4a11-8ef4-d87c9298d978:8001/ {} #### default casts #### -> POST http://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ +> POST http://71fd6b78-613c-40e4-921c-4c22a59bdbcc:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5959,8 +5903,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ -< Location: http://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ +< X-Gabbi-url: http://71fd6b78-613c-40e4-921c-4c22a59bdbcc:8001/ +< Location: http://71fd6b78-613c-40e4-921c-4c22a59bdbcc:8001/ { "int": 1, @@ -5970,119 +5914,41 @@ "fbool": false } -#### cast to string #### -> POST http://d2fe7644-b16c-4596-a583-978838af8ffc: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://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ -< Location: http://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ - -{ - "string": "2" -} - -#### json set up #### -> POST http://d2fe7644-b16c-4596-a583-978838af8ffc: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://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ -< Location: http://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ - -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -} - -#### send casted json #### -> POST http://d2fe7644-b16c-4596-a583-978838af8ffc: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://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ -< Location: http://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ - -{ - "casted": 2 -} - -#### historic casted json #### -> POST http://d2fe7644-b16c-4596-a583-978838af8ffc: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://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ -< Location: http://d2fe7644-b16c-4596-a583-978838af8ffc:8001/ - -{ - "casted": 2 -} - -#### yaml encoded value from disk #### -> POST http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere -> content-type: application/json +gabbi.tests.test_intercept.casting_historic_casted_json.test_request +gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... ok +gabbi.tests.test_intercept.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.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_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://57c6aaeb-08ea-4da7-a1fb-08a2535c05c3: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://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere -< Location: http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere +< X-Gabbi-url: http://57c6aaeb-08ea-4da7-a1fb-08a2535c05c3:8001/ -{ - "foo": { - "b\u00e1r": 1 - } -} +{} #### json encoded value from disk #### -> POST http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere +> POST http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6095,8 +5961,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere -< Location: http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere +< X-Gabbi-url: http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ +< Location: http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ { "foo": { @@ -6104,8 +5970,8 @@ } } -#### yaml parital from disk #### -> POST http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere +#### json parital from disk #### +> POST http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6117,130 +5983,49 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere -< Location: http://f866790b-80e5-4cfd-8c1b-31058263904b:8001/somewhere +< X-Gabbi-url: http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ +< Location: http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ { "type": "cat", "sound": "meow" } -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 -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_inheritance_of_defaults.test_request -gabbi.tests.test_intercept.self_inheritance_of_defaults.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.coerce_check_posted_data.test_request -gabbi.tests.test_intercept.coerce_check_posted_data.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.self_json_derived_content_type.test_request -gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... 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 -#### get simple page #### -> GET http://44746e07-37cb-4863-816d-6ca6d5df679e: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://44746e07-37cb-4863-816d-6ca6d5df679e:8001/ - -{} - -#### header named http #### -> GET http://c073fa12-aca7-4c21-97d0-edcb8cc1c8ee: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://c073fa12-aca7-4c21-97d0-edcb8cc1c8ee:8001/header_key -< HTTP: some-scheme - -{} - -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.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.backref_get_a_historical_response.test_request -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file -gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_list.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.forbiddenheaders_header_not_there_basic.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.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.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_runner.RunnerTest.test_custom_response_handler -gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok -#### get simple page #### -> GET http://1a3ec7df-d443-4e7e-9a84-3871a917216c:8001/ -> x-random-header: ya +#### json partial both sides #### +> POST http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50: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: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1a3ec7df-d443-4e7e-9a84-3871a917216c:8001/ +< X-Gabbi-url: http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ +< Location: http://5d12f4e6-3ddb-414e-a46e-d03fc7b8dc50:8001/ -{} +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] #### post data #### -> POST http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +> POST http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6253,8 +6038,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ -< Location: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +< X-Gabbi-url: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ +< Location: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ { "one_string": "1", @@ -6263,7 +6048,7 @@ } #### use data #### -> POST http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +> POST http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6276,8 +6061,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ -< Location: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +< X-Gabbi-url: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ +< Location: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ { "one_string": "1", @@ -6286,7 +6071,7 @@ } #### from environ #### -> POST http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +> POST http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6297,15 +6082,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ -< Location: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +< X-Gabbi-url: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ +< Location: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ { "one_environ": 1 } #### with list #### -> POST http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +> POST http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6318,8 +6103,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ -< Location: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +< X-Gabbi-url: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ +< Location: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ [ 1, @@ -6328,7 +6113,7 @@ ] #### object with list #### -> POST http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +> POST http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6348,8 +6133,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ -< Location: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ +< X-Gabbi-url: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ +< Location: http://31f97686-1bee-4791-97ec-53a47910bcc5:8001/ { "collection": [ @@ -6364,63 +6149,8 @@ ] } -#### post extra data #### -> POST http://362f1064-469a-44fa-bcdb-59c83547a0f3: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://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ -< Location: http://362f1064-469a-44fa-bcdb-59c83547a0f3:8001/ - -{ - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } -} - #### default casts #### -> POST http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +> POST http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6436,8 +6166,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ -< Location: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +< X-Gabbi-url: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ +< Location: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ { "int": 1, @@ -6448,7 +6178,7 @@ } #### cast to string #### -> POST http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +> POST http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6460,15 +6190,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ -< Location: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +< X-Gabbi-url: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ +< Location: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ { "string": "2" } #### json set up #### -> POST http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +> POST http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6484,8 +6214,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ -< Location: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +< X-Gabbi-url: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ +< Location: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ { "int": 1, @@ -6496,7 +6226,7 @@ } #### send casted json #### -> POST http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +> POST http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6508,15 +6238,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ -< Location: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +< X-Gabbi-url: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ +< Location: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ { "casted": 2 } #### historic casted json #### -> POST http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +> POST http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6528,95 +6258,19 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ -< Location: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ +< X-Gabbi-url: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ +< Location: http://ac32647f-ca78-4c4e-bf75-6f0362c41b2f:8001/ { "casted": 2 } -#### internal json fine #### -> POST http://36cc4e68-5990-4504-8f41-25f6426a6667: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://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ -< Location: http://36cc4e68-5990-4504-8f41-25f6426a6667:8001/ - -{ - "casted": "in this 2 is not errors" -} - -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_data_dir_good -gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_exit_code -gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_input_files -gabbi.tests.test_runner.RunnerTest.test_input_files ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok -gabbi.tests.test_intercept.casting_json_set_up.test_request -gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok -gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request -gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok -gabbi.tests.test_utils.BinaryTypesTest.test_binary -gabbi.tests.test_utils.BinaryTypesTest.test_binary ... ok -gabbi.tests.test_utils.BinaryTypesTest.test_not_binary -gabbi.tests.test_utils.BinaryTypesTest.test_not_binary ... ok +gabbi.tests.test_intercept.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_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://5a72bea1-020b-4f70-94fb-ff30821bb62b:8001/ +> GET http://b9c3faaa-b4ec-47ff-ad0e-cd16971b0d9c:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6624,12 +6278,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5a72bea1-020b-4f70-94fb-ff30821bb62b:8001/ +< X-Gabbi-url: http://b9c3faaa-b4ec-47ff-ad0e-cd16971b0d9c:8001/ {} #### json encoded value from disk #### -> POST http://5caf8e4b-7d76-42f5-9f77-e08c846d4492:8001/ +> POST http://e0cee124-3dc9-4aa0-aea1-c8e61a1376c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6642,8 +6296,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5caf8e4b-7d76-42f5-9f77-e08c846d4492:8001/ -< Location: http://5caf8e4b-7d76-42f5-9f77-e08c846d4492:8001/ +< X-Gabbi-url: http://e0cee124-3dc9-4aa0-aea1-c8e61a1376c0:8001/ +< Location: http://e0cee124-3dc9-4aa0-aea1-c8e61a1376c0:8001/ { "foo": { @@ -6652,7 +6306,7 @@ } #### json parital from disk #### -> POST http://5caf8e4b-7d76-42f5-9f77-e08c846d4492:8001/ +> POST http://e0cee124-3dc9-4aa0-aea1-c8e61a1376c0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6664,260 +6318,234 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5caf8e4b-7d76-42f5-9f77-e08c846d4492:8001/ -< Location: http://5caf8e4b-7d76-42f5-9f77-e08c846d4492:8001/ +< X-Gabbi-url: http://e0cee124-3dc9-4aa0-aea1-c8e61a1376c0:8001/ +< Location: http://e0cee124-3dc9-4aa0-aea1-c8e61a1376c0:8001/ { "type": "cat", "sound": "meow" } -#### left side json one #### -> POST http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ +#### yaml encoded value from disk #### +> POST http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ -< Location: http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ +< X-Gabbi-url: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere +< Location: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere { - "alpha": "alpha1", - "beta": "beta1" + "foo": { + "b\u00e1r": 1 + } } -#### expand left side #### -> POST http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ +#### json encoded value from disk #### +> POST http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ -< Location: http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ +< X-Gabbi-url: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere +< Location: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere { - "alpha1": "alpha", - "beta1": "beta" + "foo": { + "b\u00e1r": 1 + } } -#### expand environ left side #### -> POST http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ +#### yaml parital from disk #### +> POST http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ -< Location: http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/ +< X-Gabbi-url: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere +< Location: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "type": "cat", + "sound": "meow" } -#### set key and value #### -> GET http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/jsonator?key=1&value=10 +#### yaml partial both sides #### +> POST http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] < 200 OK -< Content-Type: application/json +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere +< Location: http://b7831dbb-2efa-4801-920b-31a3a285b942:8001/somewhere -{ - "1": "10" -} +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] -#### check key and value #### -> GET http://161e02d7-966e-4dcc-9eea-713804fd8fa1:8001/jsonator?key=1&value=10 -> content-type: application/json +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_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 +#### get simple page #### +> GET http://301f7c57-c04f-4771-ab15-133371622eb9:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK -< Content-Type: application/json +< X-Gabbi-method: GET +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://301f7c57-c04f-4771-ab15-133371622eb9:8001/ -{ - "1": "10" -} +{} -#### post data #### -> POST http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ +#### left side json one #### +> POST http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ -< Location: http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ +< X-Gabbi-url: http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ +< Location: http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha": "alpha1", + "beta": "beta1" } -#### use data #### -> POST http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ +#### expand left side #### +> POST http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ -< Location: http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ +< X-Gabbi-url: http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ +< Location: http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta" } -#### from environ #### -> POST http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ +#### expand environ left side #### +> POST http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_environ": 1 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ -< Location: http://3ef01538-b961-4870-998d-44101efb9ae1:8001/ +< X-Gabbi-url: http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ +< Location: http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/ { - "one_environ": 1 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } -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.data_post_data_for_next.test_request -gabbi.tests.test_intercept.data_post_data_for_next.test_request ... ok -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request ... ok -gabbi.tests.test_intercept.casting_cast_to_string.test_request -gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok -#### get simple page #### -> GET http://7a3bfcee-4aac-4d0c-bf65-0c622bc14070: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://7a3bfcee-4aac-4d0c-bf65-0c622bc14070:8001/ - -{} - -#### default casts #### -> POST http://8a321054-3112-4de5-9411-6210ab7bd6ed:8001/ +#### set key and value #### +> GET http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/jsonator?key=1&value=10 > 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://8a321054-3112-4de5-9411-6210ab7bd6ed:8001/ -< Location: http://8a321054-3112-4de5-9411-6210ab7bd6ed:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "1": "10" } -#### cast to string #### -> POST http://8a321054-3112-4de5-9411-6210ab7bd6ed:8001/ +#### check key and value #### +> GET http://12353127-2ec1-4f90-89fd-83f9ddfea0e3:8001/jsonator?key=1&value=10 > 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://8a321054-3112-4de5-9411-6210ab7bd6ed:8001/ -< Location: http://8a321054-3112-4de5-9411-6210ab7bd6ed:8001/ { - "string": "2" + "1": "10" } -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok -gabbi.tests.test_intercept.backref_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_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 -#### get simple page #### -> GET http://9f299fe6-a740-4e85-9f21-154abc3cf213: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://9f299fe6-a740-4e85-9f21-154abc3cf213:8001/ - -{} - #### post data #### -> POST http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6930,8 +6558,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ -< Location: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ { "one_string": "1", @@ -6940,7 +6568,7 @@ } #### use data #### -> POST http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6953,8 +6581,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ -< Location: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ { "one_string": "1", @@ -6963,7 +6591,7 @@ } #### from environ #### -> POST http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6974,15 +6602,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ -< Location: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ { "one_environ": 1 } #### with list #### -> POST http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6995,8 +6623,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ -< Location: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ [ 1, @@ -7005,7 +6633,7 @@ ] #### object with list #### -> POST http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7025,8 +6653,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ -< Location: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ { "collection": [ @@ -7042,7 +6670,7 @@ } #### post extra data #### -> POST http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7071,8 +6699,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ -< Location: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ { "a": 1, @@ -7097,7 +6725,7 @@ } #### check posted data #### -> POST http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7126,8 +6754,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ -< Location: http://cfd1dd43-193d-4c84-a93c-bb8311cdebf8:8001/ +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ { "a": 1, @@ -7151,42 +6779,105 @@ } } -#### yaml encoded value from disk #### -> POST http://b0ec21ac-3453-46b1-811d-738212d51160:8001/somewhere +#### Post again and check the results #### +> POST http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 + "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://b0ec21ac-3453-46b1-811d-738212d51160:8001/somewhere -< Location: http://b0ec21ac-3453-46b1-811d-738212d51160:8001/somewhere +< X-Gabbi-url: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ +< Location: http://72e085ee-6fda-4cf9-8c98-763f2a800dac:8001/ { - "foo": { - "b\u00e1r": 1 + "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 + } } } -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok -#### confirm notempty #### -> GET http://6d70d273-01ef-4d73-8f72-5924a0cef4de:8001/notempty +#### default casts #### +> POST http://143e105f-e423-46d9-b4ae-f04f699c0f28: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://143e105f-e423-46d9-b4ae-f04f699c0f28:8001/ +< Location: http://143e105f-e423-46d9-b4ae-f04f699c0f28:8001/ -notempty +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} -#### get simple page #### -> GET http://ee15250e-0901-48e1-b5be-0ef9bbd66502:8001/ +#### cast to string #### +> POST http://143e105f-e423-46d9-b4ae-f04f699c0f28: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://143e105f-e423-46d9-b4ae-f04f699c0f28:8001/ +< Location: http://143e105f-e423-46d9-b4ae-f04f699c0f28:8001/#### get simple page #### +> GET http://25e61245-5a7f-4b65-8482-3675d5759947:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7194,12 +6885,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ee15250e-0901-48e1-b5be-0ef9bbd66502:8001/ +< X-Gabbi-url: http://25e61245-5a7f-4b65-8482-3675d5759947:8001/ {} #### loop location #### -> GET http://63e0568a-7fad-4b4c-80a0-88ae8519ab46:8001/poller?count=2&x=1&y=2&z=3.4 +> GET http://4bc51152-124c-420f-a23c-b7b057681221:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7207,7 +6898,7 @@ #### loop location #### -> GET http://63e0568a-7fad-4b4c-80a0-88ae8519ab46:8001/poller?count=2&x=1&y=2&z=3.4 +> GET http://4bc51152-124c-420f-a23c-b7b057681221:8001/poller?count=2&x=1&y=2&z=3.4 > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7215,14 +6906,14 @@ #### loop location #### -> GET http://63e0568a-7fad-4b4c-80a0-88ae8519ab46:8001/poller?count=2&x=1&y=2&z=3.4 +> GET http://4bc51152-124c-420f-a23c-b7b057681221: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://63e0568a-7fad-4b4c-80a0-88ae8519ab46:8001/poller?count=2&x=1&y=2&z=3.4 +< X-Gabbi-url: http://4bc51152-124c-420f-a23c-b7b057681221:8001/poller?count=2&x=1&y=2&z=3.4 { "count": [ @@ -7240,7 +6931,7 @@ } #### left side json one #### -> POST http://667a9b80-ae4b-4a84-ab7b-f51da09bd07d:8001/ +> POST http://47b7fa67-9f93-4f8c-85ea-572f751d66fc:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7252,8 +6943,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://667a9b80-ae4b-4a84-ab7b-f51da09bd07d:8001/ -< Location: http://667a9b80-ae4b-4a84-ab7b-f51da09bd07d:8001/ +< X-Gabbi-url: http://47b7fa67-9f93-4f8c-85ea-572f751d66fc:8001/ +< Location: http://47b7fa67-9f93-4f8c-85ea-572f751d66fc:8001/ { "alpha": "alpha1", @@ -7261,7 +6952,7 @@ } #### post data #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +> POST http://a686514f-df64-4994-966d-1158333f2bd7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7274,8 +6965,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://a686514f-df64-4994-966d-1158333f2bd7:8001/ +< Location: http://a686514f-df64-4994-966d-1158333f2bd7:8001/ { "one_string": "1", @@ -7284,7 +6975,7 @@ } #### use data #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +> POST http://a686514f-df64-4994-966d-1158333f2bd7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7297,8 +6988,261 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://a686514f-df64-4994-966d-1158333f2bd7:8001/ +< Location: http://a686514f-df64-4994-966d-1158333f2bd7:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### default casts #### +> POST http://2f259af3-0507-443b-9fe9-d23bb91b1c97: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://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ +< Location: http://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + +#### cast to string #### +> POST http://2f259af3-0507-443b-9fe9-d23bb91b1c97: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://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ +< Location: http://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ + +{ + "string": "2" +} + +#### json set up #### +> POST http://2f259af3-0507-443b-9fe9-d23bb91b1c97: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://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ +< Location: http://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +#### send casted json #### +> POST http://2f259af3-0507-443b-9fe9-d23bb91b1c97: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://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ +< Location: http://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ + +{ + "casted": 2 +} + +#### historic casted json #### +> POST http://2f259af3-0507-443b-9fe9-d23bb91b1c97: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://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ +< Location: http://2f259af3-0507-443b-9fe9-d23bb91b1c97:8001/ + +{ + "casted": 2 +} + +gabbi.tests.test_intercept.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.test_request ... 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 + + +{ + "string": "2" +} + +#### json set up #### +> POST http://143e105f-e423-46d9-b4ae-f04f699c0f28: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://143e105f-e423-46d9-b4ae-f04f699c0f28:8001/ +< Location: http://143e105f-e423-46d9-b4ae-f04f699c0f28:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +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_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 +#### get simple page #### +> GET http://8d10b9c8-67b1-4c8d-a3ff-f120d0be4c79: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://8d10b9c8-67b1-4c8d-a3ff-f120d0be4c79:8001/ + +{} + +#### header named http #### +> GET http://7430708a-8d9b-4fed-a43c-320cd47ddd2c: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://7430708a-8d9b-4fed-a43c-320cd47ddd2c:8001/header_key +< HTTP: some-scheme + +{} + +#### post data #### +> POST http://be454def-aa3f-4e42-a4ab-b5a0025703b2: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://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ +< Location: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### use data #### +> POST http://be454def-aa3f-4e42-a4ab-b5a0025703b2: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://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ +< Location: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ { "one_string": "1", @@ -7307,7 +7251,7 @@ } #### from environ #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +> POST http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7318,15 +7262,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ +< Location: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ { "one_environ": 1 } #### with list #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +> POST http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7339,8 +7283,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ +< Location: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ [ 1, @@ -7349,7 +7293,7 @@ ] #### object with list #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +> POST http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7369,8 +7313,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ +< Location: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ { "collection": [ @@ -7386,7 +7330,7 @@ } #### post extra data #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +> POST http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7415,8 +7359,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ +< Location: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ { "a": 1, @@ -7441,7 +7385,7 @@ } #### check posted data #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +> POST http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7470,8 +7414,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ +< Location: http://be454def-aa3f-4e42-a4ab-b5a0025703b2:8001/ { "a": 1, @@ -7495,145 +7439,124 @@ } } -#### Post again and check the results #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_driver.DriverTest.test_build_require_ssl +gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok +gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept +gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_target +gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl +gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test +gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok +gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host +gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok +gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests +gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok +gabbi.tests.test_driver.DriverTest.test_driver_prefix +gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok +/usr/lib/python3.12/unittest/case.py:580: 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_intercept.queryparams_multi_params.test_request +gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +gabbi.tests.test_intercept.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok +gabbi.tests.test_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://3fdd5e79-5cb1-48f5-9349-87b21b5dbaeb: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://3fdd5e79-5cb1-48f5-9349-87b21b5dbaeb:8001/ + +{} + +#### yaml encoded value from disk #### +> POST http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c: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://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c:8001/somewhere +< Location: http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c: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 } } -#### Post again and check the results (reversed) #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +#### json encoded value from disk #### +> POST http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c: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://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c:8001/somewhere +< Location: http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c: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 } } -#### string internal replace #### -> POST http://be308556-4962-4589-9c70-736e91d8d091:8001/ +#### yaml parital from disk #### +> POST http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://be308556-4962-4589-9c70-736e91d8d091:8001/ -< Location: http://be308556-4962-4589-9c70-736e91d8d091:8001/ +< X-Gabbi-url: http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c:8001/somewhere +< Location: http://3df8eb93-ba37-45ed-b8cb-3a3be6f8fd1c:8001/somewhere { - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" + "type": "cat", + "sound": "meow" } -#### default casts ####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_post_again_and_check_the_results_(reversed).test_request -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok -gabbi.tests.test_intercept.casting_send_casted_json.test_request -gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok +gabbi.tests.test_intercept.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok +gabbi.tests.test_intercept.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 #### get simple page #### -> GET http://fd60a6d3-590c-4d9f-a0e1-fe9b9ff7d13a:8001/ +> GET http://688b2db1-9d88-4989-b21b-30100610ff34:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7641,12 +7564,77 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fd60a6d3-590c-4d9f-a0e1-fe9b9ff7d13a:8001/ +< X-Gabbi-url: http://688b2db1-9d88-4989-b21b-30100610ff34:8001/ {} +#### left side json one #### +> POST http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ +< Location: http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +#### expand left side #### +> POST http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "alpha1": "alpha", + "beta1": "beta" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ +< Location: http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta" +} + +#### expand environ left side #### +> POST http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ +< Location: http://722a1043-2d90-4028-9c44-863dfec982bd:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + #### post data #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7659,8 +7647,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { "one_string": "1", @@ -7669,7 +7657,7 @@ } #### use data #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7682,8 +7670,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { "one_string": "1", @@ -7692,7 +7680,7 @@ } #### from environ #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7703,15 +7691,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { "one_environ": 1 } #### with list #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7724,8 +7712,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ [ 1, @@ -7734,7 +7722,7 @@ ] #### object with list #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7754,8 +7742,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { "collection": [ @@ -7771,7 +7759,7 @@ } #### post extra data #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7800,8 +7788,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { "a": 1, @@ -7826,7 +7814,7 @@ } #### check posted data #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7855,8 +7843,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { "a": 1, @@ -7881,7 +7869,7 @@ } #### Post again and check the results #### -> POST http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7910,8 +7898,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ -< Location: http://35415e35-d377-425a-b33c-6da121e0cc0b:8001/ +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { "a": 1, @@ -7935,84 +7923,122 @@ } } -#### default casts #### -> POST http://3c31effe-d116-4873-98db-4398a7a52002:8001/ +#### Post again and check the results (reversed) #### +> POST http://eec51125-e048-4c15-a73e-192306a1e226: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://3c31effe-d116-4873-98db-4398a7a52002:8001/ -< Location: http://3c31effe-d116-4873-98db-4398a7a52002:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226: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://3c31effe-d116-4873-98db-4398a7a52002:8001/ +#### string internal replace #### +> POST http://eec51125-e048-4c15-a73e-192306a1e226:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://3c31effe-d116-4873-98db-4398a7a52002:8001/ -< Location: http://3c31effe-d116-4873-98db-4398a7a52002:8001/ - -{ - "string": "2" -} - -#### json set up #### -> POST http://3c31effe-d116-4873-98db-4398a7a52002:8001/ -> content-type: application/json -> accept: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ +< Location: http://eec51125-e048-4c15-a73e-192306a1e226:8001/ { - "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://3c31effe-d116-4873-98db-4398a7a52002:8001/ -< Location: http://3c31effe-d116-4873-98db-4398a7a52002:8001/ + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" +}gabbi.tests.test_intercept.coerce_string_internal_replace.test_request +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok +gabbi.tests.test_intercept.poll_create_a_thing.test_request +gabbi.tests.test_intercept.poll_create_a_thing.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.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_load_encoded_text.test_request +gabbi.tests.test_intercept.data_load_encoded_text.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_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok +gabbi.tests.test_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 -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -} #### yaml encoded value from disk #### -> POST http://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere +> POST http://657f985e-5f6c-435a-9df3-5584a501de30:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8025,8 +8051,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere -< Location: http://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere +< X-Gabbi-url: http://657f985e-5f6c-435a-9df3-5584a501de30:8001/somewhere +< Location: http://657f985e-5f6c-435a-9df3-5584a501de30:8001/somewhere { "foo": { @@ -8034,93 +8060,115 @@ } } -#### json encoded value from disk #### -> POST http://378eee48-d22b-4b88-90c9-cac4747d1457: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://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere -< Location: http://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### yaml parital from disk #### -> POST http://378eee48-d22b-4b88-90c9-cac4747d1457: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://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewheregabbi.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 - -< Location: http://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere - -{ - "type": "cat", - "sound": "meow" -} - -#### yaml partial both sides #### -> POST http://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere -> content-type: application/json +gabbi.tests.test_intercept.casting_send_casted_json.test_request +gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok +gabbi.tests.test_intercept.casting_internal_json_fine.test_request +gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok +gabbi.tests.test_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 +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_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.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_exit_code +gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_input_files +gabbi.tests.test_runner.RunnerTest.test_input_files/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", + ... ok +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_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.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml +gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting +gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok +gabbi.tests.test_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 +#### confirm notempty #### +> GET http://94c33bff-1f82-4820-ba02-9108326dc803:8001/notempty > 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://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere -< Location: http://378eee48-d22b-4b88-90c9-cac4747d1457:8001/somewhere -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +notempty -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_utils.ColorizeTest.test_colorize_missing_color -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request ... ok #### get simple page #### -> GET http://34ea5ff2-2db8-4fa0-8a10-617f890b876e:8001/ +> GET http://445fef64-46ba-4a26-9d50-9976ced4692b:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8128,35 +8176,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://34ea5ff2-2db8-4fa0-8a10-617f890b876e:8001/ +< X-Gabbi-url: http://445fef64-46ba-4a26-9d50-9976ced4692b:8001/ {} -#### json encoded value from disk #### -> POST http://0ee6594f-c5b8-40d6-b6ed-388c1f7013b0: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://0ee6594f-c5b8-40d6-b6ed-388c1f7013b0:8001/ -< Location: http://0ee6594f-c5b8-40d6-b6ed-388c1f7013b0:8001/ - -{ - "foo": { - "b\u00e1r": 1 - } -} - #### post data #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8169,8 +8194,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "one_string": "1", @@ -8179,7 +8204,7 @@ } #### use data #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8192,8 +8217,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "one_string": "1", @@ -8202,7 +8227,7 @@ } #### from environ #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8213,15 +8238,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "one_environ": 1 } #### with list #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8234,8 +8259,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ [ 1, @@ -8244,7 +8269,7 @@ ] #### object with list #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8264,8 +8289,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "collection": [ @@ -8281,7 +8306,7 @@ } #### post extra data #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8310,8 +8335,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "a": 1, @@ -8336,7 +8361,7 @@ } #### check posted data #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8365,8 +8390,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "a": 1, @@ -8391,7 +8416,7 @@ } #### Post again and check the results #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8420,8 +8445,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "a": 1, @@ -8446,7 +8471,7 @@ } #### Post again and check the results (reversed) #### -> POST http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +> POST http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8475,8 +8500,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ -< Location: http://cd81a9a5-82ad-4c20-a613-5c8d20a6efb4:8001/ +< X-Gabbi-url: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ +< Location: http://5338a5dd-7a39-4a19-98a4-6ae9586baf04:8001/ { "a": 1, @@ -8500,108 +8525,86 @@ } } -#### yaml encoded value from disk #### -> POST http://4f940460-b9c1-45fb-a2fb-81a22189e2de:8001/somewhere +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_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_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 +#### default casts #### +> POST http://cfdd7537-bf80-473f-88d0-84054bd06c7c: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://4f940460-b9c1-45fb-a2fb-81a22189e2de:8001/somewhere -< Location: http://4f940460-b9c1-45fb-a2fb-81a22189e2de:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ +< Location: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### json encoded value from disk #### -> POST http://4f940460-b9c1-45fb-a2fb-81a22189e2de:8001/somewhere +#### cast to string #### +> POST http://cfdd7537-bf80-473f-88d0-84054bd06c7c: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://4f940460-b9c1-45fb-a2fb-81a22189e2de:8001/somewhere -< Location: http://4f940460-b9c1-45fb-a2fb-81a22189e2de:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ +< Location: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ { - "foo": { - "b\u00e1r": 1 - } + "string": "2" } -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... expected failure -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_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_jsonpath.JSONPathTest.test_filtered_list -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok -gabbi.tests.test_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_jsonpath.JSONPathTest.test_sorted_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok -gabbi.tests.test_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_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok - -> POST http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +#### json set up #### +> POST http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8609,7 +8612,7 @@ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } @@ -8617,103 +8620,141 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ -< Location: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +< X-Gabbi-url: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ +< Location: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } -#### cast to string #### -> POST http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +#### send casted json #### +> POST http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ -< Location: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +< X-Gabbi-url: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ +< Location: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ { - "string": "2" + "casted": 2 } -#### json set up #### -> POST http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +#### historic casted json #### +> POST http://cfdd7537-bf80-473f-88d0-84054bd06c7c: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 + "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ -< Location: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +< X-Gabbi-url: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ +< Location: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "casted": 2 } -#### send casted json #### -> POST http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +#### internal json fine #### +> POST http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "casted": "in this 2 is not errors" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ -< Location: http://c8e00b33-f639-4c2c-baa9-153b66a5bcfe:8001/ +< X-Gabbi-url: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ +< Location: http://cfdd7537-bf80-473f-88d0-84054bd06c7c:8001/ { - "casted": 2 + "casted": "in this 2 is not errors" +} + +#### yaml encoded value from disk #### +> POST http://fef7ccd0-2e7e-487d-b48d-e3d9e6f9a3f8: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://fef7ccd0-2e7e-487d-b48d-e3d9e6f9a3f8:8001/somewhere +< Location: http://fef7ccd0-2e7e-487d-b48d-e3d9e6f9a3f8:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json encoded value from disk #### +> POST http://fef7ccd0-2e7e-487d-b48d-e3d9e6f9a3f8: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://fef7ccd0-2e7e-487d-b48d-e3d9e6f9a3f8:8001/somewhere +< Location: http://fef7ccd0-2e7e-487d-b48d-e3d9e6f9a3f8:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } } ---------------------------------------------------------------------- -Ran 314 tests in 27.336s +Ran 314 tests in 16.246s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 10.305 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 8.390 -gabbi.tests.test_driver.DriverTest.test_build_require_ssl 7.909 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 5.456 -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files 4.568 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 4.207 -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 4.034 -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 3.518 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 3.293 -gabbi.tests.test_intercept.coerce_object_with_list.test_request 3.131 +gabbi.tests.test_driver.DriverTest.test_build_require_ssl 7.623 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 5.100 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 4.866 +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 4.838 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 3.198 +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 3.132 +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 3.035 +gabbi.tests.test_intercept.coerce_post_extra_data.test_request 2.593 +gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files 2.496 +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 2.419 + rm -rf .stestr make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_install -O--buildsystem=pybuild @@ -8818,14 +8859,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 \ @@ -8834,7 +8875,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' @@ -8849,14 +8890,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 \ @@ -8865,7 +8906,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' @@ -8899,12 +8940,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/511047/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/511047/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/2417472 and its subdirectories -I: Current time: Sun Jan 25 23:51:46 -12 2026 -I: pbuilder-time-stamp: 1769428306 +I: removing directory /srv/workspace/pbuilder/511047 and its subdirectories +I: Current time: Tue Dec 24 19:31:28 +14 2024 +I: pbuilder-time-stamp: 1735018288