Diff of the two buildlogs: -- --- b1/build.log 2025-02-09 00:35:03.967005320 +0000 +++ b2/build.log 2025-02-09 00:36:44.014475790 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Mar 13 18:56:28 -12 2026 -I: pbuilder-time-stamp: 1773471388 +I: Current time: Sun Feb 9 14:35:06 +14 2025 +I: pbuilder-time-stamp: 1739061306 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -22,52 +22,84 @@ dpkg-source: info: unpacking python-gabbi_3.0.0-3.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3921920/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/504906/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-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 Feb 9 00:35 /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/504906/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/504906/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='6550a1437b0243b8b8d1a93ba468f872' - 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='3921920' - PS1='# ' - PS2='> ' + INVOCATION_ID=90476f7fa06e41839cfab58147f67b8e + 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=504906 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.qQbtVldB/pbuilderrc_LUif --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.qQbtVldB/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.qQbtVldB/pbuilderrc_G3U9 --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.qQbtVldB/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 codethink03-arm64 6.1.0-30-cloud-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-30-cloud-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3921920/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/504906/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -303,7 +335,7 @@ Get: 160 http://deb.debian.org/debian trixie/main arm64 subunit all 1.4.2-3 [5248 B] Get: 161 http://deb.debian.org/debian trixie/main arm64 python3-stestr all 4.1.0-3 [56.9 kB] Get: 162 http://deb.debian.org/debian trixie/main arm64 python3-wsgi-intercept all 1.13.1-1 [18.9 kB] -Fetched 51.4 MB in 0s (181 MB/s) +Fetched 51.4 MB in 0s (159 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19956 files and directories currently installed.) @@ -834,8 +866,8 @@ Setting up tzdata (2024b-6) ... Current default time zone: 'Etc/UTC' -Local time is now: Sat Mar 14 06:56:52 UTC 2026. -Universal Time is now: Sat Mar 14 06:56:52 UTC 2026. +Local time is now: Sun Feb 9 00:35:33 UTC 2025. +Universal Time is now: Sun Feb 9 00:35:33 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -997,7 +1029,11 @@ fakeroot is already the newest version (1.37-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/504906/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/504906/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 @@ -1129,21 +1165,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.12 3.13 -+ [ yes = yes ] +++ py3versions -vr ++ PYTHON3S='3.12 3.13' ++ '[' yes = yes ']' + TARGET_DIR=tmp -+ 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. !! @@ -1188,12 +1229,7 @@ [pbr] AUTHORS complete (0.0s) running build running build_py -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 copying gabbi/utils.py -> build/lib/gabbi copying gabbi/suitemaker.py -> build/lib/gabbi copying gabbi/suite.py -> build/lib/gabbi @@ -1232,6 +1268,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 @@ -1251,6 +1293,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 @@ -1289,12 +1337,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 -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 +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 @@ -1332,17 +1379,13 @@ byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suite.py to suite.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suitemaker.py to suitemaker.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/utils.py to utils.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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 running install_egg_info Copying gabbi.egg-info to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info Skipping SOURCES.txt running install_scripts Installing gabbi-run script to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/bin -+ pwd ++ 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. !! @@ -1395,6 +1438,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-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 @@ -1432,21 +1480,16 @@ byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suite.py to suite.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suitemaker.py to suitemaker.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/utils.py to utils.cpython-313.pyc -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 running install_egg_info removing '/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info' (and everything under it) Copying gabbi.egg-info to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info Skipping SOURCES.txt running install_scripts Installing gabbi-run script to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/bin -+ pwd -+ rm -rf /build/reproducible-path/python-gabbi-3.0.0/debian/python*/usr/lib/python*/dist-packages/*.pth -+ pwd -+ rm -rf /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python*/dist-packages/*.pth +++ 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 @@ -1455,63 +1498,40 @@ + 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.12 3.13 -+ [ yes = no ] -+ [ no = yes ] -+ [ 3.12 = disabled ] -+ echo 3.12 -+ cut -d. -f1 ++ for i in $@ ++ case "${1}" in +++ py3versions -vr ++ PYTHON3S='3.12 3.13' ++ '[' yes = no ']' ++ '[' no = yes ']' ++ 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 ] -+ 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.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) -subunit2pyunit -/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_handlers.HandlersTest.test_empty_response_handler -gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok -gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify -gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers -gabbi.tests.test_handlers.HandlersTest.test_response_headers ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data -gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header -gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match -gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch -gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex -gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match -gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch -gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex -gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex -gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex -gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex ... ok ++ 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_data_to_string.TestDataToString.testHappyPath @@ -1520,28 +1540,52 @@ 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.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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_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 +/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_intercept.verbosity_confirm_notempty.test_request +gabbi.tests.test_intercept.verbosity_confirm_notempty.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_two.test_request +gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok +gabbi.tests.test_intercept.self_post_a_body_with_query.test_request +gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok /usr/lib/python3.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' /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.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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_simple_param.test_request +gabbi.tests.test_intercept.queryparams_simple_param.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_inner_fixture.inner_get_one.test_request +gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", /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_inner_fixture.inner_get_three.test_request +gabbi.tests.test_inner_fixture.inner_get_three.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.self_query_returned.test_request +gabbi.tests.test_intercept.self_query_returned.test_request ... ok +gabbi.tests.test_intercept.self_checklimit.test_request +gabbi.tests.test_intercept.self_checklimit.test_request ... 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 @@ -1550,26 +1594,34 @@ 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.self_simple_post.test_request +gabbi.tests.test_intercept.self_simple_post.test_request ... 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_fixtures.FixtureTest.test_fixture_informs_on_exception -gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok -gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop -gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok -gabbi.tests.test_history.HistoryTest.test_cookie_replace_history -gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... 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_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_intercept.self_bogus_method.test_request +gabbi.tests.test_intercept.self_bogus_method.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.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.test_request ... ok +gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request +gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.self_confirm_environ.test_request +gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex @@ -1586,286 +1638,274 @@ gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok -gabbi.tests.test_intercept.self_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.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_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.queryparams_multi_params.test_request gabbi.tests.test_intercept.queryparams_multi_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_inner_fixture.inner_get_two.test_request -gabbi.tests.test_inner_fixture.inner_get_two.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.self_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.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.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.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.header-key_header_named_http.test_request +gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_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_test_binary_handling.test_request +gabbi.tests.test_intercept.self_test_binary_handling.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.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_history.HistoryTest.test_response_replace_prior gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... 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_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_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_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.method-shortcut_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.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.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.regex_regex_string_test_json.test_request -gabbi.tests.test_intercept.regex_regex_string_test_json.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_history.HistoryTest.test_response_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok +gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request +gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok 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.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.test_request ... ok -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok -gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request -gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request ... ok gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request ... ok -gabbi.tests.test_intercept.self_test_binary_handling.test_request -gabbi.tests.test_intercept.self_test_binary_handling.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_string_test_mix.test_request -gabbi.tests.test_intercept.regex_regex_string_test_mix.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_history.HistoryTest.test_response_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok +gabbi.tests.test_intercept.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok +gabbi.tests.test_intercept.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.jsonbody_test_empty_dict.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_dict.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_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_inheritance_of_defaults.test_request -gabbi.tests.test_intercept.self_inheritance_of_defaults.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_post_a_body_with_query.test_request -gabbi.tests.test_intercept.self_post_a_body_with_query.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_handlers.HandlersTest.test_response_json_paths_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... expected failure -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... ok -gabbi.tests.test_intercept.self_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_test_pluggable_response.test_request -gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok -gabbi.tests.test_intercept.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_nomatch -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... 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.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.regex_regex_string_test_multiline.test_request -gabbi.tests.test_intercept.regex_regex_string_test_multiline.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.self_json_derived_content_type.test_request -gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... ok -gabbi.tests.test_intercept.queryparams_joined_params.test_request -gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok -gabbi.tests.test_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.method-shortcut_post_with_query.test_request -gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex ... ok +gabbi.tests.test_intercept.host-header_ssl_with_host.test_request +gabbi.tests.test_intercept.host-header_ssl_with_host.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.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.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_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.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.poll_create_a_thing.test_request +gabbi.tests.test_intercept.poll_create_a_thing.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_confirm_environ.test_request -gabbi.tests.test_intercept.self_confirm_environ.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.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.forbiddenheaders_header_not_there_basic.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok +gabbi.tests.test_intercept.queryparams_url_in_param.test_request +gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok +gabbi.tests.test_intercept.last-url_get_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_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.queryparams_replacers_in_params.test_request gabbi.tests.test_intercept.queryparams_replacers_in_params.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.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.fixture_just_to_see_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.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.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.cookie_use_a_historical_cookie.test_request +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler +gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok +gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify +gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers +gabbi.tests.test_handlers.HandlersTest.test_response_headers ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex ... ok +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.regex_regex_string_test_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_json.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.data_post_data_for_next.test_request +gabbi.tests.test_intercept.data_post_data_for_next.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.jsonbody_test_empty_list.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_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.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 +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request ... ok -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok -gabbi.tests.test_intercept.host-header_ssl_with_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_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_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.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.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 +/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.data_load_image_file.test_request +gabbi.tests.test_intercept.data_load_image_file.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.fixture_just_to_see_two.test_request +gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok gabbi.tests.test_intercept.failskip_wrong_status.test_request gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure gabbi.tests.test_intercept.failskip_wrong_status.test_request gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok -gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_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_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.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.contenttype_post_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request ... ok -gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok -gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request -gabbi.tests.test_intercept.regex_regex_jsonpath_test.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.data_partial_json_from_disk.test_request -gabbi.tests.test_intercept.data_partial_json_from_disk.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_string_test_splat.test_request -gabbi.tests.test_intercept.regex_regex_string_test_splat.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.coerce_post_data.test_request -gabbi.tests.test_intercept.coerce_post_data.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.poll_create_a_thing.test_request -gabbi.tests.test_intercept.poll_create_a_thing.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.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.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.forbiddenheaders_header_not_there_basic.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.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.data_load_image_file.test_request -gabbi.tests.test_intercept.data_load_image_file.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_ssl_no_host.test_request -gabbi.tests.test_intercept.host-header_ssl_no_host.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.host-header_host_without_ssl.test_request -gabbi.tests.test_intercept.host-header_host_without_ssl.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.data_post_data_for_next.test_request -gabbi.tests.test_intercept.data_post_data_for_next.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.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.data_load_data_list.test_request -gabbi.tests.test_intercept.data_load_data_list.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.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.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.coerce_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.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_handlers.HandlersTest.test_response_json_paths_from_disk_json_path +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path ... ok +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok +gabbi.tests.test_intercept.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_dictionary.test_request +gabbi.tests.test_intercept.data_load_data_dictionary.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_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok +gabbi.tests.test_intercept.coerce_post_data.test_request +gabbi.tests.test_intercept.coerce_post_data.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail ... 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.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.casting_default_casts.test_request -gabbi.tests.test_intercept.casting_default_casts.test_request ... ok -gabbi.tests.test_intercept.contenttype_post_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... 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_handlers.HandlersTest.test_response_json_paths_regex_number +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... 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_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.method-shortcut_simple_get.test_request +gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request ... ok +gabbi.tests.test_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.backref_post_some_more_json.test_request +gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... 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.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.data_json_value_from_disk.test_request gabbi.tests.test_intercept.data_json_value_from_disk.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_unsafe_yaml.nan_test_nan.test_request -gabbi.tests.test_unsafe_yaml.nan_test_nan.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.fixture_just_to_see_one.test_request -gabbi.tests.test_intercept.fixture_just_to_see_one.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.contenttype_put_content-type.test_request gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok +gabbi.tests.test_intercept.contenttype_post_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok +gabbi.tests.test_intercept.data_load_json_file.test_request +gabbi.tests.test_intercept.data_load_json_file.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.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.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 #### get simple page #### -> GET http://451e08c0-1081-49e9-bb97-8c228e85689c:8001/ +> GET http://b322bfb3-05f9-4db5-8239-825a4de6058e:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1873,26 +1913,56 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://451e08c0-1081-49e9-bb97-8c228e85689c:8001/ +< X-Gabbi-url: http://b322bfb3-05f9-4db5-8239-825a4de6058e:8001/ {} -#### header named http #### -> GET http://0cc51d5d-30fe-4fbf-a6b7-83a791643d34:8001/header_key -> http: some-scheme +#### json encoded value from disk #### +> POST http://52988ebd-0b09-4203-a21c-1e6d39f2140a:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "foo": { + "b\u00e1r": 1 + } +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0cc51d5d-30fe-4fbf-a6b7-83a791643d34:8001/header_key -< HTTP: some-scheme +< X-Gabbi-url: http://52988ebd-0b09-4203-a21c-1e6d39f2140a:8001/ +< Location: http://52988ebd-0b09-4203-a21c-1e6d39f2140a:8001/ -{} +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json parital from disk #### +> POST http://52988ebd-0b09-4203-a21c-1e6d39f2140a: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://52988ebd-0b09-4203-a21c-1e6d39f2140a:8001/ +< Location: http://52988ebd-0b09-4203-a21c-1e6d39f2140a:8001/ + +{ + "type": "cat", + "sound": "meow" +} #### post data #### -> POST http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +> POST http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1905,8 +1975,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ -< Location: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +< X-Gabbi-url: http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ +< Location: http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ { "one_string": "1", @@ -1915,7 +1985,7 @@ } #### use data #### -> POST http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +> POST http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1928,8 +1998,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ -< Location: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +< X-Gabbi-url: http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ +< Location: http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ { "one_string": "1", @@ -1938,7 +2008,7 @@ } #### from environ #### -> POST http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +> POST http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1949,111 +2019,181 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ -< Location: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +< X-Gabbi-url: http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ +< Location: http://c43c0281-3461-45a3-8de9-e10070d32fc6:8001/ { "one_environ": 1 } -#### with list #### -> POST http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +gabbi.tests.test_intercept.coerce_post_extra_data.test_request +gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params +gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_full +gabbi.tests.test_parse_url.UrlParseTest.test_parse_full ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix +gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_url +gabbi.tests.test_parse_url.UrlParseTest.test_parse_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl ... ok +gabbi.tests.test_intercept.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... 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_handlers.HandlersTest.test_response_json_paths_substitution_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... 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_jsonpath.JSONPathTest.test_embedded_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok +#### get simple page #### +> GET http://89605b61-a23a-4d17-b0dd-eaaa75d48007: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://89605b61-a23a-4d17-b0dd-eaaa75d48007:8001/ + +{} + +#### post data #### +> POST http://b9d964af-6ca9-49d8-91be-63c9dc6959e9:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - 1, - 2, - "3" -] +{ + "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://28634344-6680-439d-8713-fbdf9cc9e090:8001/ -< Location: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +< X-Gabbi-url: http://b9d964af-6ca9-49d8-91be-63c9dc6959e9:8001/ +< Location: http://b9d964af-6ca9-49d8-91be-63c9dc6959e9:8001/ -[ - 1, - 2, - "3" -] +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} -#### object with list #### -> POST http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +#### use data #### +> POST http://b9d964af-6ca9-49d8-91be-63c9dc6959e9:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "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://28634344-6680-439d-8713-fbdf9cc9e090:8001/ -< Location: http://28634344-6680-439d-8713-fbdf9cc9e090:8001/ +< X-Gabbi-url: http://b9d964af-6ca9-49d8-91be-63c9dc6959e9:8001/ +< Location: http://b9d964af-6ca9-49d8-91be-63c9dc6959e9:8001/ { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "one_string": "1", + "one_int": 1, + "one_float": 1.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.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.disable-response-handler_get_some_not_json_fail.test_request -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... expected failure -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... ok -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... expected failure -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... ok -gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_no_content-type.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.casting_send_casted_json.test_request -gabbi.tests.test_intercept.casting_send_casted_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 +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... 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.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_utils.ParseContentTypeTest.test_parse_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok +gabbi.tests.test_intercept.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_get_simple_page.test_request +gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok +gabbi.tests.test_intercept.json-extensions_test_sort.test_request +gabbi.tests.test_intercept.json-extensions_test_sort.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok +gabbi.tests.test_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_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.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.contenttype_patch_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok +#### confirm notempty #### +> GET http://4bdf2bf8-3c6f-4502-8ff6-dbb8097faf2e:8001/notempty +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK + +notempty + #### get simple page #### -> GET http://f411a891-91df-4fcd-9fde-7ea633ba66ed:8001/ +> GET http://303b9c14-6ae0-4f6d-9db6-d286764074c7:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2061,12 +2201,56 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f411a891-91df-4fcd-9fde-7ea633ba66ed:8001/ +< X-Gabbi-url: http://303b9c14-6ae0-4f6d-9db6-d286764074c7:8001/ + +{} + +#### json encoded value from disk #### +> POST http://bd6ae069-bee8-45fc-a677-d1bf4621ece4: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://bd6ae069-bee8-45fc-a677-d1bf4621ece4:8001/ +< Location: http://bd6ae069-bee8-45fc-a677-d1bf4621ece4:8001/ + +{ + "foo": { + "b\u00e1r": 1 + } +} + +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_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 +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 +#### get simple page #### +> GET http://da5dd049-ba88-44eb-8b1c-3574f98efd15: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://da5dd049-ba88-44eb-8b1c-3574f98efd15:8001/ {} #### left side json one #### -> POST http://efb040a0-000c-4f73-a05f-57260c17441b:8001/ +> POST http://8ac01065-2cf8-4482-92b7-95774b37a98c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2078,232 +2262,306 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://efb040a0-000c-4f73-a05f-57260c17441b:8001/ -< Location: http://efb040a0-000c-4f73-a05f-57260c17441b:8001/ +< X-Gabbi-url: http://8ac01065-2cf8-4482-92b7-95774b37a98c:8001/ +< Location: http://8ac01065-2cf8-4482-92b7-95774b37a98c:8001/ { "alpha": "alpha1", "beta": "beta1" } -#### expand left side #### -> POST http://efb040a0-000c-4f73-a05f-57260c17441b:8001/ +#### post data #### +> POST http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "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://efb040a0-000c-4f73-a05f-57260c17441b:8001/ -< Location: http://efb040a0-000c-4f73-a05f-57260c17441b:8001/ +< X-Gabbi-url: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ +< Location: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### expand environ left side #### -> POST http://efb040a0-000c-4f73-a05f-57260c17441b:8001/ +#### use data #### +> POST http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "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://efb040a0-000c-4f73-a05f-57260c17441b:8001/ -< Location: http://efb040a0-000c-4f73-a05f-57260c17441b:8001/ +< X-Gabbi-url: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ +< Location: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### set key and value #### -> GET http://efb040a0-000c-4f73-a05f-57260c17441b:8001/jsonator?key=1&value=10 +#### from environ #### +> POST http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "one_environ": 1 +} < 200 OK -< Content-Type: application/json +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ +< Location: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ { - "1": "10" + "one_environ": 1 } -#### check key and value #### -> GET http://efb040a0-000c-4f73-a05f-57260c17441b:8001/jsonator?key=1&value=10 +#### with list #### +> POST http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +[ + 1, + 2, + "3" +] < 200 OK -< Content-Type: application/json +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ +< Location: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ -{ - "1": "10" -} +[ + 1, + 2, + "3" +] -#### default casts #### -> POST http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +#### object with list #### +> POST http://82b73ff1-18f0-4478-8e18-6ac3af72360f: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 + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ -< Location: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ +< Location: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } -#### cast to string #### -> POST http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +#### post extra data #### +> POST http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ -< Location: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ +< Location: http://82b73ff1-18f0-4478-8e18-6ac3af72360f:8001/ { - "string": "2" + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } } -#### json set up #### -> POST http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +#### yaml encoded value from disk #### +> POST http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere > 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 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ -< Location: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere +< Location: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "foo": { + "b\u00e1r": 1 + } } -#### send casted json #### -> POST http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +#### json encoded value from disk #### +> POST http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ -< Location: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere +< Location: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } -#### historic casted json #### -> POST http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +#### yaml parital from disk #### +> POST http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ -< Location: http://dba9adf3-0ccf-4a63-9444-18cc90c9398c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere +< Location: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere { - "casted": 2 + "type": "cat", + "sound": "meow" } -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_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 +#### yaml partial both sides #### +> POST http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere +< Location: http://ed335156-47ac-49b6-9ed1-91d02c1600ac:8001/somewhere + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +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.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.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 +/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.UtilsHostInfoFromTarget.test_ipv6_host_localhost gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost @@ -2327,7 +2585,7 @@ gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok #### get simple page #### -> GET http://91512382-9515-4210-a4b3-fe822bb8edd2:8001/ +> GET http://29d5de76-cab3-40c3-93cb-1a335022533c:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2335,12 +2593,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://91512382-9515-4210-a4b3-fe822bb8edd2:8001/ +< X-Gabbi-url: http://29d5de76-cab3-40c3-93cb-1a335022533c:8001/ {} #### json encoded value from disk #### -> POST http://29627c47-d140-47ee-94f4-eae759d49280:8001/ +> POST http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2353,8 +2611,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29627c47-d140-47ee-94f4-eae759d49280:8001/ -< Location: http://29627c47-d140-47ee-94f4-eae759d49280:8001/ +< X-Gabbi-url: http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ +< Location: http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ { "foo": { @@ -2363,7 +2621,7 @@ } #### json parital from disk #### -> POST http://29627c47-d140-47ee-94f4-eae759d49280:8001/ +> POST http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2375,94 +2633,141 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29627c47-d140-47ee-94f4-eae759d49280:8001/ -< Location: http://29627c47-d140-47ee-94f4-eae759d49280:8001/ +< X-Gabbi-url: http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ +< Location: http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ { "type": "cat", "sound": "meow" } -#### default casts #### -> POST http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ +#### json partial both sides #### +> POST http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ +< Location: http://92c22b82-c324-4edc-9350-7dc7fe7f4ec5:8001/ + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +#### left side json one #### +> POST http://e19f63ab-f5c7-4aad-9272-119ab1044574: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 + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ -< Location: http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://e19f63ab-f5c7-4aad-9272-119ab1044574:8001/ +< Location: http://e19f63ab-f5c7-4aad-9272-119ab1044574:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "alpha": "alpha1", + "beta": "beta1" } -#### cast to string #### -> POST http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ +#### expand left side #### +> POST http://e19f63ab-f5c7-4aad-9272-119ab1044574:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ -< Location: http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://e19f63ab-f5c7-4aad-9272-119ab1044574:8001/ +< Location: http://e19f63ab-f5c7-4aad-9272-119ab1044574:8001/ { - "string": "2" + "alpha1": "alpha", + "beta1": "beta" } -#### json set up #### -> POST http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ +#### expand environ left side #### +> POST http://e19f63ab-f5c7-4aad-9272-119ab1044574: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 + "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://e19f63ab-f5c7-4aad-9272-119ab1044574:8001/ +< Location: http://e19f63ab-f5c7-4aad-9272-119ab1044574:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + +#### set key and value #### +> GET http://e19f63ab-f5c7-4aad-9272-119ab1044574: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-url: http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ -< Location: http://48326d2f-50c6-4dfd-8ac9-5ba7f3dd4526:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "1": "10" } -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_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 +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_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_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok #### get simple page #### -> GET http://54c721bc-8865-49fc-8f6a-994f71cb2e5f:8001/ +> GET http://cc0e24c9-2cf6-4fad-bbda-0c02139ea8c4:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2470,53 +2775,132 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://54c721bc-8865-49fc-8f6a-994f71cb2e5f:8001/ +< X-Gabbi-url: http://cc0e24c9-2cf6-4fad-bbda-0c02139ea8c4:8001/ {} -#### loop location #### -> GET http://2c80ae39-8856-4595-91c8-c3b7d218caeb:8001/poller?count=2&x=1&y=2&z=3.4 +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_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.test_request +gabbi.tests.test_intercept.fixture_just_to_see.test_request ... ok +gabbi.tests.test_intercept.casting_historic_casted_json.test_request +gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... ok +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_start.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_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://80d1c346-9e26-4bf8-ae86-32079027e847:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -< 400 Bad Reqest +< 200 OK +< X-Gabbi-method: GET +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://80d1c346-9e26-4bf8-ae86-32079027e847:8001/ +{} -#### loop location #### -> GET http://2c80ae39-8856-4595-91c8-c3b7d218caeb:8001/poller?count=2&x=1&y=2&z=3.4 +#### left side json one #### +> POST http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "alpha": "alpha1", + "beta": "beta1" +} -< 400 Bad Reqest +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ +< Location: http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ +{ + "alpha": "alpha1", + "beta": "beta1" +} -#### loop location #### -> GET http://2c80ae39-8856-4595-91c8-c3b7d218caeb:8001/poller?count=2&x=1&y=2&z=3.4 +#### expand left side #### +> POST http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "alpha1": "alpha", + "beta1": "beta" +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2c80ae39-8856-4595-91c8-c3b7d218caeb:8001/poller?count=2&x=1&y=2&z=3.4 +< X-Gabbi-url: http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ +< Location: http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ { - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] + "alpha1": "alpha", + "beta1": "beta" +} + +#### expand environ left side #### +> POST http://efea31b5-d08b-423f-a5b0-8afa9b471e65: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://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ +< Location: http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + +#### set key and value #### +> GET http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/jsonator?key=1&value=10 +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK +< Content-Type: application/json + +{ + "1": "10" +} + +#### check key and value #### +> GET http://efea31b5-d08b-423f-a5b0-8afa9b471e65:8001/jsonator?key=1&value=10 +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK +< Content-Type: application/json + +{ + "1": "10" } #### default casts #### -> POST http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +> POST http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2532,8 +2916,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ -< Location: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +< X-Gabbi-url: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ +< Location: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ { "int": 1, @@ -2544,7 +2928,7 @@ } #### cast to string #### -> POST http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +> POST http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2556,15 +2940,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ -< Location: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +< X-Gabbi-url: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ +< Location: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ { "string": "2" } #### json set up #### -> POST http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +> POST http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2580,8 +2964,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ -< Location: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +< X-Gabbi-url: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ +< Location: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ { "int": 1, @@ -2592,7 +2976,7 @@ } #### send casted json #### -> POST http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +> POST http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2604,15 +2988,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ -< Location: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +< X-Gabbi-url: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ +< Location: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ { "casted": 2 } #### historic casted json #### -> POST http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +> POST http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2624,92 +3008,191 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ -< Location: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +< X-Gabbi-url: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ +< Location: http://d4b26d7d-d754-479e-bcfd-908c801528ee:8001/ { "casted": 2 } -#### internal json fine #### -> POST http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +#### yaml encoded value from disk #### +> POST http://858a5fcc-5c7f-4b63-85a7-9c9384abe09f:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": "in this 2 is not errors" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ -< Location: http://b7c6cc32-1a20-48d8-9d69-71e804b2afd1:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://858a5fcc-5c7f-4b63-85a7-9c9384abe09f:8001/somewhere +< Location: http://858a5fcc-5c7f-4b63-85a7-9c9384abe09f:8001/somewhere { - "casted": "in this 2 is not errors" + "foo": { + "b\u00e1r": 1 + } +} + +#### json encoded value from disk #### +> POST http://858a5fcc-5c7f-4b63-85a7-9c9384abe09f: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://858a5fcc-5c7f-4b63-85a7-9c9384abe09f:8001/somewhere +< Location: http://858a5fcc-5c7f-4b63-85a7-9c9384abe09f:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### yaml parital from disk #### +> POST http://858a5fcc-5c7f-4b63-85a7-9c9384abe09f: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://858a5fcc-5c7f-4b63-85a7-9c9384abe09f:8001/somewhere +< Location: http://858a5fcc-5c7f-4b63-85a7-9c9384abe09f:8001/somewhere + +{ + "type": "cat", + "sound": "meow" } 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_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_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_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_use_raw_json_from_response.test_request +gabbi.tests.test_intercept.backref_use_raw_json_from_response.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_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://59b4a1f6-53c5-4665-8e4a-095a4a03b9bb:8001/ -> x-random-header: ya +gabbi.tests.test_intercept.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.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_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 +#### left side json one #### +> POST http://d3390dae-6716-47be-8ced-a66b32c29fd6:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "alpha": "alpha1", + "beta": "beta1" +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59b4a1f6-53c5-4665-8e4a-095a4a03b9bb:8001/ +< X-Gabbi-url: http://d3390dae-6716-47be-8ced-a66b32c29fd6:8001/ +< Location: http://d3390dae-6716-47be-8ced-a66b32c29fd6:8001/ -{} +{ + "alpha": "alpha1", + "beta": "beta1" +} + +#### expand left side #### +> POST http://d3390dae-6716-47be-8ced-a66b32c29fd6: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://d3390dae-6716-47be-8ced-a66b32c29fd6:8001/ +< Location: http://d3390dae-6716-47be-8ced-a66b32c29fd6:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta" +} + +#### expand environ left side #### +> POST http://d3390dae-6716-47be-8ced-a66b32c29fd6: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://d3390dae-6716-47be-8ced-a66b32c29fd6:8001/ +< Location: http://d3390dae-6716-47be-8ced-a66b32c29fd6:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} #### post data #### -> POST http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +> POST http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2722,8 +3205,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ -< Location: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +< X-Gabbi-url: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ +< Location: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ { "one_string": "1", @@ -2732,7 +3215,7 @@ } #### use data #### -> POST http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +> POST http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2745,8 +3228,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ -< Location: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +< X-Gabbi-url: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ +< Location: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ { "one_string": "1", @@ -2755,7 +3238,7 @@ } #### from environ #### -> POST http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +> POST http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2766,15 +3249,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ -< Location: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +< X-Gabbi-url: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ +< Location: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ { "one_environ": 1 } #### with list #### -> POST http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +> POST http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2787,8 +3270,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ -< Location: http://3576f00d-9153-4010-86d4-8aba40af7ea9:8001/ +< X-Gabbi-url: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ +< Location: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ [ 1, @@ -2796,115 +3279,93 @@ "3" ] -#### yaml encoded value from disk #### -> POST http://34b01de2-e9d3-4afe-ab53-550226e5142d:8001/somewhere +#### object with list #### +> POST http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "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://34b01de2-e9d3-4afe-ab53-550226e5142d:8001/somewhere -< Location: http://34b01de2-e9d3-4afe-ab53-550226e5142d:8001/somewhere +< X-Gabbi-url: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ +< Location: http://ec204647-cd4a-4409-ba71-4d58d99bc344:8001/ { - "foo": { - "b\u00e1r": 1 - } + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } -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_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.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_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_suite.SuiteTest.test_suite_catches_fixture_fail -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... 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 -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -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_syntax_warning.DriverTest.test_driver_warnings_on_files -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok -#### post data #### -> POST http://de4c617d-cc9c-42a8-852e-73d162285f51:8001/ +#### default casts #### +> POST http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.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://de4c617d-cc9c-42a8-852e-73d162285f51:8001/ -< Location: http://de4c617d-cc9c-42a8-852e-73d162285f51:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ +< Location: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### use data #### -> POST http://de4c617d-cc9c-42a8-852e-73d162285f51:8001/ +#### cast to string #### +> POST http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://de4c617d-cc9c-42a8-852e-73d162285f51:8001/ -< Location: http://de4c617d-cc9c-42a8-852e-73d162285f51:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ +< Location: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "string": "2" } -#### default casts #### -> POST http://0684291f-f8a4-4f26-8c17-9a2f19508782:8001/ +#### json set up #### +> POST http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2912,7 +3373,7 @@ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } @@ -2920,81 +3381,123 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://0684291f-f8a4-4f26-8c17-9a2f19508782:8001/ -< Location: http://0684291f-f8a4-4f26-8c17-9a2f19508782:8001/ +< X-Gabbi-url: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ +< Location: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } -#### cast to string #### -> POST http://0684291f-f8a4-4f26-8c17-9a2f19508782:8001/ +#### send casted json #### +> POST http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d: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://0684291f-f8a4-4f26-8c17-9a2f19508782:8001/ -< Location: http://0684291f-f8a4-4f26-8c17-9a2f19508782:8001/ +< X-Gabbi-url: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ +< Location: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ { - "string": "2" + "casted": 2 } -#### left side json one #### -> POST http://f8e8267c-9855-4c7f-a319-37edf180b4db:8001/ +#### historic casted json #### +> POST http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f8e8267c-9855-4c7f-a319-37edf180b4db:8001/ -< Location: http://f8e8267c-9855-4c7f-a319-37edf180b4db:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ +< Location: http://235d4dee-4bb2-484c-ae1c-0f8d2e80610d:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "casted": 2 } -#### expand left side #### -> POST http://f8e8267c-9855-4c7f-a319-37edf180b4db:8001/ +#### yaml encoded value from disk #### +> POST http://9d4d3460-5da0-4d5c-a5dd-0ce05ac2c2ab: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://f8e8267c-9855-4c7f-a319-37edf180b4db:8001/ -< Location: http://f8e8267c-9855-4c7f-a319-37edf180b4db:8001/ +< X-Gabbi-url: http://9d4d3460-5da0-4d5c-a5dd-0ce05ac2c2ab:8001/somewhere +< Location: http://9d4d3460-5da0-4d5c-a5dd-0ce05ac2c2ab:8001/somewhere { - "alpha1": "alpha", - "beta1": "beta" + "foo": { + "b\u00e1r": 1 + } +} + +#### loop location #### +> GET http://864e66b3-3671-4392-ae46-62a950a5c664: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://864e66b3-3671-4392-ae46-62a950a5c664: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://864e66b3-3671-4392-ae46-62a950a5c664: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://864e66b3-3671-4392-ae46-62a950a5c664:8001/poller?count=2&x=1&y=2&z=3.4 + +{ + "count": [ + "2" + ], + "x": [ + "1" + ], + "y": [ + "2" + ], + "z": [ + "3.4" + ] } #### post data #### -> POST http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +> POST http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3007,8 +3510,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ -< Location: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +< X-Gabbi-url: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ +< Location: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ { "one_string": "1", @@ -3017,7 +3520,7 @@ } #### use data #### -> POST http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +> POST http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3030,8 +3533,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ -< Location: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +< X-Gabbi-url: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ +< Location: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ { "one_string": "1", @@ -3040,7 +3543,7 @@ } #### from environ #### -> POST http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +> POST http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3051,15 +3554,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ -< Location: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +< X-Gabbi-url: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ +< Location: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ { "one_environ": 1 } #### with list #### -> POST http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +> POST http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3072,8 +3575,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ -< Location: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +< X-Gabbi-url: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ +< Location: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ [ 1, @@ -3082,7 +3585,7 @@ ] #### object with list #### -> POST http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +> POST http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3102,8 +3605,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ -< Location: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +< X-Gabbi-url: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ +< Location: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ { "collection": [ @@ -3119,7 +3622,7 @@ } #### post extra data #### -> POST http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +> POST http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3148,8 +3651,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ -< Location: http://72804c11-87db-47bb-8dd5-ca2460c4c8f1:8001/ +< X-Gabbi-url: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ +< Location: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ { "a": 1, @@ -3173,178 +3676,63 @@ } } -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_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://f0dd6161-867d-48ea-9ac2-14ac2b5475f3: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://f0dd6161-867d-48ea-9ac2-14ac2b5475f3:8001/ - -{} - -#### json encoded value from disk #### -> POST http://e070b74a-0eee-4053-a921-a1114217888c:8001/ +#### check posted data #### +> POST http://361187b2-9ac6-466e-9df9-b923a1fcb15a: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://e070b74a-0eee-4053-a921-a1114217888c:8001/ -< Location: http://e070b74a-0eee-4053-a921-a1114217888c:8001/ +< X-Gabbi-url: http://361187b2-9ac6-466e-9df9-b923a1fcb15a:8001/ +< Location: http://361187b2-9ac6-466e-9df9-b923a1fcb15a: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 + } } } -#### left side json one #### -> POST http://0baadac5-69f4-4a86-887f-e678fa54c669: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://0baadac5-69f4-4a86-887f-e678fa54c669:8001/ -< Location: http://0baadac5-69f4-4a86-887f-e678fa54c669:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -#### expand left side #### -> POST http://0baadac5-69f4-4a86-887f-e678fa54c669: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://0baadac5-69f4-4a86-887f-e678fa54c669:8001/ -< Location: http://0baadac5-69f4-4a86-887f-e678fa54c669:8001/ - -{ - "alpha1": "alpha", - "beta1": "beta" -} - -#### expand environ left side #### -> POST http://0baadac5-69f4-4a86-887f-e678fa54c669: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://0baadac5-69f4-4a86-887f-e678fa54c669:8001/ -< Location: http://0baadac5-69f4-4a86-887f-e678fa54c669:8001/ - -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} - -#### post data #### -> POST http://587e7bc0-0e73-4746-8cce-69f7521c1922: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://587e7bc0-0e73-4746-8cce-69f7521c1922:8001/ -< Location: http://587e7bc0-0e73-4746-8cce-69f7521c1922:8001/ - -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} - -#### use data #### -> POST http://587e7bc0-0e73-4746-8cce-69f7521c1922: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://587e7bc0-0e73-4746-8cce-69f7521c1922:8001/ -< Location: http://587e7bc0-0e73-4746-8cce-69f7521c1922:8001/ - -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} - -#### from environ #### -> POST http://587e7bc0-0e73-4746-8cce-69f7521c1922: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://587e7bc0-0e73-4746-8cce-69f7521c1922:8001/ -< Location: http://587e7bc0-0e73-4746-8cce-69f7521c1922:8001/ - -{ - "one_environ": 1 -} - #### default casts #### -> POST http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ +> POST http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3360,8 +3748,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ -< Location: http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ +< X-Gabbi-url: http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ +< Location: http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ { "int": 1, @@ -3372,7 +3760,7 @@ } #### cast to string #### -> POST http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ +> POST http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3384,15 +3772,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ -< Location: http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ +< X-Gabbi-url: http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ +< Location: http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ { "string": "2" } #### json set up #### -> POST http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ +> POST http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3408,8 +3796,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ -< Location: http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ +< X-Gabbi-url: http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ +< Location: http://cc0dcc5e-d9fb-4dc6-bb7c-44ba9c17d367:8001/ { "int": 1, @@ -3419,260 +3807,24 @@ "fbool": false } -#### send casted json #### -> POST http://8af690a1-6554-4030-907e-0e2e9619503d: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://8af690a1-6554-4030-907e-0e2e9619503d:8001/ -< Location: http://8af690a1-6554-4030-907e-0e2e9619503d:8001/ - -{ - "casted": 2 -} - -#### yaml encoded value from disk #### -> POST http://c164109b-aa7f-4396-828a-1222576196c1: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://c164109b-aa7f-4396-828a-1222576196c1:8001/somewhere -< Location: http://c164109b-aa7f-4396-828a-1222576196c1:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json encoded value from disk #### -> POST http://c164109b-aa7f-4396-828a-1222576196c1: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://c164109b-aa7f-4396-828a-1222576196c1:8001/somewhere -< Location: http://c164109b-aa7f-4396-828a-1222576196c1:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -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://fbcf400b-09d8-40a6-8d64-cb9693c71de4:8001/ -> x-random-header: ya +gabbi.tests.test_intercept.casting_send_casted_json.test_request +gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok +#### header named http #### +> GET http://bf65ffbd-ac2a-4074-b74d-de4e18553979: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://fbcf400b-09d8-40a6-8d64-cb9693c71de4:8001/ +< X-Gabbi-url: http://bf65ffbd-ac2a-4074-b74d-de4e18553979:8001/header_key +< HTTP: some-scheme {} -#### left side json one #### -> POST http://0886b08d-39b2-40c8-ae06-4b5648ce517d: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://0886b08d-39b2-40c8-ae06-4b5648ce517d:8001/ -< Location: http://0886b08d-39b2-40c8-ae06-4b5648ce517d:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -#### yaml encoded value from disk #### -> POST http://b59e51cc-431d-4792-9ed5-5294a983eed7: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://b59e51cc-431d-4792-9ed5-5294a983eed7:8001/somewhere -< Location: http://b59e51cc-431d-4792-9ed5-5294a983eed7:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json encoded value from disk #### -> POST http://b59e51cc-431d-4792-9ed5-5294a983eed7: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://b59e51cc-431d-4792-9ed5-5294a983eed7:8001/somewhere -< Location: http://b59e51cc-431d-4792-9ed5-5294a983eed7:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### yaml parital from disk #### -> POST http://b59e51cc-431d-4792-9ed5-5294a983eed7: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://b59e51cc-431d-4792-9ed5-5294a983eed7:8001/somewhere -< Location: http://b59e51cc-431d-4792-9ed5-5294a983eed7:8001/somewhere - -{ - "type": "cat", - "sound": "meow" -} - -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_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok -#### json encoded value from disk #### -> POST http://96b3f929-fb3f-454e-97c7-e7a0be8698e9: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://96b3f929-fb3f-454e-97c7-e7a0be8698e9:8001/ -< Location: http://96b3f929-fb3f-454e-97c7-e7a0be8698e9:8001/ - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json parital from disk #### -> POST http://96b3f929-fb3f-454e-97c7-e7a0be8698e9: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://96b3f929-fb3f-454e-97c7-e7a0be8698e9:8001/ -< Location: http://96b3f929-fb3f-454e-97c7-e7a0be8698e9:8001/ - -{ - "type": "cat", - "sound": "meow" -} - -#### json partial both sides #### -> POST http://96b3f929-fb3f-454e-97c7-e7a0be8698e9:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://96b3f929-fb3f-454e-97c7-e7a0be8698e9:8001/ -< Location: http://96b3f929-fb3f-454e-97c7-e7a0be8698e9:8001/ - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - #### post data #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3685,8 +3837,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ { "one_string": "1", @@ -3695,7 +3847,7 @@ } #### use data #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3708,8 +3860,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ { "one_string": "1", @@ -3718,7 +3870,7 @@ } #### from environ #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3729,15 +3881,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ { "one_environ": 1 } #### with list #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3750,8 +3902,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ [ 1, @@ -3760,7 +3912,7 @@ ] #### object with list #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3780,8 +3932,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ { "collection": [ @@ -3797,7 +3949,7 @@ } #### post extra data #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3826,8 +3978,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ { "a": 1, @@ -3852,7 +4004,7 @@ } #### check posted data #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3881,8 +4033,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ { "a": 1, @@ -3907,7 +4059,7 @@ } #### Post again and check the results #### -> POST http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +> POST http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3936,8 +4088,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ -< Location: http://c4f2b979-5054-43e4-9cb1-b707072dbbad:8001/ +< X-Gabbi-url: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ +< Location: http://ae3babbe-69d2-4188-b1a0-343f1975a9cb:8001/ { "a": 1, @@ -3962,7 +4114,7 @@ } #### default casts #### -> POST http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +> POST http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3978,8 +4130,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ -< Location: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +< X-Gabbi-url: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ +< Location: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ { "int": 1, @@ -3990,7 +4142,7 @@ } #### cast to string #### -> POST http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +> POST http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4002,15 +4154,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ -< Location: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +< X-Gabbi-url: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ +< Location: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ { "string": "2" } #### json set up #### -> POST http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +> POST http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4026,8 +4178,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ -< Location: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +< X-Gabbi-url: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ +< Location: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ { "int": 1, @@ -4038,92 +4190,148 @@ } #### send casted json #### -> POST http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ -> content-type: application/json -> accept: application/jsongabbi.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_partial_both_sides.test_request -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request ... ok -#### left side json one #### -> POST http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ +> POST http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ -< Location: http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ +< Location: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "casted": 2 } -#### expand left side #### -> POST http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ +#### historic casted json #### +> POST http://adb8361a-5e24-428a-8796-0e20f766d09d: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://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ -< Location: http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ +< Location: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "casted": 2 } -#### expand environ left side #### -> POST http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ +#### internal json fine #### +> POST http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "casted": "in this 2 is not errors" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json +< X-Gabbi-url: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ +< Location: http://adb8361a-5e24-428a-8796-0e20f766d09d:8001/ + +{ + "casted": "in this 2 is not errors" +}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.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_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_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 +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok + + +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok +#### get simple page #### +> GET http://845af7ba-8ecf-4567-81b7-ff6e26338b89: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://845af7ba-8ecf-4567-81b7-ff6e26338b89:8001/ + +{} + +#### left side json one #### +> POST http://5b7516f2-b195-4ad3-8e47-f1566ef386bf: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://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ -< Location: http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/ +< X-Gabbi-url: http://5b7516f2-b195-4ad3-8e47-f1566ef386bf:8001/ +< Location: http://5b7516f2-b195-4ad3-8e47-f1566ef386bf:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "alpha": "alpha1", + "beta": "beta1" } -#### set key and value #### -> GET http://ba62e707-09e3-4c81-baf4-ffdc2efa3ee2:8001/jsonator?key=1&value=10 +#### expand left side #### +> POST http://5b7516f2-b195-4ad3-8e47-f1566ef386bf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "alpha1": "alpha", + "beta1": "beta" +} < 200 OK -< Content-Type: application/json +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://5b7516f2-b195-4ad3-8e47-f1566ef386bf:8001/ +< Location: http://5b7516f2-b195-4ad3-8e47-f1566ef386bf:8001/ { - "1": "10" + "alpha1": "alpha", + "beta1": "beta" } #### post data #### -> POST http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4136,8 +4344,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ -< Location: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ { "one_string": "1", @@ -4146,7 +4354,7 @@ } #### use data #### -> POST http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4159,8 +4367,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ -< Location: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ { "one_string": "1", @@ -4169,7 +4377,7 @@ } #### from environ #### -> POST http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4180,15 +4388,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ -< Location: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ { "one_environ": 1 } #### with list #### -> POST http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4201,8 +4409,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ -< Location: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ [ 1, @@ -4211,7 +4419,7 @@ ] #### object with list #### -> POST http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4231,8 +4439,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ -< Location: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ { "collection": [ @@ -4248,7 +4456,7 @@ } #### post extra data #### -> POST http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4277,8 +4485,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ -< Location: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ { "a": 1, @@ -4303,7 +4511,7 @@ } #### check posted data #### -> POST http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4332,8 +4540,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ -< Location: http://1da0c6c6-a6d1-4168-b06b-2be6594bb91d:8001/ +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ { "a": 1, @@ -4357,191 +4565,173 @@ } } -#### yaml encoded value from disk #### -> POST http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere +#### Post again and check the results #### +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7: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://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere -< Location: http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7: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 + } } } -#### json encoded value from disk #### -> POST http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere +#### Post again and check the results (reversed) #### +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7: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://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere -< Location: http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7: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 + } } } -#### yaml parital from disk #### -> POST http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere +#### string internal replace #### +> POST http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere -< Location: http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere +< X-Gabbi-url: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ +< Location: http://39739e4d-1e99-46e8-834c-abaf595184d7:8001/ { - "type": "cat", - "sound": "meow" -} - -#### yaml partial both sides #### -> POST http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere -< Location: http://4d52d21b-6395-4b26-bd1b-0ee0faa3677c:8001/somewhere - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -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_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_intercept.coerce_post_again_and_check_the_results_(reversed).test_request -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok -gabbi.tests.test_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_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 - -> user-agent: gabbi/3.0.0 (Python urllib3) - -{ - "casted": 2 -} - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ -< Location: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ - -{ - "casted": 2 + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" } -#### historic casted json #### -> POST http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +#### default casts #### +> POST http://a87c111f-6369-4507-b864-56de7924680e:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "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://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ -< Location: http://5e0b296c-6096-43ec-ae4f-f38bbdeb6c04:8001/ +< X-Gabbi-url: http://a87c111f-6369-4507-b864-56de7924680e:8001/ +< Location: http://a87c111f-6369-4507-b864-56de7924680e:8001/ { - "casted": 2 -} - -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +}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_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.casting_default_casts.test_request +gabbi.tests.test_intercept.casting_default_casts.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_runner.RunnerTest.test_custom_response_handler @@ -4556,10 +4746,10 @@ 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_input_files +gabbi.tests.test_runner.RunnerTest.test_input_files ... ok gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method @@ -4572,49 +4762,8 @@ 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 -/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://9953b894-81fa-4eb2-9e98-2fded0f2d7be:8001/notempty -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK - -notempty - #### get simple page #### -> GET http://7b4c7e26-a382-4460-8817-20418e1d8720:8001/ +> GET http://76346c5d-f432-4e19-be44-ae074dd1bb04:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4622,12 +4771,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7b4c7e26-a382-4460-8817-20418e1d8720:8001/ +< X-Gabbi-url: http://76346c5d-f432-4e19-be44-ae074dd1bb04:8001/ {} #### post data #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4640,8 +4789,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "one_string": "1", @@ -4650,7 +4799,7 @@ } #### use data #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4663,8 +4812,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "one_string": "1", @@ -4673,7 +4822,7 @@ } #### from environ #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4684,15 +4833,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "one_environ": 1 } #### with list #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4705,8 +4854,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ [ 1, @@ -4715,7 +4864,7 @@ ] #### object with list #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4735,8 +4884,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "collection": [ @@ -4752,7 +4901,7 @@ } #### post extra data #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4781,8 +4930,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "a": 1, @@ -4807,7 +4956,7 @@ } #### check posted data #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4836,8 +4985,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "a": 1, @@ -4862,7 +5011,7 @@ } #### Post again and check the results #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4891,8 +5040,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "a": 1, @@ -4917,7 +5066,7 @@ } #### Post again and check the results (reversed) #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +> POST http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4946,8 +5095,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ +< Location: http://e90d20b3-ac0c-46a0-8e06-bf4533a70738:8001/ { "a": 1, @@ -4971,101 +5120,174 @@ } } -#### string internal replace #### -> POST http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +#### default casts #### +> POST http://a0331e6e-567a-4a0c-8d76-1034cc8c698d:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" + "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://a0331e6e-567a-4a0c-8d76-1034cc8c698d:8001/ +< Location: http://a0331e6e-567a-4a0c-8d76-1034cc8c698d:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + +#### cast to string #### +> POST http://a0331e6e-567a-4a0c-8d76-1034cc8c698d: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://a0331e6e-567a-4a0c-8d76-1034cc8c698d:8001/ +< Location: http://a0331e6e-567a-4a0c-8d76-1034cc8c698d:8001/ + +{ + "string": "2" +} + +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_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 + + +#### yaml encoded value from disk #### +> POST http://7dc54287-3dec-4d82-945e-e6372acee99e: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://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ -< Location: http://0a5d2bc8-c7ca-499a-b7ae-c485bd0aab03:8001/ +< X-Gabbi-url: http://7dc54287-3dec-4d82-945e-e6372acee99e:8001/somewhere +< Location: http://7dc54287-3dec-4d82-945e-e6372acee99e:8001/somewhere { - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" + "foo": { + "b\u00e1r": 1 + } +} + +#### json encoded value from disk #### +> POST http://7dc54287-3dec-4d82-945e-e6372acee99e: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://7dc54287-3dec-4d82-945e-e6372acee99e:8001/somewhere +< Location: http://7dc54287-3dec-4d82-945e-e6372acee99e:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } } ---------------------------------------------------------------------- -Ran 314 tests in 3.829s +Ran 314 tests in 3.985s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 1.260 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 0.958 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.634 -gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request 0.538 -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 0.499 -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.478 -gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.425 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.423 -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 0.379 -gabbi.tests.test_intercept.poll_loop_location.test_request 0.306 +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.305 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 1.085 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 1.001 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.813 +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.468 +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.464 +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 0.460 +gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.380 +gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 0.363 +gabbi.tests.test_intercept.poll_loop_location.test_request 0.344 + rm -rf .stestr -+ [ 3.13 = disabled ] -+ echo 3.13 -+ cut -d. -f1 ++ 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 /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 -+ + 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 -/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_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 ++ 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_intercept.verbosity_confirm_notempty.test_request +gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_inner_fixture.inner_get_three.test_request -gabbi.tests.test_inner_fixture.inner_get_three.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.regex_regex_string_test_mix.test_request +gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify @@ -5092,181 +5314,160 @@ 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.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.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_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.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_handlers.HandlersTest.test_response_json_paths gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok +gabbi.tests.test_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.last-url_now_last_url_does_not_have_those_query_params.test_request +gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", gabbi.tests.test_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_inheritance_of_defaults.test_request -gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok -gabbi.tests.test_intercept.self_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.test_request ... ok -gabbi.tests.test_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.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_inner_fixture.inner_get_three.test_request +gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok +gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request +gabbi.tests.test_intercept.jsonbody_test_fully_body.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.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok +gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.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_from_disk_json_path +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path ... 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_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_from_disk_json_path_fail +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail ... 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", -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_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.self_post_a_body.test_request -gabbi.tests.test_intercept.self_post_a_body.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.self_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.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.regex_regex_string_test_mix.test_request -gabbi.tests.test_intercept.regex_regex_string_test_mix.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.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_use_prior_location.test_request +gabbi.tests.test_intercept.self_use_prior_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.self_checklimit.test_request -gabbi.tests.test_intercept.self_checklimit.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_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.self_confirm_environ.test_request -gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok -Exception ignored in: -Traceback (most recent call last): - File "/usr/lib/python3.13/http/client.py", line 434, in close - if self.fp: -AttributeError: 'HTTPResponse' object has no attribute 'fp' -gabbi.tests.test_intercept.self_test_binary_handling.test_request -gabbi.tests.test_intercept.self_test_binary_handling.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.self_use_a_historical_location.test_request +gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_prior +gabbi.tests.test_history.HistoryTest.test_header_replace_prior/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_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.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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_handlers.HandlersTest.test_response_json_paths_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... 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_splat.test_request +gabbi.tests.test_intercept.regex_regex_string_test_splat.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_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_json_derived_content_type.test_request -gabbi.tests.test_intercept.self_json_derived_content_type.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.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_get_a_cookie.test_request -gabbi.tests.test_intercept.cookie_get_a_cookie.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.cookie_confirm_no_cookies_causes_error.test_request -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... expected failure -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... ok -gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request ... ok -gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_no_content-type.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_it_a_third_time.test_request -gabbi.tests.test_intercept.last-url_get_it_a_third_time.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_history.HistoryTest.test_response_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok -gabbi.tests.test_intercept.self_test_pluggable_response.test_request -gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok -gabbi.tests.test_intercept.self_get_ssl_page.test_request -gabbi.tests.test_intercept.self_get_ssl_page.test_request ... ok -Exception ignored in: +gabbi.tests.test_intercept.data_load_data_dictionary.test_request +gabbi.tests.test_intercept.data_load_data_dictionary.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_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 +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_test_exception_wrapper.test_request +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... expected failure if self.fp: AttributeError: 'HTTPResponse' object has no attribute 'fp' -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... expected failure -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... ok +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... 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.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.method-shortcut_simple_post.test_request -gabbi.tests.test_intercept.method-shortcut_simple_post.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-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.forbiddenheaders_header_not_there_basic.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.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_handlers.HandlersTest.test_response_json_paths_substitution_noregex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok -gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request -gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request ... ok -gabbi.tests.test_intercept.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.test_request ... ok -gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request -gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... ok -gabbi.tests.test_intercept.self_non_json_response_failure.test_request -gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure -gabbi.tests.test_intercept.self_non_json_response_failure.test_request -gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok -gabbi.tests.test_intercept.regex_regex_header_test.test_request -gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok +gabbi.tests.test_intercept.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.cookie_get_a_cookie.test_request +gabbi.tests.test_intercept.cookie_get_a_cookie.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_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_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.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok -gabbi.tests.test_intercept.queryparams_multi_params.test_request -gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +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_fail_pluggable_response.test_request +gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... expected failure +gabbi.tests.test_intercept.self_fail_pluggable_response.test_request +gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... ok +Exception ignored in: +Traceback (most recent call last): + File "/usr/lib/python3.13/http/client.py", line 434, in close + if self.fp: +AttributeError: 'HTTPResponse' object has no attribute 'fp' /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.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_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 @@ -5279,156 +5480,90 @@ gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload ... ok -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok -gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request -gabbi.tests.test_intercept.regex_regex_string_test_splat.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_data_to_string.TestDataToString.testHappyPath -gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok -gabbi.tests.test_data_to_string.TestDataToString.testNoContentType -gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok -gabbi.tests.test_data_to_string.TestDataToString.testNoHandler -gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok -gabbi.tests.test_intercept.host-header_ssl_with_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_host.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_two.test_request -gabbi.tests.test_intercept.fixture_just_to_see_two.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.poll_create_a_thing.test_request -gabbi.tests.test_intercept.poll_create_a_thing.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.self_non_json_response_failure.test_request +gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure +gabbi.tests.test_intercept.self_non_json_response_failure.test_request +gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok +gabbi.tests.test_intercept.regex_regex_header_test.test_request +gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok gabbi.tests.test_intercept.self_simple_post.test_request gabbi.tests.test_intercept.self_simple_post.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_simple_param.test_request -gabbi.tests.test_intercept.queryparams_simple_param.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.data_load_data_list.test_request -gabbi.tests.test_intercept.data_load_data_list.test_request ... ok -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... ok -gabbi.tests.test_intercept.poll_poller_fail.test_request -gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure -gabbi.tests.test_intercept.poll_poller_fail.test_request -gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok -gabbi.tests.test_intercept.host-header_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.json-extensions_test_len.test_request -gabbi.tests.test_intercept.json-extensions_test_len.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_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_add_some_query_params.test_request -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok -gabbi.tests.test_intercept.data_json_value_from_disk.test_request -gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok -gabbi.tests.test_intercept.failskip_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.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.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.json-extensions_test_filtered.test_request -gabbi.tests.test_intercept.json-extensions_test_filtered.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -Exception ignored in: -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_multiline.test_request +gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok +gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request +gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request ... ok +gabbi.tests.test_intercept.host-header_ssl_no_host.test_request +gabbi.tests.test_intercept.host-header_ssl_no_host.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.self_checklimit.test_request +gabbi.tests.test_intercept.self_checklimit.test_request ... ok +gabbi.tests.test_intercept.data_load_encoded_text.test_request +gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok +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.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_content-type.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.fixture_just_to_see.test_request gabbi.tests.test_intercept.fixture_just_to_see.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.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok -gabbi.tests.test_intercept.contenttype_put_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok -gabbi.tests.test_intercept.contenttype_post_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok -gabbi.tests.test_intercept.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_test_exception_wrapper.test_request -gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... expected failure -gabbi.tests.test_intercept.self_test_exception_wrapper.test_request -gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... ok -gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request -gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request ... ok -gabbi.tests.test_intercept.data_load_image_file.test_request -gabbi.tests.test_intercept.data_load_image_file.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-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_two.test_request +gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_data_to_string.TestDataToString.testHappyPath +gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok +gabbi.tests.test_data_to_string.TestDataToString.testNoContentType +gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok +gabbi.tests.test_data_to_string.TestDataToString.testNoHandler +gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok +gabbi.tests.test_intercept.self_test_pluggable_response.test_request +gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.self_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.queryparams_joined_params.test_request +gabbi.tests.test_intercept.queryparams_joined_params.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_cast_to_string.test_request -gabbi.tests.test_intercept.casting_cast_to_string.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.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-extensions_test_sort.test_request -gabbi.tests.test_intercept.json-extensions_test_sort.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.last-url_get_prior_url.test_request -gabbi.tests.test_intercept.last-url_get_prior_url.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.coerce_use_data.test_request -gabbi.tests.test_intercept.coerce_use_data.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.host-header_host_without_ssl.test_request -gabbi.tests.test_intercept.host-header_host_without_ssl.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_json_file.test_request -gabbi.tests.test_intercept.data_load_json_file.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_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.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.casting_internal_json_fine.test_request -gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok -#### confirm notempty #### -> GET http://da3a8c24-fe1e-414b-9cdc-58d2031adb24:8001/notempty -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK - -notempty - +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 +/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_url_target +gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl +gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok +gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok +gabbi.tests.test_intercept.backref_post_some_more_json.test_request +gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true ... ok +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok #### get simple page #### -> GET http://af5189c9-84ff-40ec-995d-1691dc9e1739:8001/ +> GET http://5e4f3752-9d74-40e8-8bf4-63866e1e9100:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5436,103 +5571,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://af5189c9-84ff-40ec-995d-1691dc9e1739:8001/ +< X-Gabbi-url: http://5e4f3752-9d74-40e8-8bf4-63866e1e9100:8001/ {} -#### left side json one #### -> POST http://dbafbcb4-1487-44ef-9981-f7c2161e47a4: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://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/ -< Location: http://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -#### expand left side #### -> POST http://dbafbcb4-1487-44ef-9981-f7c2161e47a4: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://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/ -< Location: http://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/ - -{ - "alpha1": "alpha", - "beta1": "beta" -} - -#### expand environ left side #### -> POST http://dbafbcb4-1487-44ef-9981-f7c2161e47a4: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://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/ -< Location: http://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/ - -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} - -#### set key and value #### -> GET http://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/jsonator?key=1&value=10 -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK -< Content-Type: application/json - -{ - "1": "10" -} - -#### check key and value #### -> GET http://dbafbcb4-1487-44ef-9981-f7c2161e47a4:8001/jsonator?key=1&value=10 -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK -< Content-Type: application/json - -{ - "1": "10" -} - #### default casts #### -> POST http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ +> POST http://bcdf7f9d-d18c-48d4-a9b3-ca4670c7841b:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5548,8 +5592,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ -< Location: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ +< X-Gabbi-url: http://bcdf7f9d-d18c-48d4-a9b3-ca4670c7841b:8001/ +< Location: http://bcdf7f9d-d18c-48d4-a9b3-ca4670c7841b:8001/ { "int": 1, @@ -5560,7 +5604,7 @@ } #### cast to string #### -> POST http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ +> POST http://bcdf7f9d-d18c-48d4-a9b3-ca4670c7841b:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5572,211 +5616,65 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ -< Location: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ +< X-Gabbi-url: http://bcdf7f9d-d18c-48d4-a9b3-ca4670c7841b:8001/ +< Location: http://bcdf7f9d-d18c-48d4-a9b3-ca4670c7841b:8001/ { "string": "2" } -#### json set up #### -> POST http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276: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://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ -< Location: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ - -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -} - -#### send casted json #### -> POST http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276: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://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ -< Location: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ - -{ - "casted": 2 -} - -#### historic casted json #### -> POST http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276: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://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ -< Location: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ - -{ - "casted": 2 -} - -#### internal json fine #### -> POST http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276: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://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ -< Location: http://ac9d3ff6-d580-4f34-a44a-643b3cc9b276:8001/ - -{ - "casted": "in this 2 is not errors" -} - -gabbi.tests.test_intercept.coerce_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.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_utils.ParseContentTypeTest.test_parse_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_dict.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.contenttype_patch_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params -gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_parse_full -gabbi.tests.test_parse_url.UrlParseTest.test_parse_full ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix -gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_parse_url -gabbi.tests.test_parse_url.UrlParseTest.test_parse_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl ... ok -gabbi.tests.test_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_intercept.coerce_check_posted_data.test_request -gabbi.tests.test_intercept.coerce_check_posted_data.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_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_driver.DriverTest.test_build_url_use_prior_test +gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... 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_driver.DriverTest.test_build_with_url_provides_host +gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok +gabbi.tests.test_intercept.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.test_request ... ok +gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request +gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_simple_post.test_request +gabbi.tests.test_intercept.method-shortcut_simple_post.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.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_driver.DriverTest.test_driver_loads_three_tests +gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... 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 +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.contenttype_put_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok +gabbi.tests.test_intercept.contenttype_post_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok +gabbi.tests.test_driver.DriverTest.test_driver_prefix +gabbi.tests.test_driver.DriverTest.test_driver_prefix ... 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_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.self_confirm_environ.test_request +gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok +gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request +gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... expected failure +gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request +gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... ok +gabbi.tests.test_intercept.regex_regex_string_test_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_json.test_request ... ok +gabbi.tests.test_intercept.json-left-side_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_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://4802070e-d2e0-4f38-8e76-7885fb131de5:8001/ +> GET http://7e54033a-c75b-485d-b116-c664d496a3e1:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5784,12 +5682,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4802070e-d2e0-4f38-8e76-7885fb131de5:8001/ +< X-Gabbi-url: http://7e54033a-c75b-485d-b116-c664d496a3e1:8001/ {} -#### json encoded value from disk #### -> POST http://b4003c27-4f1e-4274-8946-44847ef1865d:8001/ +#### yaml encoded value from disk #### +> POST http://b8f33621-1a57-451e-8a82-253e0644345f:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5802,8 +5700,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b4003c27-4f1e-4274-8946-44847ef1865d:8001/ -< Location: http://b4003c27-4f1e-4274-8946-44847ef1865d:8001/ +< X-Gabbi-url: http://b8f33621-1a57-451e-8a82-253e0644345f:8001/somewhere +< Location: http://b8f33621-1a57-451e-8a82-253e0644345f:8001/somewhere { "foo": { @@ -5811,73 +5709,87 @@ } } +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.queryparams_multi_params.test_request +gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request +gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok +Exception ignored in: +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 +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.data_post_data_for_next.test_request +gabbi.tests.test_intercept.data_post_data_for_next.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.last-url_get_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request +gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok +gabbi.tests.test_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_empty_dict.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_dict.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.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.coerce_with_list.test_request +gabbi.tests.test_intercept.coerce_with_list.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.header-key_header_named_http.test_request +gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.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.coerce_post_extra_data.test_request -gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request ... ok -gabbi.tests.test_intercept.casting_json_set_up.test_request -gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok -#### get simple page #### -> GET http://9bac80d2-7466-43ed-9520-901105ef7457: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://9bac80d2-7466-43ed-9520-901105ef7457:8001/ - -{} - -#### json encoded value from disk #### -> POST http://d10b1ec0-39b0-42eb-b4aa-de2d0f020f84: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://d10b1ec0-39b0-42eb-b4aa-de2d0f020f84:8001/ -< Location: http://d10b1ec0-39b0-42eb-b4aa-de2d0f020f84:8001/ - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json parital from disk #### -> POST http://d10b1ec0-39b0-42eb-b4aa-de2d0f020f84: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://d10b1ec0-39b0-42eb-b4aa-de2d0f020f84:8001/ -< Location: http://d10b1ec0-39b0-42eb-b4aa-de2d0f020f84:8001/ - -{ - "type": "cat", - "sound": "meow" -} - +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok +gabbi.tests.test_intercept.cookie_use_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_patch_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_content-type.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.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok +gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request ... ok +gabbi.tests.test_intercept.casting_default_casts.test_request +gabbi.tests.test_intercept.casting_default_casts.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.json-extensions_test_len.test_request +gabbi.tests.test_intercept.json-extensions_test_len.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.casting_cast_to_string.test_request +gabbi.tests.test_intercept.casting_cast_to_string.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 #### post data #### -> POST http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +> POST http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5890,8 +5802,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ -< Location: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +< X-Gabbi-url: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ +< Location: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ { "one_string": "1", @@ -5900,7 +5812,7 @@ } #### use data #### -> POST http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +> POST http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5913,8 +5825,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ -< Location: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +< X-Gabbi-url: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ +< Location: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ { "one_string": "1", @@ -5923,7 +5835,7 @@ } #### from environ #### -> POST http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +> POST http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5934,15 +5846,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ -< Location: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +< X-Gabbi-url: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ +< Location: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ { "one_environ": 1 } #### with list #### -> POST http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +> POST http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5955,8 +5867,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ -< Location: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +< X-Gabbi-url: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ +< Location: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ [ 1, @@ -5965,7 +5877,7 @@ ] #### object with list #### -> POST http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +> POST http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5985,8 +5897,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ -< Location: http://9e5f5930-58d7-4b7f-bb6e-c708ec5a0f82:8001/ +< X-Gabbi-url: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ +< Location: http://e77f1567-5e88-448e-ac93-e1a5caaae57e:8001/ { "collection": [ @@ -6001,128 +5913,8 @@ ] } -#### yaml encoded value from disk #### -> POST http://ecc6e11e-2a10-414a-a022-54e3252bb813: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://ecc6e11e-2a10-414a-a022-54e3252bb813:8001/somewhere -< Location: http://ecc6e11e-2a10-414a-a022-54e3252bb813:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json encoded value from disk #### -> POST http://ecc6e11e-2a10-414a-a022-54e3252bb813: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://ecc6e11e-2a10-414a-a022-54e3252bb813:8001/somewhere -< Location: http://ecc6e11e-2a10-414a-a022-54e3252bb813:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### yaml parital from disk #### -> POST http://ecc6e11e-2a10-414a-a022-54e3252bb813: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://ecc6e11e-2a10-414a-a022-54e3252bb813:8001/somewhere -< Location: http://ecc6e11e-2a10-414a-a022-54e3252bb813:8001/somewhere - -{ - "type": "cat", - "sound": "meow" -} - -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_use_raw_json_from_response.test_request -gabbi.tests.test_intercept.backref_use_raw_json_from_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.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure -gabbi.tests.test_intercept.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... expected failure -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... ok -gabbi.tests.test_intercept.json-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.fixture_just_to_see_one.test_request -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_three.test_request -gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok -gabbi.tests.test_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 -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 -#### get simple page #### -> GET http://0d75800a-32e6-47ba-b415-e4a2a2b8a776: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://0d75800a-32e6-47ba-b415-e4a2a2b8a776:8001/ - -{} - #### default casts #### -> POST http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ +> POST http://1ef4322b-500e-4760-be9a-d2a5f7fb3b19:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6138,8 +5930,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ -< Location: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ +< X-Gabbi-url: http://1ef4322b-500e-4760-be9a-d2a5f7fb3b19:8001/ +< Location: http://1ef4322b-500e-4760-be9a-d2a5f7fb3b19:8001/ { "int": 1, @@ -6150,7 +5942,7 @@ } #### cast to string #### -> POST http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ +> POST http://1ef4322b-500e-4760-be9a-d2a5f7fb3b19:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6162,134 +5954,83 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ -< Location: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ +< X-Gabbi-url: http://1ef4322b-500e-4760-be9a-d2a5f7fb3b19:8001/ +< Location: http://1ef4322b-500e-4760-be9a-d2a5f7fb3b19:8001/ { "string": "2" } -#### json set up #### -> POST http://9f78da42-682e-44a8-8238-ce9eb0366e04: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://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ -< Location: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ - -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -} - -#### send casted json #### -> POST http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ -> content-type: application/json -> accept: application/json +gabbi.tests.test_intercept.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.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.cookie_use_a_historical_cookie.test_request +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.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.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://ed395455-06ab-455b-8361-57ff6b44350a:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "casted": 2 -} < 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ -< Location: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ +< X-Gabbi-method: GET +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ed395455-06ab-455b-8361-57ff6b44350a:8001/ -{ - "casted": 2 -} +{} -#### historic casted json #### -> POST http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ +#### json encoded value from disk #### +> POST http://ace465a1-a3f6-4234-9dbc-96a7a3734e26:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ -< Location: http://9f78da42-682e-44a8-8238-ce9eb0366e04:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://ace465a1-a3f6-4234-9dbc-96a7a3734e26:8001/ +< Location: http://ace465a1-a3f6-4234-9dbc-96a7a3734e26:8001/ { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } -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_intercept.coerce_with_list.test_request -gabbi.tests.test_intercept.coerce_with_list.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_intercept.data_load_encoded_text.test_request -gabbi.tests.test_intercept.data_load_encoded_text.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_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_jsonpath.JSONPathTest.test_sorted_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... 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_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 -gabbi.tests.test_intercept.casting_historic_casted_json.test_request -gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... ok -#### get simple page #### -> GET http://43f5c303-c346-435d-b995-7df501b88b51: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://43f5c303-c346-435d-b995-7df501b88b51:8001/ - -{} - #### left side json one #### -> POST http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ +> POST http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6301,8 +6042,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ -< Location: http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ +< X-Gabbi-url: http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ +< Location: http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ { "alpha": "alpha1", @@ -6310,7 +6051,7 @@ } #### expand left side #### -> POST http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ +> POST http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6322,8 +6063,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ -< Location: http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ +< X-Gabbi-url: http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ +< Location: http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ { "alpha1": "alpha", @@ -6331,7 +6072,7 @@ } #### expand environ left side #### -> POST http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ +> POST http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6344,8 +6085,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ -< Location: http://6f03a2a9-2c27-4ff1-a82e-144eeffe8fa3:8001/ +< X-Gabbi-url: http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ +< Location: http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/ { "alpha1": "alpha", @@ -6353,144 +6094,136 @@ "1": "cow" } -#### post data #### -> POST http://1bc12db4-cdfd-4f9c-92a0-d69e525f4683:8001/ +#### set key and value #### +> GET http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/jsonator?key=1&value=10 > 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://1bc12db4-cdfd-4f9c-92a0-d69e525f4683:8001/ -< Location: http://1bc12db4-cdfd-4f9c-92a0-d69e525f4683:8001/ +< Content-Type: application/json { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "1": "10" } -#### yaml encoded value from disk #### -> POST http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere +#### check key and value #### +> GET http://1275dcf8-e60c-4992-8303-c5376f23b0b0:8001/jsonator?key=1&value=10 > 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://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere -< Location: http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere +< Content-Type: application/json { - "foo": { - "b\u00e1r": 1 - } + "1": "10" } -#### json encoded value from disk #### -> POST http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere -> content-type: application/json +#### header named http #### +> GET http://6b22fd6a-3abb-4bb4-b52e-90a68efb6f82:8001/header_key +> http: some-scheme > 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://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere -< Location: http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere +< X-Gabbi-url: http://6b22fd6a-3abb-4bb4-b52e-90a68efb6f82:8001/header_key +< HTTP: some-scheme -{ - "foo": { - "b\u00e1r": 1 - } -} +{} -#### yaml parital from disk #### -> POST http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere +#### default casts #### +> POST http://9d50a7c2-ab8b-4229-a802-8fc7f41fd39a: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://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere -< Location: http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://9d50a7c2-ab8b-4229-a802-8fc7f41fd39a:8001/ +< Location: http://9d50a7c2-ab8b-4229-a802-8fc7f41fd39a:8001/ { - "type": "cat", - "sound": "meow" + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### yaml partial both sides #### -> POST http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere -< Location: http://54edb241-68a5-4ba1-9c66-020c2c0691cf:8001/somewhere - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -#### get simple page #### -> GET http://99ec20bd-2c97-47f3-904b-7942f067c48f: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://99ec20bd-2c97-47f3-904b-7942f067c48f:8001/ - -{} - +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.failskip_wrong_status.test_request +gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure +gabbi.tests.test_intercept.failskip_wrong_status.test_request +gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok +gabbi.tests.test_intercept.casting_historic_casted_json.test_request +gabbi.tests.test_intercept.casting_historic_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_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_intercept.poll_loop_location.test_request +gabbi.tests.test_intercept.poll_loop_location.test_request ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok +gabbi.tests.test_intercept.coerce_post_extra_data.test_request +gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok #### get simple page #### -> GET http://51198934-50e5-47d8-8bb1-a74595c608a1:8001/ +> GET http://062ffbea-c602-4e14-b10d-fe5808489363:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6498,53 +6231,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://51198934-50e5-47d8-8bb1-a74595c608a1:8001/ +< X-Gabbi-url: http://062ffbea-c602-4e14-b10d-fe5808489363:8001/ {} -#### loop location #### -> GET http://dcce6c07-21ea-48fb-b324-6b52854fafbc: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://dcce6c07-21ea-48fb-b324-6b52854fafbc: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://dcce6c07-21ea-48fb-b324-6b52854fafbc: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://dcce6c07-21ea-48fb-b324-6b52854fafbc:8001/poller?count=2&x=1&y=2&z=3.4 - -{ - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] -} - #### json encoded value from disk #### -> POST http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ +> POST http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6557,8 +6249,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ -< Location: http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ +< X-Gabbi-url: http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ +< Location: http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ { "foo": { @@ -6567,7 +6259,7 @@ } #### json parital from disk #### -> POST http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ +> POST http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6579,8 +6271,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ -< Location: http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ +< X-Gabbi-url: http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ +< Location: http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ { "type": "cat", @@ -6588,7 +6280,7 @@ } #### json partial both sides #### -> POST http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ +> POST http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6606,8 +6298,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ -< Location: http://c849da94-3daa-4b89-8d4f-d1bbfd9df066:8001/ +< X-Gabbi-url: http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ +< Location: http://63f82c9d-0bb8-42f9-94d8-e27bb26b79c1:8001/ [ { @@ -6620,47 +6312,8 @@ } ] -gabbi.tests.test_intercept.backref_post_some_json.test_request -gabbi.tests.test_intercept.backref_post_some_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_intercept.casting_default_casts.test_request -gabbi.tests.test_intercept.casting_default_casts.test_request ... ok -#### get simple page #### -> GET http://42775c51-6a26-42f7-a18c-329c23b5bb17: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://42775c51-6a26-42f7-a18c-329c23b5bb17:8001/ - -{} - #### post data #### -> POST http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +> POST http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6673,8 +6326,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ -< Location: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +< X-Gabbi-url: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ +< Location: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ { "one_string": "1", @@ -6683,7 +6336,7 @@ } #### use data #### -> POST http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +> POST http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6696,8 +6349,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ -< Location: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +< X-Gabbi-url: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ +< Location: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ { "one_string": "1", @@ -6706,7 +6359,7 @@ } #### from environ #### -> POST http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +> POST http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6717,15 +6370,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ -< Location: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +< X-Gabbi-url: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ +< Location: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ { "one_environ": 1 } #### with list #### -> POST http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +> POST http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6738,8 +6391,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ -< Location: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ +< X-Gabbi-url: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ +< Location: http://3b1bb499-0012-4a6b-95d3-ae9cfba4f924:8001/ [ 1, @@ -6747,100 +6400,8 @@ "3" ] -#### object with list #### -> POST http://bd07c587-ae20-4e1f-9aed-66518eda26be: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://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ -< Location: http://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ - -{ - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] -} - -#### post extra data #### -> POST http://bd07c587-ae20-4e1f-9aed-66518eda26be: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://bd07c587-ae20-4e1f-9aed-66518eda26be:8001/ -< Location: http://bd07c587-ae20-4e1f-9aed-66518eda26be: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://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +> POST http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6856,8 +6417,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ -< Location: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +< X-Gabbi-url: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ +< Location: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ { "int": 1, @@ -6868,7 +6429,7 @@ } #### cast to string #### -> POST http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +> POST http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6880,15 +6441,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ -< Location: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +< X-Gabbi-url: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ +< Location: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ { "string": "2" } #### json set up #### -> POST http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +> POST http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6904,8 +6465,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ -< Location: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +< X-Gabbi-url: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ +< Location: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ { "int": 1, @@ -6916,7 +6477,7 @@ } #### send casted json #### -> POST http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +> POST http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6928,15 +6489,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ -< Location: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +< X-Gabbi-url: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ +< Location: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ { "casted": 2 } #### historic casted json #### -> POST http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +> POST http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6948,25 +6509,47 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ -< Location: http://2813325a-dcf6-4e5a-9c4e-6c3d668be53c:8001/ +< X-Gabbi-url: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ +< Location: http://19c49259-da24-4e4d-8c98-fdd121f5f27f:8001/ { "casted": 2 } -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.test_request -gabbi.tests.test_intercept.backref_get_a_historical_response.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.EnvironReplaceTest.test_environ_boolean -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... 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.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_json.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.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_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_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_jsonpath.JSONPathTest.test_sorted_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... 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_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... 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://69804590-5096-4bde-bb4f-a2b8064ad195:8001/ +> GET http://4109aa49-4c08-40c2-a452-e99d6dfc6ce9:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6974,12 +6557,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://69804590-5096-4bde-bb4f-a2b8064ad195:8001/ +< X-Gabbi-url: http://4109aa49-4c08-40c2-a452-e99d6dfc6ce9:8001/ {} #### left side json one #### -> POST http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ +> POST http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6991,8 +6574,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ -< Location: http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ +< X-Gabbi-url: http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ +< Location: http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ { "alpha": "alpha1", @@ -7000,7 +6583,7 @@ } #### expand left side #### -> POST http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ +> POST http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7012,8 +6595,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ -< Location: http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ +< X-Gabbi-url: http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ +< Location: http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ { "alpha1": "alpha", @@ -7021,7 +6604,7 @@ } #### expand environ left side #### -> POST http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ +> POST http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7034,8 +6617,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ -< Location: http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73:8001/ +< X-Gabbi-url: http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ +< Location: http://23dd91cb-c658-456a-9e0a-95832994d8ce:8001/ { "alpha1": "alpha", @@ -7043,21 +6626,8 @@ "1": "cow" } -#### set key and value #### -> GET http://dd9b3424-634e-47ec-92b7-8ba3abd3fc73: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://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +> POST http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7070,8 +6640,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ -< Location: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +< X-Gabbi-url: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ +< Location: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ { "one_string": "1", @@ -7080,7 +6650,7 @@ } #### use data #### -> POST http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +> POST http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7093,8 +6663,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ -< Location: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +< X-Gabbi-url: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ +< Location: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ { "one_string": "1", @@ -7103,7 +6673,7 @@ } #### from environ #### -> POST http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +> POST http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7114,15 +6684,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ -< Location: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +< X-Gabbi-url: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ +< Location: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ { "one_environ": 1 } #### with list #### -> POST http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +> POST http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7135,8 +6705,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ -< Location: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +< X-Gabbi-url: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ +< Location: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ [ 1, @@ -7145,7 +6715,7 @@ ] #### object with list #### -> POST http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +> POST http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7165,8 +6735,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ -< Location: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +< X-Gabbi-url: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ +< Location: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ { "collection": [ @@ -7182,7 +6752,7 @@ } #### post extra data #### -> POST http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +> POST http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7211,8 +6781,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ -< Location: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +< X-Gabbi-url: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ +< Location: http://b0d34a5c-eb89-4f2e-bfbb-ac44fb8d6bee:8001/ { "a": 1, @@ -7236,77 +6806,146 @@ } } -#### check posted data #### -> POST http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +#### default casts #### +> POST http://68c13b1f-4a96-4d3e-aa9e-7cd343096520: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://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ -< Location: http://2b73609e-6f9c-4236-9a05-ef2071c8ceba:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ +< Location: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520: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 } -#### yaml encoded value from disk #### -> POST http://1590c710-dffa-4b8e-9d1a-6b59b156b4c7:8001/somewhere +#### cast to string #### +> POST http://68c13b1f-4a96-4d3e-aa9e-7cd343096520: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://1590c710-dffa-4b8e-9d1a-6b59b156b4c7:8001/somewhere -< Location: http://1590c710-dffa-4b8e-9d1a-6b59b156b4c7:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ +< Location: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ + +{ + "string": "2" +} + +#### json set up #### +> POST http://68c13b1f-4a96-4d3e-aa9e-7cd343096520: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://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ +< Location: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +#### send casted json #### +> POST http://68c13b1f-4a96-4d3e-aa9e-7cd343096520: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://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ +< Location: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ + +{ + "casted": 2 +} + +#### historic casted json #### +> POST http://68c13b1f-4a96-4d3e-aa9e-7cd343096520: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://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ +< Location: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ + +{ + "casted": 2 +} + +#### internal json fine #### +> POST http://68c13b1f-4a96-4d3e-aa9e-7cd343096520: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://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ +< Location: http://68c13b1f-4a96-4d3e-aa9e-7cd343096520:8001/ + +{ + "casted": "in this 2 is not errors" +} + +#### yaml encoded value from disk #### +> POST http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) { "foo": { @@ -7314,14 +6953,19 @@ } } -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.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 +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no#### confirm notempty #### +> GET http://32c479df-f0df-4208-b96b-b9bf2913dc94:8001/notempty +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK + +notempty + #### post data #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7334,8 +6978,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ { "one_string": "1", @@ -7344,7 +6988,7 @@ } #### use data #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7357,8 +7001,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ { "one_string": "1", @@ -7367,7 +7011,7 @@ } #### from environ #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7378,15 +7022,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ { "one_environ": 1 } #### with list #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7399,8 +7043,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ [ 1, @@ -7409,7 +7053,7 @@ ] #### object with list #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7429,8 +7073,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ { "collection": [ @@ -7446,7 +7090,7 @@ } #### post extra data #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7475,8 +7119,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ { "a": 1, @@ -7501,7 +7145,7 @@ } #### check posted data #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7530,8 +7174,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ { "a": 1, @@ -7556,7 +7200,7 @@ } #### Post again and check the results #### -> POST http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +> POST http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7585,8 +7229,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ -< Location: http://bf5c758a-ae20-4ac6-bbc2-64bdd94cba37:8001/ +< X-Gabbi-url: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ +< Location: http://49f8940d-2e57-49cd-a28f-2b4cbed9e204:8001/ { "a": 1, @@ -7610,36 +7254,28 @@ } } -#### default casts #### -> POST http://5b8a60d4-5315-48d5-a11e-b0e25e80f7c2: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 -} +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.failskip_skip_me.test_request +gabbi.tests.test_intercept.failskip_skip_me.test_request ... skipped "Skipping for now because we can't do it" +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_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.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 -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://5b8a60d4-5315-48d5-a11e-b0e25e80f7c2:8001/ -< Location: http://5b8a60d4-5315-48d5-a11e-b0e25e80f7c2:8001/ +< X-Gabbi-url: http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere +< Location: http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "foo": { + "b\u00e1r": 1 + } } -#### yaml encoded value from disk #### -> POST http://8eb9d735-dec5-465d-ae06-998bcee89209:8001/somewhere +#### json encoded value from disk #### +> POST http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7652,8 +7288,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8eb9d735-dec5-465d-ae06-998bcee89209:8001/somewhere -< Location: http://8eb9d735-dec5-465d-ae06-998bcee89209:8001/somewhere +< X-Gabbi-url: http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere +< Location: http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere { "foo": { @@ -7661,45 +7297,108 @@ } } -#### json encoded value from disk #### -> POST http://8eb9d735-dec5-465d-ae06-998bcee89209:8001/somewhere +#### yaml parital from disk #### +> POST http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://8eb9d735-dec5-465d-ae06-998bcee89209:8001/somewhere -< Location: http://8eb9d735-dec5-465d-ae06-998bcee89209:8001/somewhere +< X-Gabbi-url: http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere +< Location: http://9cf8bf52-f083-4be0-8b48-cbcd0560fd95:8001/somewhere { - "foo": { - "b\u00e1r": 1 - } + "type": "cat", + "sound": "meow" } -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.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.coerce_string_internal_replace.test_request -gabbi.tests.test_intercept.coerce_string_internal_replace.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.coerce_check_posted_data.test_request +gabbi.tests.test_intercept.coerce_check_posted_data.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.data_load_image_file.test_request +gabbi.tests.test_intercept.data_load_image_file.test_request ... ok gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok -gabbi.tests.test_intercept.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_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok +gabbi.tests.test_runner.RunnerTest.test_data_dir_good +gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_exit_code +gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_input_files +gabbi.tests.test_runner.RunnerTest.test_input_files ... ok +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok +/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", +/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 +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok +#### get simple page #### +> GET http://9ccd567d-ce83-409e-a0ec-025345867a54: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://9ccd567d-ce83-409e-a0ec-025345867a54:8001/ + +{} + #### left side json one #### -> POST http://b24563ef-2877-4db0-a684-3d103340be22:8001/ +> POST http://13c76e29-974b-48fa-8e07-9591af793273:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7711,8 +7410,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b24563ef-2877-4db0-a684-3d103340be22:8001/ -< Location: http://b24563ef-2877-4db0-a684-3d103340be22:8001/ +< X-Gabbi-url: http://13c76e29-974b-48fa-8e07-9591af793273:8001/ +< Location: http://13c76e29-974b-48fa-8e07-9591af793273:8001/ { "alpha": "alpha1", @@ -7720,7 +7419,7 @@ } #### expand left side #### -> POST http://b24563ef-2877-4db0-a684-3d103340be22:8001/ +> POST http://13c76e29-974b-48fa-8e07-9591af793273:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7732,30 +7431,140 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b24563ef-2877-4db0-a684-3d103340be22:8001/ -< Location: http://b24563ef-2877-4db0-a684-3d103340be22:8001/ +< X-Gabbi-url: http://13c76e29-974b-48fa-8e07-9591af793273:8001/ +< Location: http://13c76e29-974b-48fa-8e07-9591af793273:8001/ { "alpha1": "alpha", "beta1": "beta" } -#### header named http #### -> GET http://e6f50b3e-5b8b-4ce9-a74d-2bd8f902080d:8001/header_key -> http: some-scheme +#### expand environ left side #### +> POST http://13c76e29-974b-48fa-8e07-9591af793273: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://13c76e29-974b-48fa-8e07-9591af793273:8001/ +< Location: http://13c76e29-974b-48fa-8e07-9591af793273:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + +#### set key and value #### +> GET http://13c76e29-974b-48fa-8e07-9591af793273: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://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67: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://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67:8001/ +< Location: http://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### use data #### +> POST http://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67: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://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67:8001/ +< Location: http://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### from environ #### +> POST http://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67: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://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67:8001/ +< Location: http://bc5c9fd6-e317-48bc-80f5-4ea5e70c8c67:8001/ + +{ + "one_environ": 1 +} + +gabbi.tests.test_intercept.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.test_request ... ok +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request ... ok +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... expected failure +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... ok +#### get simple page #### +> GET http://3cbfe1da-8b34-448d-bc58-fea74dc8121a: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://e6f50b3e-5b8b-4ce9-a74d-2bd8f902080d:8001/header_key -< HTTP: some-scheme +< X-Gabbi-url: http://3cbfe1da-8b34-448d-bc58-fea74dc8121a:8001/ {} #### post data #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +> POST http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7768,8 +7577,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ +< Location: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ { "one_string": "1", @@ -7778,7 +7587,7 @@ } #### use data #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +> POST http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7791,8 +7600,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ +< Location: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ { "one_string": "1", @@ -7801,7 +7610,7 @@ } #### from environ #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +> POST http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7812,15 +7621,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ +< Location: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ { "one_environ": 1 } #### with list #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +> POST http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7833,8 +7642,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ +< Location: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ [ 1, @@ -7843,7 +7652,7 @@ ] #### object with list #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +> POST http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7863,8 +7672,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ +< Location: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ { "collection": [ @@ -7880,7 +7689,7 @@ } #### post extra data #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +> POST http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7909,8 +7718,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ +< Location: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ { "a": 1, @@ -7935,7 +7744,7 @@ } #### check posted data #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +> POST http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7964,8 +7773,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ +< Location: http://7be2c2e5-659d-40d5-9615-8c3a78868bc1:8001/ { "a": 1, @@ -7989,178 +7798,435 @@ } } -#### Post again and check the results #### -> POST http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +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_intercept.casting_send_casted_json.test_request +gabbi.tests.test_intercept.casting_send_casted_json.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_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_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://32ed135c-8a79-4b0c-bf64-5705b7660cd7: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://32ed135c-8a79-4b0c-bf64-5705b7660cd7:8001/ + +{} + +#### loop location #### +> GET http://c6b6577b-ba86-4ace-997a-1396c692635c: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://c6b6577b-ba86-4ace-997a-1396c692635c: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://c6b6577b-ba86-4ace-997a-1396c692635c: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://c6b6577b-ba86-4ace-997a-1396c692635c:8001/poller?count=2&x=1&y=2&z=3.4 + +{ + "count": [ + "2" + ], + "x": [ + "1" + ], + "y": [ + "2" + ], + "z": [ + "3.4" + ] +} + +#### post data #### +> POST http://ff55e32f-7c4f-4b0a-9f2d-83b35e9914c6: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 - } + "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://ff55e32f-7c4f-4b0a-9f2d-83b35e9914c6:8001/ +< Location: http://ff55e32f-7c4f-4b0a-9f2d-83b35e9914c6:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### use data #### +> POST http://ff55e32f-7c4f-4b0a-9f2d-83b35e9914c6: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://ff55e32f-7c4f-4b0a-9f2d-83b35e9914c6:8001/ +< Location: http://ff55e32f-7c4f-4b0a-9f2d-83b35e9914c6:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### default casts #### +> POST http://5149cf39-bbac-48ea-ac57-5b1429bd1e44: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://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ +< Location: http://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + +#### cast to string #### +> POST http://5149cf39-bbac-48ea-ac57-5b1429bd1e44: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://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ +< Location: http://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ + +{ + "string": "2" +} + +#### json set up #### +> POST http://5149cf39-bbac-48ea-ac57-5b1429bd1e44: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://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ +< Location: http://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +#### send casted json #### +> POST http://5149cf39-bbac-48ea-ac57-5b1429bd1e44: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://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ +< Location: http://5149cf39-bbac-48ea-ac57-5b1429bd1e44:8001/ + +{ + "casted": 2 +} + +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_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://002d49ba-6d5c-4208-9e0c-c15c1929b1fe: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://002d49ba-6d5c-4208-9e0c-c15c1929b1fe:8001/ + +{} + +#### left side json one #### +> POST http://f80e417a-2e79-4c0f-8d98-bec104974517: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://f80e417a-2e79-4c0f-8d98-bec104974517:8001/ +< Location: http://f80e417a-2e79-4c0f-8d98-bec104974517:8001/ + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +#### expand left side #### +> POST http://f80e417a-2e79-4c0f-8d98-bec104974517: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://f80e417a-2e79-4c0f-8d98-bec104974517:8001/ +< Location: http://f80e417a-2e79-4c0f-8d98-bec104974517:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta" +} + +#### yaml encoded value from disk #### +> POST http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8: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://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere +< Location: http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8: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://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +#### json encoded value from disk #### +> POST http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8: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://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ -< Location: http://58d35e28-9fee-4498-a523-c9477cb2d703:8001/ +< X-Gabbi-url: http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere +< Location: http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere { - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } + "foo": { + "b\u00e1r": 1 } } -gabbi.tests.test_intercept.backref_post_some_more_json.test_request -gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_custom_response_handler -gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok -/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", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok +#### yaml parital from disk #### +> POST http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8: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://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere +< Location: http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere + +{ + "type": "cat", + "sound": "meow" +} + +#### yaml partial both sides #### +> POST http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere +< Location: http://e80a12a0-1abf-4119-b291-ac0d13a4e8b8:8001/somewhere + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +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 +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_get_a_historical_response_via_jsonpath.test_request +gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request ... ok #### get simple page #### -> GET http://32341e01-ffae-466d-b609-9b57be4bd3cf:8001/ +> GET http://b23d9ce8-2774-47cf-886c-c20d79e9b526:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8168,12 +8234,56 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://32341e01-ffae-466d-b609-9b57be4bd3cf:8001/ +< X-Gabbi-url: http://b23d9ce8-2774-47cf-886c-c20d79e9b526:8001/ {} +#### json encoded value from disk #### +> POST http://4c698d3a-3738-42aa-b42c-7ea26e0d2248: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://4c698d3a-3738-42aa-b42c-7ea26e0d2248:8001/ +< Location: http://4c698d3a-3738-42aa-b42c-7ea26e0d2248:8001/ + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json parital from disk #### +> POST http://4c698d3a-3738-42aa-b42c-7ea26e0d2248: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://4c698d3a-3738-42aa-b42c-7ea26e0d2248:8001/ +< Location: http://4c698d3a-3738-42aa-b42c-7ea26e0d2248:8001/ + +{ + "type": "cat", + "sound": "meow" +} + #### post data #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8186,8 +8296,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "one_string": "1", @@ -8196,7 +8306,7 @@ } #### use data #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8209,8 +8319,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "one_string": "1", @@ -8219,7 +8329,7 @@ } #### from environ #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8230,15 +8340,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "one_environ": 1 } #### with list #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8251,8 +8361,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ [ 1, @@ -8261,7 +8371,7 @@ ] #### object with list #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8281,8 +8391,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "collection": [ @@ -8298,7 +8408,7 @@ } #### post extra data #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8327,8 +8437,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "a": 1, @@ -8353,7 +8463,7 @@ } #### check posted data #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8382,8 +8492,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "a": 1, @@ -8408,7 +8518,7 @@ } #### Post again and check the results #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8437,8 +8547,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "a": 1, @@ -8463,7 +8573,7 @@ } #### Post again and check the results (reversed) #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8492,8 +8602,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "a": 1, @@ -8518,7 +8628,7 @@ } #### string internal replace #### -> POST http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +> POST http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8530,80 +8640,32 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ -< Location: http://29297f6e-28dd-44a0-bd57-6c094f133ae8:8001/ +< X-Gabbi-url: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ +< Location: http://c5e41c41-9546-4a01-9538-a02b083c278b:8001/ { "endpoint_resp": "/api/0.1/item/1", "endpoint_var": "/api/0.1/item/1" } -#### default casts #### -> POST http://b5dcf572-6dae-4ffc-b797-8cf06189ebbc: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://b5dcf572-6dae-4ffc-b797-8cf06189ebbc:8001/ -< Location: http://b5dcf572-6dae-4ffc-b797-8cf06189ebbc:8001/ - -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} - -#### cast to string #### -> POST http://b5dcf572-6dae-4ffc-b797-8cf06189ebbc: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://b5dcf572-6dae-4ffc-b797-8cf06189ebbc:8001/ -< Location: http://b5dcf572-6dae-4ffc-b797-8cf06189ebbc:8001/ - -{ - "string": "2" -} - ---------------------------------------------------------------------- -Ran 314 tests in 3.794s +Ran 314 tests in 5.395s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.004 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 1.000 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 0.841 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.610 -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.429 -gabbi.tests.test_intercept.poll_loop_location.test_request 0.415 -gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request 0.378 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.375 -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 0.326 -gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.258 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 2.208 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 1.393 +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 0.859 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.773 +gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.735 +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 0.701 +gabbi.tests.test_intercept.coerce_object_with_list.test_request 0.612 +gabbi.tests.test_intercept.coerce_with_list.test_request 0.596 +gabbi.tests.test_intercept.json-extensions_test_filtered.test_request 0.472 +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.431 + rm -rf .stestr make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_install -O--buildsystem=pybuild @@ -8708,14 +8770,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 \ @@ -8724,7 +8786,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' @@ -8739,14 +8801,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 \ @@ -8755,7 +8817,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' @@ -8789,12 +8851,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/504906/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/504906/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/3921920 and its subdirectories -I: Current time: Fri Mar 13 18:58:02 -12 2026 -I: pbuilder-time-stamp: 1773471482 +I: removing directory /srv/workspace/pbuilder/504906 and its subdirectories +I: Current time: Sun Feb 9 14:36:42 +14 2025 +I: pbuilder-time-stamp: 1739061402