Diff of the two buildlogs: -- --- b1/build.log 2024-12-25 11:10:43.789314677 +0000 +++ b2/build.log 2024-12-25 11:30:53.458164769 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Dec 24 23:08:46 -12 2024 -I: pbuilder-time-stamp: 1735124926 +I: Current time: Wed Jan 28 07:35:18 +14 2026 +I: pbuilder-time-stamp: 1769535318 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -26,54 +26,86 @@ 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/48563/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/102839/tmp/hooks/D01_modify_environment starting +debug: Running on ionos6-i386. +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 Jan 27 17:38 /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/102839/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/102839/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=11 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='i386' + 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]="i686-pc-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=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='54f60bf7d003423b9c7cbbf58ab235f7' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='48563' - PS1='# ' - PS2='> ' + INVOCATION_ID=be381d84341747a0adfcb9f9550297ab + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-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=102839 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.h9eMEZBd/pbuilderrc_jPb9 --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.h9eMEZBd/b1 --logfile b1/build.log python-gabbi_3.0.0-3.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132: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.h9eMEZBd/pbuilderrc_A8aH --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.h9eMEZBd/b2 --logfile b2/build.log python-gabbi_3.0.0-3.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos2-i386 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-28-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/48563/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/102839/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -307,7 +339,7 @@ Get: 158 http://deb.debian.org/debian trixie/main i386 subunit all 1.4.2-3 [5248 B] Get: 159 http://deb.debian.org/debian trixie/main i386 python3-stestr all 4.1.0-3 [56.9 kB] Get: 160 http://deb.debian.org/debian trixie/main i386 python3-wsgi-intercept all 1.13.0-2 [18.6 kB] -Fetched 52.0 MB in 1s (71.6 MB/s) +Fetched 52.0 MB in 18s (2921 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libjs-jquery. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19953 files and directories currently installed.) @@ -831,8 +863,8 @@ Setting up tzdata (2024b-4) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed Dec 25 11:09:21 UTC 2024. -Universal Time is now: Wed Dec 25 11:09:21 UTC 2024. +Local time is now: Tue Jan 27 17:42:15 UTC 2026. +Universal Time is now: Tue Jan 27 17:42:15 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpython3.13-minimal:i386 (3.13.1-2) ... @@ -993,7 +1025,11 @@ fakeroot is already the newest version (1.36.2-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/python-gabbi-3.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-gabbi_3.0.0-3_source.changes +I: user script /srv/workspace/pbuilder/102839/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/102839/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.13 3.12 -+ [ yes = yes ] +++ py3versions -vr ++ PYTHON3S='3.13 3.12' ++ '[' yes = yes ']' + TARGET_DIR=tmp -+ pwd ++ for pyvers in ${PYTHON3S} +++ pwd + python3.13 setup.py install --install-layout=deb --root /build/reproducible-path/python-gabbi-3.0.0/debian/tmp /usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! @@ -1189,49 +1230,49 @@ running build running build_py creating build/lib/gabbi/tests -copying gabbi/tests/test_inner_fixture.py -> build/lib/gabbi/tests -copying gabbi/tests/test_intercept.py -> build/lib/gabbi/tests +copying gabbi/tests/test_parse_url.py -> build/lib/gabbi/tests +copying gabbi/tests/test_fixtures.py -> build/lib/gabbi/tests +copying gabbi/tests/util.py -> build/lib/gabbi/tests +copying gabbi/tests/test_driver.py -> build/lib/gabbi/tests copying gabbi/tests/custom_response_handler.py -> build/lib/gabbi/tests -copying gabbi/tests/test_load_data_file.py -> build/lib/gabbi/tests +copying gabbi/tests/test_inner_fixture.py -> build/lib/gabbi/tests +copying gabbi/tests/test_utils.py -> build/lib/gabbi/tests +copying gabbi/tests/test_handlers.py -> build/lib/gabbi/tests +copying gabbi/tests/test_suite.py -> build/lib/gabbi/tests +copying gabbi/tests/test_suitemaker.py -> build/lib/gabbi/tests copying gabbi/tests/test_replacers.py -> build/lib/gabbi/tests +copying gabbi/tests/test_intercept.py -> build/lib/gabbi/tests copying gabbi/tests/test_live.py -> build/lib/gabbi/tests -copying gabbi/tests/test_runner.py -> build/lib/gabbi/tests +copying gabbi/tests/test_syntax_warning.py -> build/lib/gabbi/tests copying gabbi/tests/test_jsonpath.py -> build/lib/gabbi/tests -copying gabbi/tests/test_parse_url.py -> build/lib/gabbi/tests -copying gabbi/tests/test_suite.py -> build/lib/gabbi/tests -copying gabbi/tests/test_use_prior_test.py -> build/lib/gabbi/tests -copying gabbi/tests/test_driver.py -> build/lib/gabbi/tests -copying gabbi/tests/test_fixtures.py -> build/lib/gabbi/tests -copying gabbi/tests/test_unsafe_yaml.py -> build/lib/gabbi/tests copying gabbi/tests/test_history.py -> build/lib/gabbi/tests -copying gabbi/tests/simple_wsgi.py -> build/lib/gabbi/tests -copying gabbi/tests/test_suitemaker.py -> build/lib/gabbi/tests -copying gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/tests -copying gabbi/tests/util.py -> build/lib/gabbi/tests -copying gabbi/tests/test_utils.py -> build/lib/gabbi/tests +copying gabbi/tests/test_unsafe_yaml.py -> build/lib/gabbi/tests +copying gabbi/tests/test_load_data_file.py -> build/lib/gabbi/tests copying gabbi/tests/__init__.py -> build/lib/gabbi/tests +copying gabbi/tests/test_runner.py -> build/lib/gabbi/tests copying gabbi/tests/test_data_to_string.py -> build/lib/gabbi/tests -copying gabbi/tests/test_syntax_warning.py -> build/lib/gabbi/tests -copying gabbi/tests/test_handlers.py -> build/lib/gabbi/tests -copying gabbi/pytester.py -> build/lib/gabbi -copying gabbi/driver.py -> build/lib/gabbi -copying gabbi/suite.py -> build/lib/gabbi +copying gabbi/tests/simple_wsgi.py -> build/lib/gabbi/tests +copying gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/tests +copying gabbi/tests/test_use_prior_test.py -> build/lib/gabbi/tests +creating build/lib/gabbi/handlers +copying gabbi/handlers/core.py -> build/lib/gabbi/handlers +copying gabbi/handlers/yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/handlers +copying gabbi/handlers/base.py -> build/lib/gabbi/handlers +copying gabbi/handlers/jsonhandler.py -> build/lib/gabbi/handlers +copying gabbi/handlers/__init__.py -> build/lib/gabbi/handlers +copying gabbi/case.py -> build/lib/gabbi copying gabbi/runner.py -> build/lib/gabbi +copying gabbi/suite.py -> build/lib/gabbi +copying gabbi/driver.py -> build/lib/gabbi +copying gabbi/json_parser.py -> build/lib/gabbi copying gabbi/suitemaker.py -> build/lib/gabbi copying gabbi/exception.py -> build/lib/gabbi +copying gabbi/utils.py -> build/lib/gabbi +copying gabbi/pytester.py -> build/lib/gabbi copying gabbi/fixture.py -> build/lib/gabbi copying gabbi/httpclient.py -> build/lib/gabbi copying gabbi/reporter.py -> build/lib/gabbi -copying gabbi/json_parser.py -> build/lib/gabbi copying gabbi/__init__.py -> build/lib/gabbi -copying gabbi/utils.py -> build/lib/gabbi -copying gabbi/case.py -> build/lib/gabbi -creating build/lib/gabbi/handlers -copying gabbi/handlers/jsonhandler.py -> build/lib/gabbi/handlers -copying gabbi/handlers/base.py -> build/lib/gabbi/handlers -copying gabbi/handlers/core.py -> build/lib/gabbi/handlers -copying gabbi/handlers/yaml_disk_loading_jsonhandler.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,98 +1292,99 @@ running install_lib creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/pytester.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/case.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/json_parser.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +creating /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/yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/base.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/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers 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/exception.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 +copying build/lib/gabbi/pytester.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/httpclient.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_inner_fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_intercept.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_parse_url.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_fixtures.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/util.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/custom_response_handler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_load_data_file.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_inner_fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_utils.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_handlers.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_suitemaker.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_replacers.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_intercept.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_live.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_syntax_warning.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_jsonpath.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_parse_url.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_use_prior_test.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_fixtures.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_unsafe_yaml.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_history.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/simple_wsgi.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_suitemaker.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/util.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_utils.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_unsafe_yaml.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_load_data_file.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_data_to_string.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_syntax_warning.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_handlers.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/httpclient.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/tests/simple_wsgi.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_use_prior_test.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/reporter.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/json_parser.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -creating /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/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/yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers -copying build/lib/gabbi/handlers/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/utils.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/case.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/pytester.py to pytester.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/case.py to case.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/runner.py to runner.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suite.py to suite.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/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/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/__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/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/exception.py to exception.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/pytester.py to pytester.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_fixtures.py to test_fixtures.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/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/test_load_data_file.py to test_load_data_file.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_utils.py to test_utils.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_handlers.py to test_handlers.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suitemaker.py to test_suitemaker.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_replacers.py to test_replacers.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_live.py to test_live.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_syntax_warning.py to test_syntax_warning.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_jsonpath.py to test_jsonpath.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_fixtures.py to test_fixtures.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_unsafe_yaml.py to test_unsafe_yaml.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_history.py to test_history.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suitemaker.py to test_suitemaker.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_utils.py to test_utils.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_unsafe_yaml.py to test_unsafe_yaml.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_load_data_file.py to test_load_data_file.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_data_to_string.py to test_data_to_string.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_syntax_warning.py to test_syntax_warning.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_handlers.py to test_handlers.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/reporter.py to reporter.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/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/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__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/__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/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/case.py to case.cpython-313.pyc running install_egg_info Copying gabbi.egg-info to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info Skipping SOURCES.txt running install_scripts Installing gabbi-run script to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/bin -+ pwd ++ 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. !! @@ -1395,58 +1437,58 @@ 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/pytester.py to pytester.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/case.py to case.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/runner.py to runner.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/driver.py to driver.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/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/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/__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/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/exception.py to exception.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/pytester.py to pytester.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_fixtures.py to test_fixtures.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/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/test_load_data_file.py to test_load_data_file.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_utils.py to test_utils.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_handlers.py to test_handlers.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suitemaker.py to test_suitemaker.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_replacers.py to test_replacers.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_live.py to test_live.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_syntax_warning.py to test_syntax_warning.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_jsonpath.py to test_jsonpath.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_fixtures.py to test_fixtures.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_unsafe_yaml.py to test_unsafe_yaml.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_history.py to test_history.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suitemaker.py to test_suitemaker.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_utils.py to test_utils.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_unsafe_yaml.py to test_unsafe_yaml.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_load_data_file.py to test_load_data_file.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_data_to_string.py to test_data_to_string.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_syntax_warning.py to test_syntax_warning.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_handlers.py to test_handlers.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/reporter.py to reporter.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/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/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__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/__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/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/case.py to case.cpython-312.pyc running install_egg_info removing '/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info' (and everything under it) Copying gabbi.egg-info to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi-3.0.0.egg-info Skipping SOURCES.txt running install_scripts Installing gabbi-run script to /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/bin -+ pwd -+ rm -rf /build/reproducible-path/python-gabbi-3.0.0/debian/python*/usr/lib/python*/dist-packages/*.pth -+ pwd -+ rm -rf /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python*/dist-packages/*.pth +++ 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,256 +1497,129 @@ + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + TEST_SERIAL_OPT= -+ echo WARNING: --no-py2 is deprecated, and always on. ++ for i in $@ ++ case "${1}" in ++ echo 'WARNING: --no-py2 is deprecated, and always on.' WARNING: --no-py2 is deprecated, and always on. + shift -+ py3versions -vr -+ PYTHON3S=3.13 3.12 -+ [ yes = no ] -+ [ no = yes ] -+ [ 3.13 = disabled ] -+ echo 3.13 -+ cut -d. -f1 ++ for i in $@ ++ case "${1}" in +++ py3versions -vr ++ PYTHON3S='3.13 3.12' ++ '[' yes = no ']' ++ '[' no = yes ']' ++ for pyvers in ${PYTHON3S} ++ '[' 3.13 = disabled ']' +++ echo 3.13 +++ cut -d. -f1 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ echo '===> Testing with python (python3)' ===> Testing with python (python3) -+ pwd -+ [ -d /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -z ] -+ pwd -+ echo Implicitly adding PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages +++ pwd ++ '[' -d /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z '' ']' +++ pwd ++ echo 'Implicitly adding PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages' Implicitly adding PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages -+ pwd +++ pwd + export PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages -+ [ -e .stestr.conf ] -+ [ -x /usr/bin/python3-stestr ] ++ PYTHONPATH=/build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ++ '[' -e .stestr.conf ']' ++ '[' -x /usr/bin/python3-stestr ']' + STESTR=stestr + rm -rf .stestr -+ PYTHON=python3.13 stestr run --parallel --subunit gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request) ++ 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_inner_fixture.inner_get_one.test_request -gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_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_inner_fixture.inner_get_two.test_request -gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -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_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_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.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.regex_regex_header_test.test_request -gabbi.tests.test_intercept.regex_regex_header_test.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 -/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_intercept.self_inheritance_of_defaults.test_request -gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok -gabbi.tests.test_intercept.self_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.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.host-header_ssl_with_capitalised_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request -gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_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.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.self_post_a_body.test_request -gabbi.tests.test_intercept.self_post_a_body.test_request ... ok -gabbi.tests.test_intercept.host-header_host_without_ssl.test_request -gabbi.tests.test_intercept.host-header_host_without_ssl.test_request ... ok -gabbi.tests.test_intercept.self_get_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_location_from_headers.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_history.HistoryTest.test_response_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.self_query_returned.test_request -gabbi.tests.test_intercept.self_query_returned.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.last-url_get_it_a_third_time.test_request +gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok +gabbi.tests.test_intercept.last-url_get_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok gabbi.tests.test_intercept.self_simple_post.test_request gabbi.tests.test_intercept.self_simple_post.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_history.HistoryTest.test_response_replace_with_history -gabbi.tests.test_history.HistoryTest.test_response_replace_with_history ... ok -gabbi.tests.test_history.HistoryTest.test_url_replace_history -gabbi.tests.test_history.HistoryTest.test_url_replace_history ... ok -gabbi.tests.test_history.HistoryTest.test_url_replace_prior -gabbi.tests.test_history.HistoryTest.test_url_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok -gabbi.tests.test_intercept.self_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_handlers.HandlersTest.test_response_json_paths_fail_data -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... 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_handlers.HandlersTest.test_response_json_paths_fail_path -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok -gabbi.tests.test_intercept.self_test_pluggable_response.test_request -gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok -gabbi.tests.test_intercept.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.failskip_skip_me.test_request -gabbi.tests.test_intercept.failskip_skip_me.test_request ... skipped "Skipping for now because we can't do it" -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok -gabbi.tests.test_intercept.data_load_encoded_text.test_request -gabbi.tests.test_intercept.data_load_encoded_text.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 -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", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.self_confirm_environ.test_request -gabbi.tests.test_intercept.self_confirm_environ.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.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 -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_fail_pluggable_response.test_request -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... expected failure - if self.fp: -AttributeError: 'HTTPResponse' object has no attribute 'fp' -Exception ignored in: -Traceback (most recent call last): - File "/usr/lib/python3.13/http/client.py", line 434, in close - if self.fp: -AttributeError: 'HTTPResponse' object has no attribute 'fp' -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request -gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... ok -gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request -gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok -gabbi.tests.test_intercept.self_post_a_body_with_query.test_request -gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok -gabbi.tests.test_intercept.self_test_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_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.method-shortcut_post_with_query.test_request -gabbi.tests.test_intercept.method-shortcut_post_with_query.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_handlers.HandlersTest.test_response_json_paths_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok -gabbi.tests.test_intercept.self_non_json_response_failure.test_request -gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure -gabbi.tests.test_intercept.self_non_json_response_failure.test_request -gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... 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.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_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_json_derived_content_type.test_request -gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex ... 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_utils.BinaryTypesTest.test_binary +gabbi.tests.test_utils.BinaryTypesTest.test_binary ... ok +gabbi.tests.test_utils.BinaryTypesTest.test_not_binary +gabbi.tests.test_utils.BinaryTypesTest.test_not_binary ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok +#### get simple page #### +> GET http://dfa8151a-f7fb-49e5-a5ef-e2809270bfc9: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://dfa8151a-f7fb-49e5-a5ef-e2809270bfc9:8001/ + +{} + +#### default casts #### +> POST http://f50ef457-4525-4ac7-8300-798b92941fde: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://f50ef457-4525-4ac7-8300-798b92941fde:8001/ +< Location: http://f50ef457-4525-4ac7-8300-798b92941fde:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + +#### cast to string #### +> POST http://f50ef457-4525-4ac7-8300-798b92941fde: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://f50ef457-4525-4ac7-8300-798b92941fde:8001/ +< Location: http://f50ef457-4525-4ac7-8300-798b92941fde:8001/ + +{ + "string": "2" +} + /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_driver.DriverTest.test_build_require_ssl @@ -1713,242 +1628,151 @@ 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_handlers.HandlersTest.test_response_json_paths_substitution_noregex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... 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.json-extensions_test_filtered.test_request -gabbi.tests.test_intercept.json-extensions_test_filtered.test_request ... ok gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok -gabbi.tests.test_intercept.method-shortcut_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.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_handlers.HandlersTest.test_response_json_paths_substitution_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... 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.regex_regex_string_test_json.test_request -gabbi.tests.test_intercept.regex_regex_string_test_json.test_request ... ok gabbi.tests.test_driver.DriverTest.test_driver_prefix gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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.regex_regex_string_test_mix.test_request -gabbi.tests.test_intercept.regex_regex_string_test_mix.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.failskip_wrong_status.test_request -gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure -gabbi.tests.test_intercept.failskip_wrong_status.test_request -gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok -gabbi.tests.test_intercept.data_load_image_file.test_request -gabbi.tests.test_intercept.data_load_image_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_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.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.skipall_a_skipped_test.test_request -gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' -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.data_partial_json_from_disk.test_request -gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok -gabbi.tests.test_intercept.self_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.test_request ... ok -gabbi.tests.test_intercept.method-shortcut_simple_post.test_request -gabbi.tests.test_intercept.method-shortcut_simple_post.test_request ... ok -gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok -gabbi.tests.test_intercept.poll_poller_fail.test_request -gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure -gabbi.tests.test_intercept.poll_poller_fail.test_request -gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok -gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request -gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request ... ok -gabbi.tests.test_intercept.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_multiline.test_request -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok -gabbi.tests.test_intercept.coerce_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok -gabbi.tests.test_intercept.casting_cast_to_string.test_request -gabbi.tests.test_intercept.casting_cast_to_string.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_three.test_request -gabbi.tests.test_intercept.fixture_just_to_see_three.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.data_json_value_from_disk.test_request -gabbi.tests.test_intercept.data_json_value_from_disk.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.json-extensions_test_sort.test_request -gabbi.tests.test_intercept.json-extensions_test_sort.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.queryparams_replacers_in_params.test_request -gabbi.tests.test_intercept.queryparams_replacers_in_params.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.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_jsonpath.JSONPathTest.test_basic_match -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... 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.header-key_header_named_http.test_request -gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok -gabbi.tests.test_intercept.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.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.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_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... 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_jsonpath.JSONPathTest.test_len_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... 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_jsonpath.JSONPathTest.test_len_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... 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.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_jsonpath.JSONPathTest.test_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok +gabbi.tests.test_inner_fixture.inner_get_two.test_request +gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok +gabbi.tests.test_intercept.self_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_syntax_warning.DriverTest.test_driver_warnings_on_files -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see.test_request -gabbi.tests.test_intercept.fixture_just_to_see.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_two.test_request -gabbi.tests.test_intercept.fixture_just_to_see_two.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.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.fixture_just_to_see_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.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_post_data.test_request gabbi.tests.test_intercept.coerce_post_data.test_request ... ok -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok -#### get simple page #### -> GET http://5858d8a5-d301-4263-a54c-32a6e5969f33: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://5858d8a5-d301-4263-a54c-32a6e5969f33:8001/ - -{} - -#### left side json one #### -> POST http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ +gabbi.tests.test_intercept.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.test_request ... ok +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok +#### post data #### +> POST http://f8963f44-44fd-4c15-8143-5b903ca7195c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ -< Location: http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ +< X-Gabbi-url: http://f8963f44-44fd-4c15-8143-5b903ca7195c:8001/ +< Location: http://f8963f44-44fd-4c15-8143-5b903ca7195c:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### expand left side #### -> POST http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ +#### use data #### +> POST http://f8963f44-44fd-4c15-8143-5b903ca7195c: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://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ -< Location: http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ +< X-Gabbi-url: http://f8963f44-44fd-4c15-8143-5b903ca7195c:8001/ +< Location: http://f8963f44-44fd-4c15-8143-5b903ca7195c:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### expand environ left side #### -> POST http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ -> content-type: application/json +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.casting_historic_casted_json.test_request +gabbi.tests.test_intercept.casting_historic_casted_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_intercept.data_load_json_file.test_request +gabbi.tests.test_intercept.data_load_json_file.test_request ... ok +gabbi.tests.test_intercept.self_bogus_method.test_request +gabbi.tests.test_intercept.self_bogus_method.test_request ... ok +gabbi.tests.test_intercept.self_use_prior_location.test_request +gabbi.tests.test_intercept.self_use_prior_location.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.poll_loop_location.test_request +gabbi.tests.test_intercept.poll_loop_location.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.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.contenttype_put_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.header-key_header_named_http.test_request +gabbi.tests.test_intercept.header-key_header_named_http.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.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 +#### get simple page #### +> GET http://9d232397-ace8-4254-9aa4-ec2023c4662a:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ -< Location: http://c9ce220c-7396-4f88-aa95-e853e17bb007:8001/ +< X-Gabbi-url: http://9d232397-ace8-4254-9aa4-ec2023c4662a:8001/ -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} +{} -gabbi.tests.test_intercept.queryparams_multi_params.test_request -gabbi.tests.test_intercept.queryparams_multi_params.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.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_history.HistoryTest.test_cookie_replace_history +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_prior +gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_history +gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior +gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok #### get simple page #### -> GET http://83ca29b7-f128-4ae1-9bc7-7661fca57c84:8001/ +> GET http://e0abe9f8-8257-40e4-ad7c-e8eff7699e20:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -1956,67 +1780,60 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://83ca29b7-f128-4ae1-9bc7-7661fca57c84:8001/ +< X-Gabbi-url: http://e0abe9f8-8257-40e4-ad7c-e8eff7699e20:8001/ {} -#### left side json one #### -> POST http://373ad85b-3729-4b71-894f-285969247380:8001/ +#### default casts #### +> POST http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://373ad85b-3729-4b71-894f-285969247380:8001/ -< Location: http://373ad85b-3729-4b71-894f-285969247380:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ +< Location: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### expand left side #### -> POST http://373ad85b-3729-4b71-894f-285969247380:8001/ +#### cast to string #### +> POST http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://373ad85b-3729-4b71-894f-285969247380:8001/ -< Location: http://373ad85b-3729-4b71-894f-285969247380:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ +< Location: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "string": "2" } -#### get simple page #### -> GET http://5fb3050a-1659-413e-8192-852b82d0fc67: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://5fb3050a-1659-413e-8192-852b82d0fc67:8001/ - -{} - -#### default casts #### -> POST http://58c7843d-3ebd-4089-b464-eba748f29210:8001/ +#### json set up #### +> POST http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2024,7 +1841,7 @@ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } @@ -2032,39 +1849,140 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://58c7843d-3ebd-4089-b464-eba748f29210:8001/ -< Location: http://58c7843d-3ebd-4089-b464-eba748f29210:8001/ +< X-Gabbi-url: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ +< Location: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } -#### cast to string #### -> POST http://58c7843d-3ebd-4089-b464-eba748f29210:8001/ +#### send casted json #### +> POST http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a: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://58c7843d-3ebd-4089-b464-eba748f29210:8001/ -< Location: http://58c7843d-3ebd-4089-b464-eba748f29210:8001/ +< X-Gabbi-url: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ +< Location: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ { - "string": "2" + "casted": 2 } -#### json encoded value from disk #### -> POST http://99874d72-e2f3-4fbd-83b8-03a3e73b9f4c:8001/ +#### historic casted json #### +> POST http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a: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://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ +< Location: http://134dcf7a-26e6-4c2a-b590-2c24ba5a8f5a:8001/ + +{ + "casted": 2 +} + +/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.data_load_encoded_text.test_request +gabbi.tests.test_intercept.data_load_encoded_text.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.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_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_left_side_json_one.test_request +gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok +gabbi.tests.test_intercept.self_get_simple_page.test_request +gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok +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_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.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.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 +#### loop location #### +> GET http://ab6ed0d0-776b-47b9-8aab-92ae110a39e1: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://ab6ed0d0-776b-47b9-8aab-92ae110a39e1: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://ab6ed0d0-776b-47b9-8aab-92ae110a39e1: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://ab6ed0d0-776b-47b9-8aab-92ae110a39e1:8001/poller?count=2&x=1&y=2&z=3.4 + +{ + "count": [ + "2" + ], + "x": [ + "1" + ], + "y": [ + "2" + ], + "z": [ + "3.4" + ] +} + +#### yaml encoded value from disk #### +> POST http://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2077,8 +1995,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://99874d72-e2f3-4fbd-83b8-03a3e73b9f4c:8001/ -< Location: http://99874d72-e2f3-4fbd-83b8-03a3e73b9f4c:8001/ +< X-Gabbi-url: http://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere +< Location: http://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere { "foo": { @@ -2086,8 +2004,8 @@ } } -#### yaml encoded value from disk #### -> POST http://f27e0a94-3006-46c1-aba1-c2ef8002a997:8001/somewhere +#### json encoded value from disk #### +> POST http://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2100,8 +2018,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f27e0a94-3006-46c1-aba1-c2ef8002a997:8001/somewhere -< Location: http://f27e0a94-3006-46c1-aba1-c2ef8002a997:8001/somewhere +< X-Gabbi-url: http://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere +< Location: http://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere { "foo": { @@ -2109,58 +2027,71 @@ } } -gabbi.tests.test_intercept.coerce_with_list.test_request -gabbi.tests.test_intercept.coerce_with_list.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.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.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_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.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.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.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.backref_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.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 +#### yaml parital from disk #### +> POST http://910e2a0c-71a9-443e-9047-ccf10a705946: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://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere +< Location: http://910e2a0c-71a9-443e-9047-ccf10a705946:8001/somewhere + +{ + "type": "cat", + "sound": "meow" +} + +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.cookie_get_a_cookie.test_request +gabbi.tests.test_intercept.cookie_get_a_cookie.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 +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok +gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request +gabbi.tests.test_intercept.last-url_get_a_historical_url.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.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 +#### header named http #### +> GET http://31c11292-e2cb-4651-98bb-aa4c9e3c401d: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://31c11292-e2cb-4651-98bb-aa4c9e3c401d:8001/header_key +< HTTP: some-scheme + +{} + #### left side json one #### -> POST http://4ea55352-1c5a-4870-8dd1-bb637f6e7780:8001/ +> POST http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2172,158 +2103,247 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4ea55352-1c5a-4870-8dd1-bb637f6e7780:8001/ -< Location: http://4ea55352-1c5a-4870-8dd1-bb637f6e7780:8001/ +< X-Gabbi-url: http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ +< Location: http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ { "alpha": "alpha1", "beta": "beta1" } -#### post data #### -> POST http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +#### expand left side #### +> POST http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ -< Location: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +< X-Gabbi-url: http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ +< Location: http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta" } -#### use data #### -> POST http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +#### expand environ left side #### +> POST http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ -< Location: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +< X-Gabbi-url: http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ +< Location: http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } -#### from environ #### -> POST http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +#### set key and value #### +> GET http://97f44d6e-36a2-41e6-ad93-c4ab6a2d39ae:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) + +< 200 OK +< Content-Type: application/json + { - "one_environ": 1 + "1": "10" +} + +#### default casts #### +> POST http://a643e152-6c2c-4b11-9e2d-6139eea622ed: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 ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ -< Location: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ +< Location: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ { - "one_environ": 1 + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### with list #### -> POST http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +#### cast to string #### +> POST http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - 1, - 2, - "3" -] +{ + "string": "2" +} < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ -< Location: http://9adcecea-c91e-4f75-b6e2-dba35b633ff8:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ +< Location: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ -[ - 1, - 2, - "3" -] +{ + "string": "2" +} -#### yaml encoded value from disk #### -> POST http://b659f472-1f17-4480-884f-b4cdaa0bcfed:8001/somewhere +#### json set up #### +> POST http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b659f472-1f17-4480-884f-b4cdaa0bcfed:8001/somewhere -< Location: http://b659f472-1f17-4480-884f-b4cdaa0bcfed:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ +< Location: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } -#### json encoded value from disk #### -> POST http://b659f472-1f17-4480-884f-b4cdaa0bcfed:8001/somewhere +#### send casted json #### +> POST http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b659f472-1f17-4480-884f-b4cdaa0bcfed:8001/somewhere -< Location: http://b659f472-1f17-4480-884f-b4cdaa0bcfed:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ +< Location: http://a643e152-6c2c-4b11-9e2d-6139eea622ed:8001/ { - "foo": { - "b\u00e1r": 1 - } + "casted": 2 } -gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request -gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.data_load_data_dictionary.test_request +gabbi.tests.test_intercept.data_load_data_dictionary.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.data_load_data_list.test_request +gabbi.tests.test_intercept.data_load_data_list.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.json-extensions_test_sort.test_request +gabbi.tests.test_intercept.json-extensions_test_sort.test_request ... ok +gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request +gabbi.tests.test_intercept.queryparams_replacers_in_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_intercept.queryparams_joined_params.test_request +gabbi.tests.test_intercept.queryparams_joined_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.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_put_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_inner_fixture.inner_get_one.test_request +gabbi.tests.test_inner_fixture.inner_get_one.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.jsonbody_test_empty_list.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +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 +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.self_post_a_body.test_request +gabbi.tests.test_intercept.self_post_a_body.test_request ... ok +gabbi.tests.test_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.contenttype_patch_no_content-type.test_request gabbi.tests.test_intercept.contenttype_patch_no_content-type.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.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.regex_regex_header_test.test_request +gabbi.tests.test_intercept.regex_regex_header_test.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 +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", +/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.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.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_json_derived_content_type.test_request +gabbi.tests.test_intercept.self_json_derived_content_type.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 #### get simple page #### -> GET http://753e1b4b-eeee-4c7a-a4bc-09db58a2b851:8001/ +> GET http://94296cac-f2a8-44d8-aaf7-8fc6e068dc1f:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2331,114 +2351,185 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://753e1b4b-eeee-4c7a-a4bc-09db58a2b851:8001/ +< X-Gabbi-url: http://94296cac-f2a8-44d8-aaf7-8fc6e068dc1f:8001/ {} -#### json encoded value from disk #### -> POST http://0a4737fd-1159-4f73-baff-a91452b2dd7a:8001/ +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.jsonbody_test_empty_dict.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok +gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request +gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request ... ok +gabbi.tests.test_intercept.json-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.data_json_value_from_disk.test_request +gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok +gabbi.tests.test_intercept.self_get_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_location_from_headers.test_request ... ok +gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok +gabbi.tests.test_intercept.self_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.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", + ... ok +gabbi.tests.test_intercept.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.test_request ... ok +gabbi.tests.test_intercept.queryparams_simple_param.test_request +gabbi.tests.test_intercept.queryparams_simple_param.test_request ... ok +#### left side json one #### +> POST http://8efe2518-0761-4991-9def-b1e75ccd41c9:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0a4737fd-1159-4f73-baff-a91452b2dd7a:8001/ -< Location: http://0a4737fd-1159-4f73-baff-a91452b2dd7a:8001/ +< X-Gabbi-url: http://8efe2518-0761-4991-9def-b1e75ccd41c9:8001/ +< Location: http://8efe2518-0761-4991-9def-b1e75ccd41c9:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } -#### json parital from disk #### -> POST http://0a4737fd-1159-4f73-baff-a91452b2dd7a:8001/ +#### get simple page #### +> GET http://41afba64-3ed1-4c19-a737-5ef4f832ee63: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://41afba64-3ed1-4c19-a737-5ef4f832ee63:8001/ + +{} + +#### default casts #### +> POST http://3bcf4a18-f977-4021-bdce-237d1c45f24f: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://0a4737fd-1159-4f73-baff-a91452b2dd7a:8001/ -< Location: http://0a4737fd-1159-4f73-baff-a91452b2dd7a:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://3bcf4a18-f977-4021-bdce-237d1c45f24f:8001/ +< Location: http://3bcf4a18-f977-4021-bdce-237d1c45f24f:8001/ { - "type": "cat", - "sound": "meow" + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -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.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_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.cookie_get_a_cookie.test_request -gabbi.tests.test_intercept.cookie_get_a_cookie.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.queryparams_joined_params.test_request -gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok -gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request -gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request ... ok -gabbi.tests.test_intercept.last-url_get_prior_url.test_request -gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok +#### cast to string #### +> POST http://3bcf4a18-f977-4021-bdce-237d1c45f24f: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://3bcf4a18-f977-4021-bdce-237d1c45f24f:8001/ +< Location: http://3bcf4a18-f977-4021-bdce-237d1c45f24f:8001/ + +{ + "string": "2" +} + +#### json set up #### +> POST http://3bcf4a18-f977-4021-bdce-237d1c45f24f: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://3bcf4a18-f977-4021-bdce-237d1c45f24f:8001/ +< Location: http://3bcf4a18-f977-4021-bdce-237d1c45f24f:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +gabbi.tests.test_intercept.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok +gabbi.tests.test_intercept.casting_internal_json_fail.test_request +gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure +gabbi.tests.test_intercept.casting_internal_json_fail.test_request +gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok +gabbi.tests.test_intercept.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.json-extensions_test_filtered.test_request +gabbi.tests.test_intercept.json-extensions_test_filtered.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.method-shortcut_simple_get.test_request +gabbi.tests.test_intercept.method-shortcut_simple_get.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.CreateURLTest.test_create_url_ipv6_already_bracket -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon -gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 -gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_port -gabbi.tests.test_utils.CreateURLTest.test_create_url_port ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix -gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query -gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_simple -gabbi.tests.test_utils.CreateURLTest.test_create_url_simple ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 ... ok -gabbi.tests.test_intercept.backref_post_some_json.test_request -gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok -gabbi.tests.test_intercept.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_that_same_url_again.test_request -gabbi.tests.test_intercept.last-url_get_that_same_url_again.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_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.verbosity_confirm_notempty.test_request +gabbi.tests.test_intercept.verbosity_confirm_notempty.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 +#### confirm notempty #### +> GET http://85daad5d-b6ab-46d3-baba-2621715f3e98:8001/notempty +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK + +notempty + +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://09d49cc9-a54a-472d-aefd-d94df094e853:8001/ +> GET http://7ae212e3-bb4b-44a7-9be2-7028251b8e4c:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2446,192 +2537,275 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://09d49cc9-a54a-472d-aefd-d94df094e853:8001/ +< X-Gabbi-url: http://7ae212e3-bb4b-44a7-9be2-7028251b8e4c:8001/ {} -#### post data #### -> POST http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +#### yaml encoded value from disk #### +> POST http://6a8d6a2e-5e95-4974-a570-f26d640e98ef:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ -< Location: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +< X-Gabbi-url: http://6a8d6a2e-5e95-4974-a570-f26d640e98ef:8001/somewhere +< Location: http://6a8d6a2e-5e95-4974-a570-f26d640e98ef:8001/somewhere { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } -#### use data #### -> POST http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +#### json encoded value from disk #### +> POST http://6a8d6a2e-5e95-4974-a570-f26d640e98ef:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ -< Location: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +< X-Gabbi-url: http://6a8d6a2e-5e95-4974-a570-f26d640e98ef:8001/somewhere +< Location: http://6a8d6a2e-5e95-4974-a570-f26d640e98ef:8001/somewhere { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } -#### from environ #### -> POST http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.queryparams_url_in_param.test_request +gabbi.tests.test_intercept.queryparams_url_in_param.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.skipall_a_skipped_test.test_request +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' +gabbi.tests.test_intercept.self_checklimit.test_request +gabbi.tests.test_intercept.self_checklimit.test_request ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.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.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.coerce_with_list.test_request +gabbi.tests.test_intercept.coerce_with_list.test_request ... ok +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... 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 +/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.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_runner.RunnerTest.test_custom_response_handler +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... 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 ... 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 +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_jsonpath.JSONPathTest.test_basic_match +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_exit_code +gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_input_files +gabbi.tests.test_runner.RunnerTest.test_input_files ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok +gabbi.tests.test_intercept.self_confirm_environ.test_request +gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok +gabbi.tests.test_intercept.regex_regex_string_test_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_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_stdin_data_dir +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_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_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 +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_jsonpath.JSONPathTest.test_len_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_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_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 +gabbi.tests.test_intercept.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_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 +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok +#### yaml encoded value from disk #### +> POST http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_environ": 1 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ -< Location: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +< X-Gabbi-url: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere +< Location: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere { - "one_environ": 1 + "foo": { + "b\u00e1r": 1 + } } -#### with list #### -> POST http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +#### json encoded value from disk #### +> POST http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - 1, - 2, - "3" -] +{ + "foo": { + "b\u00e1r": 1 + } +} < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ -< Location: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +< X-Gabbi-url: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere +< Location: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere -[ - 1, - 2, - "3" -] +{ + "foo": { + "b\u00e1r": 1 + } +} -#### object with list #### -> POST http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +#### yaml parital from disk #### +> POST http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ -< Location: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +< X-Gabbi-url: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere +< Location: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "type": "cat", + "sound": "meow" } -#### post extra data #### -> POST http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +#### yaml partial both sides #### +> POST http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7: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" +[ + { + "type": "cat", + "sound": "meow" }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } + { + "type": "dog", + "sound": "woof" } -} +] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ -< Location: http://71a81c16-4bd6-4fbd-9244-b1147ecd2fd5:8001/ +< X-Gabbi-url: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere +< Location: http://cb59ff61-1c5b-4058-a6d1-5b8e90d15db7:8001/somewhere -{ - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" +[ + { + "type": "cat", + "sound": "meow" }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } + { + "type": "dog", + "sound": "woof" } -} +] +/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_jsonpath.JSONPathTest.test_sorted_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_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_runner.RunnerTest.test_verbosity_arg_none +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok +gabbi.tests.test_intercept.coerce_object_with_list.test_request +gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok #### get simple page #### -> GET http://3c3e8a3e-c8df-4ee5-b32c-bc3d3757b28f:8001/ +> GET http://a12064f7-129b-4151-bd9e-1000cb9c50a6:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2639,215 +2813,279 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3c3e8a3e-c8df-4ee5-b32c-bc3d3757b28f:8001/ +< X-Gabbi-url: http://a12064f7-129b-4151-bd9e-1000cb9c50a6:8001/ {} -#### loop location #### -> GET http://b8ec5ea0-a143-4b9d-96bb-03fcb363f274:8001/poller?count=2&x=1&y=2&z=3.4 +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 +#### get simple page #### +> GET http://8f948596-ae94-4a98-9d55-00a1597d5a6a: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://8f948596-ae94-4a98-9d55-00a1597d5a6a:8001/ +{} -#### loop location #### -> GET http://b8ec5ea0-a143-4b9d-96bb-03fcb363f274:8001/poller?count=2&x=1&y=2&z=3.4 +gabbi.tests.test_intercept.data_load_image_file.test_request +gabbi.tests.test_intercept.data_load_image_file.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok +gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler +gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok +gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify +gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers +gabbi.tests.test_handlers.HandlersTest.test_response_headers ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_data ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header +gabbi.tests.test_handlers.HandlersTest.test_response_headers_fail_header ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_match ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch +gabbi.tests.test_handlers.HandlersTest.test_response_headers_noregex_path_nomatch ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_match ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch +gabbi.tests.test_handlers.HandlersTest.test_response_headers_regex_path_nomatch ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_esc_regex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex +gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok +gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request +gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_simple_post.test_request +gabbi.tests.test_intercept.method-shortcut_simple_post.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 +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.coerce_post_extra_data.test_request +gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok +gabbi.tests.test_intercept.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_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.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 +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 +#### get simple page #### +> GET http://f4ede2ee-cd7e-4a8d-ad41-ee7e1c664435: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://f4ede2ee-cd7e-4a8d-ad41-ee7e1c664435:8001/ +{} -#### loop location #### -> GET http://b8ec5ea0-a143-4b9d-96bb-03fcb363f274:8001/poller?count=2&x=1&y=2&z=3.4 +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.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_handlers.HandlersTest.test_response_json_paths_fail_data +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok +gabbi.tests.test_intercept.queryparams_multi_params.test_request +gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files +gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... 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.jsonbody_test_fully_body.test_request +gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok +#### get simple page #### +> GET http://bdc99bab-1ad6-49b9-9bf2-5d0e35283b80: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://b8ec5ea0-a143-4b9d-96bb-03fcb363f274:8001/poller?count=2&x=1&y=2&z=3.4 +< X-Gabbi-url: http://bdc99bab-1ad6-49b9-9bf2-5d0e35283b80:8001/ -{ - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] -} +{} -#### default casts #### -> POST http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +#### post data #### +> POST http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7: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 + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ -< Location: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ +< Location: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### cast to string #### -> POST http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +#### use data #### +> POST http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ -< Location: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ +< Location: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ { - "string": "2" + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### json set up #### -> POST http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +#### from environ #### +> POST http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7: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 + "one_environ": 1 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ -< Location: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ +< Location: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "one_environ": 1 } -#### send casted json #### -> POST http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +#### with list #### +> POST http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "casted": 2 -} +[ + 1, + 2, + "3" +] < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ -< Location: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ +< Location: http://7bb617f7-7f68-4d9e-a498-cc0d33731bd7:8001/ -{ - "casted": 2 -} +[ + 1, + 2, + "3" +] -#### historic casted json #### -> POST http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +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.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_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_from_disk_json_path +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path ... 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.poll_create_a_thing.test_request +gabbi.tests.test_intercept.poll_create_a_thing.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 +#### json encoded value from disk #### +> POST http://cce699c5-c0c9-456a-b9b8-682ea4102626: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://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ -< Location: http://5ee3c0da-ddc9-441a-a42e-fc76e04639c1:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://cce699c5-c0c9-456a-b9b8-682ea4102626:8001/ +< Location: http://cce699c5-c0c9-456a-b9b8-682ea4102626:8001/ { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } -gabbi.tests.test_intercept.casting_send_casted_json.test_request -gabbi.tests.test_intercept.casting_send_casted_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_intercept.queryparams_url_in_param.test_request -gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok -gabbi.tests.test_intercept.backref_post_some_more_json.test_request -gabbi.tests.test_intercept.backref_post_some_more_json.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_patch_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... 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://cf1f6686-5781-45d0-b685-0c37aa273b26: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://cf1f6686-5781-45d0-b685-0c37aa273b26:8001/ + +{} + #### post data #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +> POST http://777c826b-780d-4394-b931-6a48931ca867:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2860,8 +3098,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://777c826b-780d-4394-b931-6a48931ca867:8001/ +< Location: http://777c826b-780d-4394-b931-6a48931ca867:8001/ { "one_string": "1", @@ -2870,7 +3108,7 @@ } #### use data #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +> POST http://777c826b-780d-4394-b931-6a48931ca867:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2883,8 +3121,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://777c826b-780d-4394-b931-6a48931ca867:8001/ +< Location: http://777c826b-780d-4394-b931-6a48931ca867:8001/ { "one_string": "1", @@ -2893,7 +3131,7 @@ } #### from environ #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +> POST http://777c826b-780d-4394-b931-6a48931ca867:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2904,15 +3142,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://777c826b-780d-4394-b931-6a48931ca867:8001/ +< Location: http://777c826b-780d-4394-b931-6a48931ca867:8001/ { "one_environ": 1 } #### with list #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +> POST http://777c826b-780d-4394-b931-6a48931ca867:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2925,8 +3163,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://777c826b-780d-4394-b931-6a48931ca867:8001/ +< Location: http://777c826b-780d-4394-b931-6a48931ca867:8001/ [ 1, @@ -2935,7 +3173,7 @@ ] #### object with list #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +> POST http://777c826b-780d-4394-b931-6a48931ca867:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2955,8 +3193,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://777c826b-780d-4394-b931-6a48931ca867:8001/ +< Location: http://777c826b-780d-4394-b931-6a48931ca867:8001/ { "collection": [ @@ -2972,7 +3210,7 @@ } #### post extra data #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +> POST http://777c826b-780d-4394-b931-6a48931ca867:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3001,8 +3239,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://777c826b-780d-4394-b931-6a48931ca867:8001/ +< Location: http://777c826b-780d-4394-b931-6a48931ca867:8001/ { "a": 1, @@ -3026,183 +3264,169 @@ } } -#### check posted data #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -> content-type: application/json +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.json-extensions_test_len.test_request +gabbi.tests.test_intercept.json-extensions_test_len.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.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 +Exception ignored in: +Traceback (most recent call last): + File "/usr/lib/python3.13/http/client.py", line 434, in close + if self.fp: +AttributeError: 'HTTPResponse' object has no attribute 'fp' +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... expected failure +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok +gabbi.tests.test_intercept.host-header_ssl_with_host.test_request +gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok +gabbi.tests.test_intercept.host-header_host_without_ssl.test_request +gabbi.tests.test_intercept.host-header_host_without_ssl.test_request ... ok +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok +#### get simple page #### +> GET http://7e6ebebe-0b7f-4b62-8f45-e4a7a515c461:8001/ +> x-random-header: ya > 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 +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://7e6ebebe-0b7f-4b62-8f45-e4a7a515c461:8001/ -{ - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } -} +{} -#### Post again and check the results #### -> POST http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +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.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.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_parse_url.UrlParseTest.test_add_query_params +gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params ... 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_parse_url.UrlParseTest.test_default_port_http +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http ... 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_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 +#### json encoded value from disk #### +> POST http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2: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 - } + "foo": { + "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ -< Location: http://f2a6840c-8145-4784-8b55-b581fbdff759:8001/ +< X-Gabbi-url: http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2:8001/ +< Location: http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2: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 - } + "foo": { + "b\u00e1r": 1 } } -#### default casts #### -> POST http://691d7f43-7d84-472e-848b-7d2968236b43:8001/ +#### json parital from disk #### +> POST http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2: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 + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://691d7f43-7d84-472e-848b-7d2968236b43:8001/ -< Location: http://691d7f43-7d84-472e-848b-7d2968236b43:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2:8001/ +< Location: http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "type": "cat", + "sound": "meow" } -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.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.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_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://15fc566f-bd5e-47b8-8638-0b83810c96bd: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://15fc566f-bd5e-47b8-8638-0b83810c96bd:8001/ - -{} - -#### header named http #### -> GET http://255daa33-bcd2-42f5-98af-35e335951187:8001/header_key -> http: some-scheme +#### json partial both sides #### +> POST http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://255daa33-bcd2-42f5-98af-35e335951187:8001/header_key -< HTTP: some-scheme +< X-Gabbi-url: http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2:8001/ +< Location: http://d2c8ee22-b742-4162-9c9c-a771f2dd46f2:8001/ -{} +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] #### left side json one #### -> POST http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ +> POST http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3214,8 +3438,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ -< Location: http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ +< X-Gabbi-url: http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ +< Location: http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ { "alpha": "alpha1", @@ -3223,7 +3447,7 @@ } #### expand left side #### -> POST http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ +> POST http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3235,8 +3459,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ -< Location: http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ +< X-Gabbi-url: http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ +< Location: http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ { "alpha1": "alpha", @@ -3244,7 +3468,7 @@ } #### expand environ left side #### -> POST http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ +> POST http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3257,8 +3481,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ -< Location: http://f3ea46ae-a4b1-4037-9364-43fa986173a9:8001/ +< X-Gabbi-url: http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ +< Location: http://85a09f39-2c44-428e-9f40-be8d5e2b53b0:8001/ { "alpha1": "alpha", @@ -3266,126 +3490,8 @@ "1": "cow" } -#### set key and value #### -> GET http://f3ea46ae-a4b1-4037-9364-43fa986173a9: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://4ef2202a-2522-4531-9920-5c70ad4ae97a: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://4ef2202a-2522-4531-9920-5c70ad4ae97a:8001/ -< Location: http://4ef2202a-2522-4531-9920-5c70ad4ae97a:8001/ - -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} - -#### yaml encoded value from disk #### -> POST http://e17c0a25-6fca-4808-add5-8d068da8aae6: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://e17c0a25-6fca-4808-add5-8d068da8aae6:8001/somewhere -< Location: http://e17c0a25-6fca-4808-add5-8d068da8aae6:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json encoded value from disk #### -> POST http://e17c0a25-6fca-4808-add5-8d068da8aae6: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://e17c0a25-6fca-4808-add5-8d068da8aae6:8001/somewhere -< Location: http://e17c0a25-6fca-4808-add5-8d068da8aae6:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### yaml parital from disk #### -> POST http://e17c0a25-6fca-4808-add5-8d068da8aae6: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://e17c0a25-6fca-4808-add5-8d068da8aae6:8001/somewhere -< Location: http://e17c0a25-6fca-4808-add5-8d068da8aae6:8001/somewhere - -{ - "type": "cat", - "sound": "meow" -} - -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://69d254fd-610d-4145-a658-63506a02e941: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://69d254fd-610d-4145-a658-63506a02e941:8001/ - -{} - #### post data #### -> POST http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ +> POST http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3398,8 +3504,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ -< Location: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ +< X-Gabbi-url: http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ +< Location: http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ { "one_string": "1", @@ -3408,7 +3514,7 @@ } #### use data #### -> POST http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ +> POST http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3421,8 +3527,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ -< Location: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ +< X-Gabbi-url: http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ +< Location: http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ { "one_string": "1", @@ -3431,7 +3537,7 @@ } #### from environ #### -> POST http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ +> POST http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3442,75 +3548,21 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ -< Location: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ +< X-Gabbi-url: http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ +< Location: http://40dc9fc7-de68-4715-8c9f-019417a53a59:8001/ { "one_environ": 1 } -#### with list #### -> POST http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -[ - 1, - 2, - "3" -] - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ -< Location: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ - -[ - 1, - 2, - "3" -] - -#### object with list #### -> POST http://c7483790-44d6-4bc6-b255-8c2f99f1c96f: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://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ -< Location: http://c7483790-44d6-4bc6-b255-8c2f99f1c96f:8001/ - -{ - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] -} - +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.backref_backref_json_fail_start.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_start.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 #### default casts #### -> POST http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +> POST http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3526,8 +3578,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ -< Location: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +< X-Gabbi-url: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ +< Location: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ { "int": 1, @@ -3538,7 +3590,7 @@ } #### cast to string #### -> POST http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +> POST http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3550,15 +3602,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ -< Location: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +< X-Gabbi-url: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ +< Location: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ { "string": "2" } #### json set up #### -> POST http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +> POST http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3574,8 +3626,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ -< Location: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +< X-Gabbi-url: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ +< Location: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ { "int": 1, @@ -3586,7 +3638,7 @@ } #### send casted json #### -> POST http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +> POST http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3598,128 +3650,168 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ -< Location: http://35fb3f9d-3a3b-4a7e-ba27-d8a6182235af:8001/ +< X-Gabbi-url: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ +< Location: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ { "casted": 2 } -#### yaml encoded value from disk #### -> POST http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +#### historic casted json #### +> POST http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere -< Location: http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ +< Location: http://209ffc9a-362c-409d-8617-67f816062eb3:8001/ { - "foo": { - "b\u00e1r": 1 - } + "casted": 2 } -#### json encoded value from disk #### -> POST http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +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_handlers.HandlersTest.test_response_json_paths_yamlhandler +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type +gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_strings +gabbi.tests.test_handlers.HandlersTest.test_response_strings ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail +gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output +gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload +gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload ... ok +gabbi.tests.test_intercept.self_use_a_historical_location.test_request +gabbi.tests.test_intercept.self_use_a_historical_location.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_suitemaker.SuiteMakerTest.test_dict_on_invalid_key +gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors +gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required ... ok +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request ... ok +#### left side json one #### +> POST http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere -< Location: http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +< X-Gabbi-url: http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ +< Location: http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } -#### yaml parital from disk #### -> POST http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +#### expand left side #### +> POST http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere -< Location: http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +< X-Gabbi-url: http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ +< Location: http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ { - "type": "cat", - "sound": "meow" + "alpha1": "alpha", + "beta1": "beta" } -#### yaml partial both sides #### -> POST http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +#### expand environ left side #### +> POST http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +{ + "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://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere -< Location: http://c4a2dbb8-429a-42a1-83e4-757c17d5940e:8001/somewhere +< X-Gabbi-url: http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ +< Location: http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/ -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} -#### get simple page #### -> GET http://410e7bcb-ff7f-4337-a9b2-8ccab7955583:8001/ -> x-random-header: ya +#### set key and value #### +> GET http://383f709e-4cc4-46b1-b82b-c98250f14d5e:8001/jsonator?key=1&value=10 +> content-type: application/json > 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://410e7bcb-ff7f-4337-a9b2-8ccab7955583:8001/ +< Content-Type: application/json -{} +{ + "1": "10" +} + +#### check key and value #### +> GET http://383f709e-4cc4-46b1-b82b-c98250f14d5e: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://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3732,8 +3824,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "one_string": "1", @@ -3742,7 +3834,7 @@ } #### use data #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3755,8 +3847,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "one_string": "1", @@ -3765,7 +3857,7 @@ } #### from environ #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3776,15 +3868,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "one_environ": 1 } #### with list #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3797,8 +3889,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ [ 1, @@ -3807,7 +3899,7 @@ ] #### object with list #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3827,8 +3919,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "collection": [ @@ -3844,7 +3936,7 @@ } #### post extra data #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3873,8 +3965,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "a": 1, @@ -3899,7 +3991,7 @@ } #### check posted data #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3928,8 +4020,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "a": 1, @@ -3954,7 +4046,7 @@ } #### Post again and check the results #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3983,8 +4075,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "a": 1, @@ -4009,7 +4101,7 @@ } #### Post again and check the results (reversed) #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +> POST http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4038,8 +4130,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ +< X-Gabbi-url: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ +< Location: http://3f9ebfd6-d7fe-4168-b9ea-0b9f2498273d:8001/ { "a": 1, @@ -4063,270 +4155,34 @@ } } -#### string internal replace #### -> POST http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -{ - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" -} - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ -< Location: http://030b3c66-6047-4ab2-8939-a72197bd8f9b:8001/ - -{ - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" -} - -#### default casts #### -> POST http://234570f6-c7f9-4b3c-9570-29e9a81cef63: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://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ -< Location: http://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ - -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} - -#### cast to string #### -> POST http://234570f6-c7f9-4b3c-9570-29e9a81cef63: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://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ -< Location: http://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ - -{ - "string": "2" -} - -#### json set up #### -> POST http://234570f6-c7f9-4b3c-9570-29e9a81cef63: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://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ -< Location: http://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ - -{ - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false -}gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok -gabbi.tests.test_intercept.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure -gabbi.tests.test_intercept.casting_internal_json_fail.test_request -gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok -gabbi.tests.test_intercept.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.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.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_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_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_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 - - -#### send casted json #### -> POST http://234570f6-c7f9-4b3c-9570-29e9a81cef63: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://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ -< Location: http://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ - -{ - "casted": 2 -} - -#### historic casted json #### -> POST http://234570f6-c7f9-4b3c-9570-29e9a81cef63: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://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ -< Location: http://234570f6-c7f9-4b3c-9570-29e9a81cef63:8001/ - -{ - "casted": 2 -} - -#### json encoded value from disk #### -> POST http://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e: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://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e:8001/ -< Location: http://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e:8001/ - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json parital from disk #### -> POST http://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e: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://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e:8001/ -< Location: http://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e:8001/ - -{ - "type": "cat", - "sound": "meow" -} - -#### json partial both sides #### -> POST http://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e: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://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e:8001/ -< Location: http://b470a2a8-83f7-46d8-8dfd-d059c6fcba2e:8001/ - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -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.casting_default_casts.test_request +gabbi.tests.test_intercept.casting_default_casts.test_request ... ok gabbi.tests.test_intercept.casting_internal_json_fine.test_request gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok -gabbi.tests.test_intercept.queryparams_simple_param.test_request -gabbi.tests.test_intercept.queryparams_simple_param.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_even_more_json.test_request -gabbi.tests.test_intercept.backref_post_even_more_json.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 -/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_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://99a8a552-c032-4f8f-9e84-3c1e284caa55:8001/ +> GET http://952dd87d-0493-43a8-ac40-63af762a071c:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4334,12 +4190,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://99a8a552-c032-4f8f-9e84-3c1e284caa55:8001/ +< X-Gabbi-url: http://952dd87d-0493-43a8-ac40-63af762a071c:8001/ {} #### post data #### -> POST http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4352,8 +4208,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ -< Location: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +< X-Gabbi-url: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ { "one_string": "1", @@ -4362,7 +4218,7 @@ } #### use data #### -> POST http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4375,8 +4231,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ -< Location: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +< X-Gabbi-url: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ { "one_string": "1", @@ -4385,7 +4241,7 @@ } #### from environ #### -> POST http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4396,15 +4252,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ -< Location: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +< X-Gabbi-url: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ { "one_environ": 1 } #### with list #### -> POST http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4417,8 +4273,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ -< Location: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +< X-Gabbi-url: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ [ 1, @@ -4427,7 +4283,7 @@ ] #### object with list #### -> POST http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4447,8 +4303,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ -< Location: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +< X-Gabbi-url: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ { "collection": [ @@ -4464,7 +4320,7 @@ } #### post extra data #### -> POST http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4493,8 +4349,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ -< Location: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +< X-Gabbi-url: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ { "a": 1, @@ -4519,7 +4375,62 @@ } #### check posted data #### -> POST http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583: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://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ + +{ + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } +} + +#### Post again and check the results #### +> POST http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4548,8 +4459,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ -< Location: http://409c6a27-fcb5-4b8a-b7ed-122d30e9d22a:8001/ +< X-Gabbi-url: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ +< Location: http://7b0951ef-0283-4626-b4fd-fd7c545f1583:8001/ { "a": 1, @@ -4574,7 +4485,7 @@ } #### default casts #### -> POST http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +> POST http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4590,8 +4501,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ -< Location: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +< X-Gabbi-url: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ +< Location: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ { "int": 1, @@ -4602,7 +4513,7 @@ } #### cast to string #### -> POST http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +> POST http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4614,15 +4525,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ -< Location: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +< X-Gabbi-url: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ +< Location: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ { "string": "2" } #### json set up #### -> POST http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +> POST http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4638,8 +4549,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ -< Location: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +< X-Gabbi-url: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ +< Location: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ { "int": 1, @@ -4650,7 +4561,7 @@ } #### send casted json #### -> POST http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +> POST http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4662,15 +4573,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ -< Location: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +< X-Gabbi-url: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ +< Location: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ { "casted": 2 } #### historic casted json #### -> POST http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +> POST http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4682,15 +4593,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ -< Location: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +< X-Gabbi-url: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ +< Location: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ { "casted": 2 } #### internal json fine #### -> POST http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +> POST http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4702,127 +4613,114 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ -< Location: http://a49bc35c-3b0d-4bac-9928-fe3bcc6dbb5a:8001/ +< X-Gabbi-url: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ +< Location: http://3b4b09e8-31d4-4812-a917-fbe252200e33:8001/ { "casted": "in this 2 is not errors" } -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -#### get simple page #### -> GET http://8dd8a3ac-23eb-487b-a45e-c2bf1a30cc11: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://8dd8a3ac-23eb-487b-a45e-c2bf1a30cc11:8001/ - -{} - -#### left side json one #### -> POST http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ +#### json encoded value from disk #### +> POST http://8b45e740-dfe4-4573-83e1-873d9af46270:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ -< Location: http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ +< X-Gabbi-url: http://8b45e740-dfe4-4573-83e1-873d9af46270:8001/ +< Location: http://8b45e740-dfe4-4573-83e1-873d9af46270:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "foo": { + "b\u00e1r": 1 + } } -#### expand left side #### -> POST http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ +#### json parital from disk #### +> POST http://8b45e740-dfe4-4573-83e1-873d9af46270:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ -< Location: http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ +< X-Gabbi-url: http://8b45e740-dfe4-4573-83e1-873d9af46270:8001/ +< Location: http://8b45e740-dfe4-4573-83e1-873d9af46270:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "type": "cat", + "sound": "meow" } -#### expand environ left side #### -> POST http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ +#### left side json one #### +> POST http://35199880-2426-4cbc-9091-543b6590676f:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ -< Location: http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/ +< X-Gabbi-url: http://35199880-2426-4cbc-9091-543b6590676f:8001/ +< Location: http://35199880-2426-4cbc-9091-543b6590676f:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "alpha": "alpha1", + "beta": "beta1" } -#### set key and value #### -> GET http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/jsonator?key=1&value=10 +#### expand left side #### +> POST http://35199880-2426-4cbc-9091-543b6590676f: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://35199880-2426-4cbc-9091-543b6590676f:8001/ +< Location: http://35199880-2426-4cbc-9091-543b6590676f:8001/ { - "1": "10" + "alpha1": "alpha", + "beta1": "beta" } -#### check key and value #### -> GET http://7263efa6-a434-4ba4-aed2-f0a35bb47c46:8001/jsonator?key=1&value=10 -> content-type: application/json +#### get simple page #### +> GET http://08d0bce1-6c94-4aaf-a1a9-f3a86e436b33:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) < 200 OK -< Content-Type: application/json +< X-Gabbi-method: GET +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://08d0bce1-6c94-4aaf-a1a9-f3a86e436b33:8001/ -{ - "1": "10" -} +{} #### post data #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4835,8 +4733,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "one_string": "1", @@ -4845,7 +4743,7 @@ } #### use data #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4858,8 +4756,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "one_string": "1", @@ -4868,7 +4766,7 @@ } #### from environ #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4879,15 +4777,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "one_environ": 1 } #### with list #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4900,8 +4798,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ [ 1, @@ -4910,7 +4808,7 @@ ] #### object with list #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4930,8 +4828,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "collection": [ @@ -4947,7 +4845,7 @@ } #### post extra data #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4976,8 +4874,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "a": 1, @@ -5002,7 +4900,7 @@ } #### check posted data #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5031,8 +4929,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "a": 1, @@ -5057,7 +4955,7 @@ } #### Post again and check the results #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5086,8 +4984,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "a": 1, @@ -5112,7 +5010,7 @@ } #### Post again and check the results (reversed) #### -> POST http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5141,8 +5039,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ -< Location: http://6ce3862d-e73f-4b09-90fc-80d551bf94a4:8001/ +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ { "a": 1, @@ -5166,459 +5064,659 @@ } } -#### confirm notempty #### -> GET http://c462bcc2-6814-4c24-92cd-ec561aeeef08:8001/notemptygabbi.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_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_runner.RunnerTest.test_custom_response_handler -gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok -gabbi.tests.test_runner.RunnerTest.test_data_dir_good -gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok -gabbi.tests.test_runner.RunnerTest.test_exit_code -gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok -gabbi.tests.test_runner.RunnerTest.test_input_files -gabbi.tests.test_runner.RunnerTest.test_input_files ... ok -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -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_unsafe_yaml.nan_test_nan.test_request -gabbi.tests.test_unsafe_yaml.nan_test_nan.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 +#### string internal replace #### +> POST http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +> content-type: application/jsongabbi.tests.test_intercept.coerce_string_internal_replace.test_request +gabbi.tests.test_intercept.coerce_string_internal_replace.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.regex_regex_string_test_splat.test_request +gabbi.tests.test_intercept.regex_regex_string_test_splat.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 > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" +} < 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ +< Location: http://2c2dae9e-8056-4cdb-be44-993077f31b13:8001/ -notempty +{ + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" +} + +gabbi.tests.test_intercept.backref_post_even_more_json.test_request +gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok +gabbi.tests.test_intercept.backref_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.method-shortcut_arbitrary_method.test_request +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request ... ok +#### get simple page #### +> GET http://2aff7528-649c-4de1-8d06-00dafd99b160: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://2aff7528-649c-4de1-8d06-00dafd99b160:8001/ + +{} + +#### post data #### +> POST http://999405ec-5421-4754-a802-fda62aa92e96: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://999405ec-5421-4754-a802-fda62aa92e96:8001/ +< Location: http://999405ec-5421-4754-a802-fda62aa92e96:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### use data #### +> POST http://999405ec-5421-4754-a802-fda62aa92e96: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://999405ec-5421-4754-a802-fda62aa92e96:8001/ +< Location: http://999405ec-5421-4754-a802-fda62aa92e96:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### from environ #### +> POST http://999405ec-5421-4754-a802-fda62aa92e96: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://999405ec-5421-4754-a802-fda62aa92e96:8001/ +< Location: http://999405ec-5421-4754-a802-fda62aa92e96:8001/ + +{ + "one_environ": 1 +} + +#### with list #### +> POST http://999405ec-5421-4754-a802-fda62aa92e96:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + 1, + 2, + "3" +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://999405ec-5421-4754-a802-fda62aa92e96:8001/ +< Location: http://999405ec-5421-4754-a802-fda62aa92e96:8001/ + +[ + 1, + 2, + "3" +] + +#### object with list #### +> POST http://999405ec-5421-4754-a802-fda62aa92e96: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://999405ec-5421-4754-a802-fda62aa92e96:8001/ +< Location: http://999405ec-5421-4754-a802-fda62aa92e96:8001/ + +{ + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] +} + +#### post extra data #### +> POST http://999405ec-5421-4754-a802-fda62aa92e96: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://999405ec-5421-4754-a802-fda62aa92e96:8001/ +< Location: http://999405ec-5421-4754-a802-fda62aa92e96:8001/ + +{ + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } +} + +#### check posted data #### +> POST http://999405ec-5421-4754-a802-fda62aa92e96: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://999405ec-5421-4754-a802-fda62aa92e96:8001/ +< Location: http://999405ec-5421-4754-a802-fda62aa92e96: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 + } + } +} ---------------------------------------------------------------------- -Ran 314 tests in 9.090s +Ran 314 tests in 22.373s OK (skipped=2, expected failures=15) + stestr slowest -Test id Runtime (s) ------------------------------------------------------------------------------------------- ----------- -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 2.967 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 2.499 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 2.253 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 1.641 -gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request 1.152 -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 1.110 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 1.072 -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.941 -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 0.872 -gabbi.tests.test_driver.DriverTest.test_build_require_ssl 0.819 +Test id Runtime (s) +-------------------------------------------------------------------------------------------------- ----------- +gabbi.tests.test_intercept.self_test_pluggable_response.test_request 1.916 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 1.910 +gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request 1.771 +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request 1.567 +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.425 +gabbi.tests.test_intercept.coerce_object_with_list.test_request 1.402 +gabbi.tests.test_intercept.data_load_image_file.test_request 1.258 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 1.245 +gabbi.tests.test_intercept.data_load_data_list.test_request 1.169 +gabbi.tests.test_intercept.poll_loop_location.test_request 1.103 + rm -rf .stestr -+ [ 3.12 = disabled ] -+ echo 3.12 -+ cut -d. -f1 ++ for pyvers in ${PYTHON3S} ++ '[' 3.12 = disabled ']' +++ echo 3.12 +++ cut -d. -f1 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ echo '===> Testing with python (python3)' ===> Testing with python (python3) -+ pwd -+ [ -d /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -z /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -e .stestr.conf ] -+ [ -x /usr/bin/python3-stestr ] +++ pwd ++ '[' -d /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -e .stestr.conf ']' ++ '[' -x /usr/bin/python3-stestr ']' + STESTR=stestr + rm -rf .stestr + subunit2pyunit -+ PYTHON=python3.12 stestr run --parallel --subunit gabbi\.tests\.(?!test_live.*|test_intercept\.prefix_get_that_link\.test_request|test_intercept\.prefix_get_relative_link\.test_request|test_intercept\.prefix_provide_a_link\.test_request) -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.self_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_data_to_string.TestDataToString.testHappyPath -gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok -gabbi.tests.test_data_to_string.TestDataToString.testNoContentType -gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok -gabbi.tests.test_data_to_string.TestDataToString.testNoHandler -gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok ++ 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", /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_history.HistoryTest.test_cookie_replace_history -gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok -gabbi.tests.test_history.HistoryTest.test_header_replace_prior -gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok -gabbi.tests.test_history.HistoryTest.test_location_replace_history -gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok -gabbi.tests.test_history.HistoryTest.test_location_replace_prior -gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok -/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.host-header_ssl_no_host.test_request -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... ok -gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception -gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok -gabbi.tests.test_inner_fixture.inner_get_three.test_request -gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok -gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop -gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -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_history.HistoryTest.test_response_replace_prior -gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... 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.host-header_host_without_ssl.test_request -gabbi.tests.test_intercept.host-header_host_without_ssl.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_history.HistoryTest.test_response_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok -gabbi.tests.test_intercept.self_query_returned.test_request -gabbi.tests.test_intercept.self_query_returned.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_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_intercept.jsonbody_test_empty_dict.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_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_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_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_handlers.HandlersTest.test_response_json_paths_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok +gabbi.tests.test_intercept.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.self_json_derived_content_type.test_request +gabbi.tests.test_intercept.self_json_derived_content_type.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_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.cookie_use_a_historical_cookie.test_request +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.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.coerce_post_extra_data.test_request +gabbi.tests.test_intercept.coerce_post_extra_data.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_simple_post.test_request -gabbi.tests.test_intercept.self_simple_post.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_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.skipall_a_skipped_test.test_request -gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' -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_two.test_request -gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok gabbi.tests.test_intercept.self_get_location_from_headers.test_request gabbi.tests.test_intercept.self_get_location_from_headers.test_request ... ok -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok -gabbi.tests.test_intercept.self_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_intercept.jsonbody_test_fully_body.test_request -gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... 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.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_intercept.self_checklimit.test_request -gabbi.tests.test_intercept.self_checklimit.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", gabbi.tests.test_intercept.self_test_binary_handling.test_request gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok -gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request -gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... expected failure -gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request -gabbi.tests.test_intercept.self_confirm_environ_no_key_fail.test_request ... ok -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... expected failure -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... ok -gabbi.tests.test_intercept.header-key_header_named_http.test_request -gabbi.tests.test_intercept.header-key_header_named_http.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.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.casting_historic_casted_json.test_request +gabbi.tests.test_intercept.casting_historic_casted_json.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_string_internal_replace.test_request +gabbi.tests.test_intercept.coerce_string_internal_replace.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 /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_post_a_body_with_query.test_request -gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok -gabbi.tests.test_intercept.failskip_wrong_status.test_request -gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure -gabbi.tests.test_intercept.failskip_wrong_status.test_request -gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok -gabbi.tests.test_intercept.poll_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.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.regex_regex_string_test_splat.test_request -gabbi.tests.test_intercept.regex_regex_string_test_splat.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_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.disable-response-handler_get_some_not_json_gloss.test_request -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request ... ok -gabbi.tests.test_intercept.self_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.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.method-shortcut_post_with_query.test_request -gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok -gabbi.tests.test_intercept.regex_regex_header_test.test_request -gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok -gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request -gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok -gabbi.tests.test_intercept.coerce_post_data.test_request -gabbi.tests.test_intercept.coerce_post_data.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.data_load_data_list.test_request -gabbi.tests.test_intercept.data_load_data_list.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.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-extensions_test_sort.test_request -gabbi.tests.test_intercept.json-extensions_test_sort.test_request ... ok -gabbi.tests.test_intercept.poll_create_a_thing.test_request -gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.json-extensions_test_filtered.test_request +gabbi.tests.test_intercept.json-extensions_test_filtered.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_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_intercept.method-shortcut_simple_get.test_request +gabbi.tests.test_intercept.method-shortcut_simple_get.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_intercept.casting_internal_json_fail.test_request +gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... expected failure 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.json-extensions_test_filtered.test_request -gabbi.tests.test_intercept.json-extensions_test_filtered.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_driver.DriverTest.test_build_url_use_prior_test gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok -gabbi.tests.test_intercept.coerce_use_data.test_request -gabbi.tests.test_intercept.coerce_use_data.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.queryparams_joined_params.test_request -gabbi.tests.test_intercept.queryparams_joined_params.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_post_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_content-type.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.casting_internal_json_fail.test_request +gabbi.tests.test_intercept.casting_internal_json_fail.test_request ... ok +gabbi.tests.test_intercept.contenttype_patch_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.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.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key +gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error +gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last +gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last ... ok +gabbi.tests.test_driver.DriverTest.test_driver_prefix +gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok +gabbi.tests.test_data_to_string.TestDataToString.testHappyPath +gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_data_to_string.TestDataToString.testNoContentType +gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok +gabbi.tests.test_intercept.queryparams_multi_params.test_request +gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +gabbi.tests.test_data_to_string.TestDataToString.testNoHandler +gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors +gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required ... ok +gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required +gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required ... ok +gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request +gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request ... ok +gabbi.tests.test_intercept.self_checklimit.test_request +gabbi.tests.test_intercept.self_checklimit.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.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.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 -gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok -gabbi.tests.test_runner.RunnerTest.test_data_dir_good -gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok -gabbi.tests.test_driver.DriverTest.test_driver_prefix -gabbi.tests.test_driver.DriverTest.test_driver_prefix ... 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_intercept.json-right-side_json_encoded_value_from_disk.test_request +gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request ... ok +gabbi.tests.test_intercept.casting_cast_to_string.test_request +gabbi.tests.test_intercept.casting_cast_to_string.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 /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_handlers.HandlersTest.test_response_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_runner.RunnerTest.test_exit_code -gabbi.tests.test_runner.RunnerTest.test_exit_code ... 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.json-extensions_test_len.test_request -gabbi.tests.test_intercept.json-extensions_test_len.test_request ... ok -gabbi.tests.test_intercept.coerce_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_input_files -gabbi.tests.test_runner.RunnerTest.test_input_files ... ok -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_list.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.regex_regex_string_test_multiline.test_request -gabbi.tests.test_intercept.regex_regex_string_test_multiline.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_stdin_data_dir -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok /usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok -gabbi.tests.test_intercept.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 -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_dict_type ... ok -gabbi.tests.test_intercept.data_load_encoded_text.test_request -gabbi.tests.test_intercept.data_load_encoded_text.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.poll_loop_location.test_request -gabbi.tests.test_intercept.poll_loop_location.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.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 -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok /usr/lib/python3.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_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_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 -gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request -gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request ... ok -gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request -gabbi.tests.test_intercept.method-shortcut_arbitrary_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", +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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_encoded_text.test_request +gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok +gabbi.tests.test_intercept.coerce_object_with_list.test_request +gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok +gabbi.tests.test_intercept.data_load_json_file.test_request +gabbi.tests.test_intercept.data_load_json_file.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.coerce_post_data.test_request +gabbi.tests.test_intercept.coerce_post_data.test_request ... ok +gabbi.tests.test_intercept.queryparams_joined_params.test_request +gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok +gabbi.tests.test_intercept.failskip_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_inner_fixture.inner_get_three.test_request +gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok +gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request +gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_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_inner_fixture.inner_get_one.test_request +gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok +gabbi.tests.test_intercept.poll_poller_fail.test_request +gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure +gabbi.tests.test_intercept.poll_poller_fail.test_request +gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok +gabbi.tests.test_intercept.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.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.self_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.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.host-header_host_without_ssl.test_request +gabbi.tests.test_intercept.host-header_host_without_ssl.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.contenttype_post_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok +gabbi.tests.test_intercept.contenttype_put_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok +gabbi.tests.test_intercept.poll_create_a_thing.test_request +gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok +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.fixture_just_to_see_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.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.contenttype_patch_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_no_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.fixture_just_to_see.test_request +gabbi.tests.test_intercept.fixture_just_to_see.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.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_utils.ColorizeTest.test_colorize_missing_color +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... 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.skipall_a_skipped_test.test_request +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' +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_unsafe_yaml.nan_test_nan.test_request +gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_simple_post.test_request +gabbi.tests.test_intercept.method-shortcut_simple_post.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.jsonbody_test_fully_body.test_request +gabbi.tests.test_intercept.jsonbody_test_fully_body.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.cookie_get_a_cookie.test_request +gabbi.tests.test_intercept.cookie_get_a_cookie.test_request ... ok #### get simple page #### -> GET http://28fac947-4fc6-47ad-bf8e-a2e2b07bf25f:8001/ +> GET http://90c641e3-bcef-40bc-bca4-2bbe1fb46a43:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5626,26 +5724,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://28fac947-4fc6-47ad-bf8e-a2e2b07bf25f:8001/ - -{} - -#### header named http #### -> GET http://771e5d8c-34b7-4582-b374-eca2ba0e3f4b: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://771e5d8c-34b7-4582-b374-eca2ba0e3f4b:8001/header_key -< HTTP: some-scheme +< X-Gabbi-url: http://90c641e3-bcef-40bc-bca4-2bbe1fb46a43:8001/ {} #### post data #### -> POST http://4a233af5-883a-41d7-bd5a-1be1699c066c:8001/ +> POST http://dc715727-523a-430c-978b-6646b19c933b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5658,8 +5742,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4a233af5-883a-41d7-bd5a-1be1699c066c:8001/ -< Location: http://4a233af5-883a-41d7-bd5a-1be1699c066c:8001/ +< X-Gabbi-url: http://dc715727-523a-430c-978b-6646b19c933b:8001/ +< Location: http://dc715727-523a-430c-978b-6646b19c933b:8001/ { "one_string": "1", @@ -5668,7 +5752,7 @@ } #### use data #### -> POST http://4a233af5-883a-41d7-bd5a-1be1699c066c:8001/ +> POST http://dc715727-523a-430c-978b-6646b19c933b:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5681,8 +5765,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4a233af5-883a-41d7-bd5a-1be1699c066c:8001/ -< Location: http://4a233af5-883a-41d7-bd5a-1be1699c066c:8001/ +< X-Gabbi-url: http://dc715727-523a-430c-978b-6646b19c933b:8001/ +< Location: http://dc715727-523a-430c-978b-6646b19c933b:8001/ { "one_string": "1", @@ -5690,137 +5774,142 @@ "one_float": 1.1 } -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-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.coerce_with_list.test_request -gabbi.tests.test_intercept.coerce_with_list.test_request ... ok -gabbi.tests.test_intercept.data_post_data_for_next.test_request -gabbi.tests.test_intercept.data_post_data_for_next.test_request ... ok -gabbi.tests.test_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.coerce_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.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.regex_regex_string_test_mix.test_request -gabbi.tests.test_intercept.regex_regex_string_test_mix.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_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.backref_post_some_json.test_request -gabbi.tests.test_intercept.backref_post_some_json.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_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.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.json-left-side_check_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... 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_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... 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_handlers.HandlersTest.test_response_json_paths_yamlhandler -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type -gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_strings -gabbi.tests.test_handlers.HandlersTest.test_response_strings ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail -gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output -gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload -gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload ... ok -gabbi.tests.test_intercept.self_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.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_utils.CreateURLTest.test_create_url_ipv6_already_bracket -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon -gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 -gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_port -gabbi.tests.test_utils.CreateURLTest.test_create_url_port ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix -gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query -gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_simple -gabbi.tests.test_utils.CreateURLTest.test_create_url_simple ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 ... ok -gabbi.tests.test_intercept.coerce_post_extra_data.test_request -gabbi.tests.test_intercept.coerce_post_extra_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.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.fixture_just_to_see.test_request -gabbi.tests.test_intercept.fixture_just_to_see.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.forbiddenheaders_header_not_there_basic.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_two.test_request -gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok -gabbi.tests.test_intercept.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.test_request ... ok -gabbi.tests.test_intercept.failskip_non_existent_header.test_request -gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure -gabbi.tests.test_intercept.failskip_non_existent_header.test_request -gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_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_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://21e1c3f9-24e1-4cbf-894d-5c6b3bab9d1f:8001/ -> x-random-header: ya +#### from environ #### +> POST http://dc715727-523a-430c-978b-6646b19c933b:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "one_environ": 1 +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://21e1c3f9-24e1-4cbf-894d-5c6b3bab9d1f:8001/ +< X-Gabbi-url: http://dc715727-523a-430c-978b-6646b19c933b:8001/ +< Location: http://dc715727-523a-430c-978b-6646b19c933b:8001/ -{} +{ + "one_environ": 1 +} + +#### with list #### +> POST http://dc715727-523a-430c-978b-6646b19c933b:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +[ + 1, + 2, + "3" +] + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://dc715727-523a-430c-978b-6646b19c933b:8001/ +< Location: http://dc715727-523a-430c-978b-6646b19c933b:8001/ + +[ + 1, + 2, + "3" +] + +#### object with list #### +> POST http://dc715727-523a-430c-978b-6646b19c933b: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://dc715727-523a-430c-978b-6646b19c933b:8001/ +< Location: http://dc715727-523a-430c-978b-6646b19c933b:8001/ + +{ + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] +} + +#### post extra data #### +> POST http://dc715727-523a-430c-978b-6646b19c933b: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://dc715727-523a-430c-978b-6646b19c933b:8001/ +< Location: http://dc715727-523a-430c-978b-6646b19c933b: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://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +> POST http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5836,8 +5925,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ -< Location: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +< X-Gabbi-url: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ +< Location: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ { "int": 1, @@ -5848,7 +5937,7 @@ } #### cast to string #### -> POST http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +> POST http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5860,15 +5949,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ -< Location: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +< X-Gabbi-url: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ +< Location: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ { "string": "2" } #### json set up #### -> POST http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +> POST http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5884,8 +5973,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ -< Location: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +< X-Gabbi-url: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ +< Location: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ { "int": 1, @@ -5896,7 +5985,7 @@ } #### send casted json #### -> POST http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +> POST http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5908,15 +5997,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ -< Location: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +< X-Gabbi-url: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ +< Location: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ { "casted": 2 } #### historic casted json #### -> POST http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +> POST http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5928,146 +6017,205 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ -< Location: http://29367802-4845-4d5f-a8c3-343a2922af18:8001/ +< X-Gabbi-url: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ +< Location: http://dfccc113-00c4-42af-a59c-2a1e9c979c62:8001/ { "casted": 2 } -#### yaml encoded value from disk #### -> POST http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere +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.casting_cast_to_int_internal.test_request +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... expected failure +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... ok +gabbi.tests.test_intercept.json-extensions_test_len.test_request +gabbi.tests.test_intercept.json-extensions_test_len.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.self_bogus_method.test_request +gabbi.tests.test_intercept.self_bogus_method.test_request ... ok +gabbi.tests.test_intercept.self_test_pluggable_response.test_request +gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok +gabbi.tests.test_intercept.data_load_image_file.test_request +gabbi.tests.test_intercept.data_load_image_file.test_request ... ok +gabbi.tests.test_intercept.poll_loop_location.test_request +gabbi.tests.test_intercept.poll_loop_location.test_request ... ok +gabbi.tests.test_intercept.backref_post_even_more_json.test_request +gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok +gabbi.tests.test_intercept.last-url_get_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.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_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 +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_full +gabbi.tests.test_parse_url.UrlParseTest.test_parse_full ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix +gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_url +gabbi.tests.test_parse_url.UrlParseTest.test_parse_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok +gabbi.tests.test_intercept.queryparams_url_in_param.test_request +gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok +gabbi.tests.test_intercept.data_post_data_for_next.test_request +gabbi.tests.test_intercept.data_post_data_for_next.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 +/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_post_data_from_prior_response.test_request +gabbi.tests.test_intercept.data_post_data_from_prior_response.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.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_json_value_from_disk.test_request +gabbi.tests.test_intercept.data_json_value_from_disk.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.last-url_get_that_same_url_again.test_request +gabbi.tests.test_intercept.last-url_get_that_same_url_again.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_fixtures.FixtureTest.test_fixture_informs_on_exception +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_prior +gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_history +gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior +gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok +#### left side json one #### +> POST http://68a74f7e-05c5-418f-8aaa-0b68c444bea8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere -< Location: http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere +< X-Gabbi-url: http://68a74f7e-05c5-418f-8aaa-0b68c444bea8:8001/ +< Location: http://68a74f7e-05c5-418f-8aaa-0b68c444bea8:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } -#### json encoded value from disk #### -> POST http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere +#### get simple page #### +> GET http://40c47757-7f28-4f21-8cf1-891a7abbbc22: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://40c47757-7f28-4f21-8cf1-891a7abbbc22:8001/ + +{} + +#### default casts #### +> POST http://ef60ae0e-ae54-408c-901f-92ee59527051:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere -< Location: http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://ef60ae0e-ae54-408c-901f-92ee59527051:8001/ +< Location: http://ef60ae0e-ae54-408c-901f-92ee59527051:8001/ { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### yaml parital from disk #### -> POST http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere +#### cast to string #### +> POST http://ef60ae0e-ae54-408c-901f-92ee59527051:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere -< Location: http://f1b55321-e899-4032-92c9-52617d04f411:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://ef60ae0e-ae54-408c-901f-92ee59527051:8001/ +< Location: http://ef60ae0e-ae54-408c-901f-92ee59527051:8001/ { - "type": "cat", - "sound": "meow" + "string": "2" } -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.data_load_image_file.test_request -gabbi.tests.test_intercept.data_load_image_file.test_request ... ok -gabbi.tests.test_intercept.casting_json_set_up.test_request -gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok -gabbi.tests.test_intercept.contenttype_put_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok -gabbi.tests.test_intercept.data_partial_json_from_disk.test_request -gabbi.tests.test_intercept.data_partial_json_from_disk.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_send_casted_json.test_request -gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok -gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request -gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_left_side.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.verbosity_confirm_notempty.test_request -gabbi.tests.test_intercept.verbosity_confirm_notempty.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_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... 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_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://db9759a7-4493-432c-8b0e-5f45f39b14bd:8001/ +> GET http://aad50933-6241-4af8-829d-51e4438a8b74:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6075,53 +6223,194 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://db9759a7-4493-432c-8b0e-5f45f39b14bd:8001/ +< X-Gabbi-url: http://aad50933-6241-4af8-829d-51e4438a8b74:8001/ {} -#### loop location #### -> GET http://3d3426cd-356e-4f62-9a2e-28247c2a194d:8001/poller?count=2&x=1&y=2&z=3.4 +#### post data #### +> POST http://28a71441-be77-4b8b-9e9b-a902a83ffd34:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} -< 400 Bad Reqest +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://28a71441-be77-4b8b-9e9b-a902a83ffd34:8001/ +< Location: http://28a71441-be77-4b8b-9e9b-a902a83ffd34:8001/ +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} -#### loop location #### -> GET http://3d3426cd-356e-4f62-9a2e-28247c2a194d:8001/poller?count=2&x=1&y=2&z=3.4 +gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request +gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok +gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_response_replace_prior +gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... 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 +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok +gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request +gabbi.tests.test_intercept.regex_regex_string_test_multiline.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_data_dir_good +gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... 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.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.last-url_last_with_adjusted_parameters.test_request +gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... ok +gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request +gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request ... ok +gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request +gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.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_query_returned.test_request +gabbi.tests.test_intercept.self_query_returned.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_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_runner.RunnerTest.test_exit_code +gabbi.tests.test_runner.RunnerTest.test_exit_code ... 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_url_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_url_replace_prior_regex ... 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_intercept.jsonbody_test_empty_list.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_list.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_utils.ExtractContentTypeTest.test_extract_content_type_default_both +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok +gabbi.tests.test_runner.RunnerTest.test_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_intercept.backref_post_some_more_json.test_request +gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok +#### default casts #### +> POST http://98547ba9-887e-4031-ab73-4b967c636dae: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 +} -< 400 Bad Reqest +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json +< X-Gabbi-url: http://98547ba9-887e-4031-ab73-4b967c636dae:8001/ +< Location: http://98547ba9-887e-4031-ab73-4b967c636dae:8001/ +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} -#### loop location #### -> GET http://3d3426cd-356e-4f62-9a2e-28247c2a194d:8001/poller?count=2&x=1&y=2&z=3.4 +#### cast to string #### +> POST http://98547ba9-887e-4031-ab73-4b967c636dae:8001/ +> content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "string": "2" +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST +< Content-Type: application/json +< X-Gabbi-url: http://98547ba9-887e-4031-ab73-4b967c636dae:8001/ +< Location: http://98547ba9-887e-4031-ab73-4b967c636dae:8001/ + +{ + "string": "2" +} + +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.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.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_runner.RunnerTest.test_stdin_data_dir +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok +#### json encoded value from disk #### +> POST http://cbf86f1e-8001-4f11-a324-cbde76db9c03: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://3d3426cd-356e-4f62-9a2e-28247c2a194d:8001/poller?count=2&x=1&y=2&z=3.4 +< X-Gabbi-url: http://cbf86f1e-8001-4f11-a324-cbde76db9c03:8001/ +< Location: http://cbf86f1e-8001-4f11-a324-cbde76db9c03:8001/ { - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] + "foo": { + "b\u00e1r": 1 + } } #### post data #### -> POST http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +> POST http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6134,8 +6423,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ -< Location: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +< X-Gabbi-url: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ +< Location: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ { "one_string": "1", @@ -6144,7 +6433,7 @@ } #### use data #### -> POST http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +> POST http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6157,8 +6446,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ -< Location: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +< X-Gabbi-url: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ +< Location: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ { "one_string": "1", @@ -6167,7 +6456,7 @@ } #### from environ #### -> POST http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +> POST http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6178,15 +6467,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ -< Location: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +< X-Gabbi-url: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ +< Location: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ { "one_environ": 1 } #### with list #### -> POST http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +> POST http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6199,8 +6488,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ -< Location: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +< X-Gabbi-url: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ +< Location: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ [ 1, @@ -6209,7 +6498,7 @@ ] #### object with list #### -> POST http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +> POST http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6229,8 +6518,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ -< Location: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +< X-Gabbi-url: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ +< Location: http://e6f858d4-425a-4498-ad71-837f19608b4c:8001/ { "collection": [ @@ -6245,63 +6534,44 @@ ] } -#### post extra data #### -> POST http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +#### yaml encoded value from disk #### +> POST http://dfa240f9-72c1-4924-9469-dd6a0a90aa4d: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://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ -< Location: http://a8a92770-ea62-49e5-bff7-8d9363bacd44:8001/ +< X-Gabbi-url: http://dfa240f9-72c1-4924-9469-dd6a0a90aa4d:8001/somewhere +< Location: http://dfa240f9-72c1-4924-9469-dd6a0a90aa4d: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 } } +#### get simple page #### +> GET http://ff6263a7-e1b0-4fea-b14b-809df6ef7979: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://ff6263a7-e1b0-4fea-b14b-809df6ef7979:8001/ + +{} + #### default casts #### -> POST http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +> POST http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6317,8 +6587,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ -< Location: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +< X-Gabbi-url: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ +< Location: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ { "int": 1, @@ -6329,7 +6599,7 @@ } #### cast to string #### -> POST http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +> POST http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6341,15 +6611,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ -< Location: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +< X-Gabbi-url: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ +< Location: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ { "string": "2" } #### json set up #### -> POST http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +> POST http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6365,8 +6635,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ -< Location: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +< X-Gabbi-url: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ +< Location: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ { "int": 1, @@ -6377,7 +6647,7 @@ } #### send casted json #### -> POST http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +> POST http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6389,15 +6659,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ -< Location: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +< X-Gabbi-url: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ +< Location: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ { "casted": 2 } #### historic casted json #### -> POST http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +> POST http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6409,27 +6679,191 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ -< Location: http://125de900-e2f5-4708-95dd-d2c60f6aa95c:8001/ +< X-Gabbi-url: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ +< Location: http://bd2b1fc5-4ddd-4915-9452-15fe08689230:8001/ { "casted": 2 } -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok -gabbi.tests.test_intercept.queryparams_simple_param.test_request -gabbi.tests.test_intercept.queryparams_simple_param.test_request ... ok -gabbi.tests.test_intercept.casting_internal_json_fine.test_request -gabbi.tests.test_intercept.casting_internal_json_fine.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_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_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.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok +gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request +gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok +gabbi.tests.test_intercept.last-url_get_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok +/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 +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.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_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_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", +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +#### default casts #### +> POST http://c890d2c5-73da-49a2-ae38-e965cc32a651: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://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ +< Location: http://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + +#### cast to string #### +> POST http://c890d2c5-73da-49a2-ae38-e965cc32a651: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://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ +< Location: http://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ + +{ + "string": "2" +} + +#### json set up #### +> POST http://c890d2c5-73da-49a2-ae38-e965cc32a651: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://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ +< Location: http://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +#### send casted json #### +> POST http://c890d2c5-73da-49a2-ae38-e965cc32a651: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://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ +< Location: http://c890d2c5-73da-49a2-ae38-e965cc32a651:8001/ + +{ + "casted": 2 +} + +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok +#### loop location #### +> GET http://b2cd33e8-bd52-4dd5-b16d-50b3cec7eab2: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://b2cd33e8-bd52-4dd5-b16d-50b3cec7eab2: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://b2cd33e8-bd52-4dd5-b16d-50b3cec7eab2: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://b2cd33e8-bd52-4dd5-b16d-50b3cec7eab2:8001/poller?count=2&x=1&y=2&z=3.4 + +{ + "count": [ + "2" + ], + "x": [ + "1" + ], + "y": [ + "2" + ], + "z": [ + "3.4" + ] +} + +#### get simple page #### +> GET http://1597936c-1da8-42dc-b0dc-743cc5f75656: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://1597936c-1da8-42dc-b0dc-743cc5f75656:8001/ + +{} + #### post data #### -> POST http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6442,8 +6876,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ -< Location: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ { "one_string": "1", @@ -6452,7 +6886,7 @@ } #### use data #### -> POST http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6465,8 +6899,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ -< Location: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ { "one_string": "1", @@ -6475,7 +6909,7 @@ } #### from environ #### -> POST http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6486,15 +6920,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ -< Location: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ { "one_environ": 1 } #### with list #### -> POST http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6507,8 +6941,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ -< Location: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ [ 1, @@ -6517,7 +6951,7 @@ ] #### object with list #### -> POST http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6537,8 +6971,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ -< Location: http://29f835d3-b157-4508-91f9-f9e6c1a7c623:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ { "collection": [ @@ -6553,126 +6987,263 @@ ] } -#### yaml encoded value from disk #### -> POST http://8ea53ddf-b11c-4e4d-b313-8e9c84874d4e:8001/somewhere +#### post extra data #### +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf: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://8ea53ddf-b11c-4e4d-b313-8e9c84874d4e:8001/somewhere -< Location: http://8ea53ddf-b11c-4e4d-b313-8e9c84874d4e:8001/somewhere +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ { - "foo": { - "b\u00e1r": 1 + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } } } -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok -#### get simple page #### -> GET http://b55dfad5-2bf0-410a-8175-ac9e10a99de7:8001/ -> x-random-header: ya +#### check posted data #### +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf: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: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b55dfad5-2bf0-410a-8175-ac9e10a99de7:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ -{} +{ + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } +} -#### left side json one #### -> POST http://56e6bbfa-895f-449c-9a6b-69bb72711de3:8001/ +#### Post again and check the results #### +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "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://56e6bbfa-895f-449c-9a6b-69bb72711de3:8001/ -< Location: http://56e6bbfa-895f-449c-9a6b-69bb72711de3:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "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 + } + } } -#### expand left side #### -> POST http://56e6bbfa-895f-449c-9a6b-69bb72711de3:8001/ +#### Post again and check the results (reversed) #### +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "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://56e6bbfa-895f-449c-9a6b-69bb72711de3:8001/ -< Location: http://56e6bbfa-895f-449c-9a6b-69bb72711de3:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } } -#### confirm notempty #### -> GET http://600da876-7217-4f77-9204-ef8a597bcf11:8001/notempty -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK - -notempty - -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... 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.coerce_check_posted_data.test_request -gabbi.tests.test_intercept.coerce_check_posted_data.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_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 -#### get simple page #### -> GET http://abc2122c-671d-4741-87ed-b21c77aed6ca:8001/ -> x-random-header: ya +#### string internal replace #### +> POST http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://abc2122c-671d-4741-87ed-b21c77aed6ca:8001/ +< X-Gabbi-url: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ +< Location: http://29b6b40e-7e46-4bf6-886b-220b33532faf:8001/ -{} +{ + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" +} +gabbi.tests.test_intercept.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... 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_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 #### left side json one #### -> POST http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ +> POST http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6684,8 +7255,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ -< Location: http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ +< X-Gabbi-url: http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ +< Location: http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ { "alpha": "alpha1", @@ -6693,7 +7264,7 @@ } #### expand left side #### -> POST http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ +> POST http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6705,8 +7276,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ -< Location: http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ +< X-Gabbi-url: http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ +< Location: http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ { "alpha1": "alpha", @@ -6714,7 +7285,7 @@ } #### expand environ left side #### -> POST http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ +> POST http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6727,8 +7298,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ -< Location: http://1e4dbee8-e5f3-4df1-a88d-ecd18107b198:8001/ +< X-Gabbi-url: http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ +< Location: http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/ { "alpha1": "alpha", @@ -6736,146 +7307,148 @@ "1": "cow" } -#### default casts #### -> POST http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +#### set key and value #### +> GET http://2f5a024a-309d-4d1d-847c-8c598d4cf1aa:8001/jsonator?key=1&value=10 > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} < 200 OK -< X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ -< Location: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "1": "10" } -#### cast to string #### -> POST http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +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.regex_regex_string_test_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_json.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.ParseContentTypeTest.test_parse_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple +gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok +gabbi.tests.test_intercept.self_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.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.self_xml_derived_content_type.test_request +gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... expected failure +gabbi.tests.test_intercept.self_xml_derived_content_type.test_request +gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... ok +gabbi.tests.test_intercept.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.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_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 +#### left side json one #### +> POST http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "alpha": "alpha1", + "beta": "beta1" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ -< Location: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ +< Location: http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ { - "string": "2" + "alpha": "alpha1", + "beta": "beta1" } -#### json set up #### -> POST http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +#### expand left side #### +> POST http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc: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" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ -< Location: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ +< Location: http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "alpha1": "alpha", + "beta1": "beta" } -#### send casted json #### -> POST http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +#### expand environ left side #### +> POST http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ -< Location: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ +< Location: http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/ { - "casted": 2 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } -#### historic casted json #### -> POST http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +#### set key and value #### +> GET http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/jsonator?key=1&value=10 > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "casted": 2 -} < 200 OK -< X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ -< Location: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ { - "casted": 2 + "1": "10" } -#### internal json fine #### -> POST http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ +#### check key and value #### +> GET http://c53252eb-7fd7-48ca-8257-40f4dbeba4fc:8001/jsonator?key=1&value=10 > 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://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ -< Location: http://2b33b50d-fcd1-411c-a849-f068d51d242e:8001/ { - "casted": "in this 2 is not errors" + "1": "10" } -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 #### get simple page #### -> GET http://bc1001c0-e3f5-4a04-9143-cb89ff56ddc9:8001/ +> GET http://9fd4d390-2543-40eb-87cc-a04f0097161a:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6883,88 +7456,188 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://bc1001c0-e3f5-4a04-9143-cb89ff56ddc9:8001/ +< X-Gabbi-url: http://9fd4d390-2543-40eb-87cc-a04f0097161a:8001/ {} -#### default casts #### -> POST http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file +gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... 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.regex_regex_header_test.test_request +gabbi.tests.test_intercept.regex_regex_header_test.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_load_data_file.DataFileTest.test_load_file_in_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_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 +#### json encoded value from disk #### +> POST http://786d2e41-665f-4957-991d-738b69d5efb3: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 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ -< Location: http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://786d2e41-665f-4957-991d-738b69d5efb3:8001/ +< Location: http://786d2e41-665f-4957-991d-738b69d5efb3:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "foo": { + "b\u00e1r": 1 + } } -#### cast to string #### -> POST http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ +#### json parital from disk #### +> POST http://786d2e41-665f-4957-991d-738b69d5efb3:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ -< Location: http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://786d2e41-665f-4957-991d-738b69d5efb3:8001/ +< Location: http://786d2e41-665f-4957-991d-738b69d5efb3:8001/ { - "string": "2" + "type": "cat", + "sound": "meow" } -#### json set up #### -> POST http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ +#### json partial both sides #### +> POST http://786d2e41-665f-4957-991d-738b69d5efb3: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://786d2e41-665f-4957-991d-738b69d5efb3:8001/ +< Location: http://786d2e41-665f-4957-991d-738b69d5efb3:8001/ + +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] + +#### get simple page #### +> GET http://79ba8ce4-30b7-402c-990b-f2d0975ef368: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://79ba8ce4-30b7-402c-990b-f2d0975ef368:8001/ + +{} + +#### post data #### +> POST http://1ea275ee-4fe7-4081-95f0-e2d9104378e8: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 + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ -< Location: http://d56fb02c-0a44-4d5b-b536-0f1c716998e3:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://1ea275ee-4fe7-4081-95f0-e2d9104378e8:8001/ +< Location: http://1ea275ee-4fe7-4081-95f0-e2d9104378e8:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### use data #### +> POST http://1ea275ee-4fe7-4081-95f0-e2d9104378e8: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://1ea275ee-4fe7-4081-95f0-e2d9104378e8:8001/ +< Location: http://1ea275ee-4fe7-4081-95f0-e2d9104378e8:8001/ + +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } #### yaml encoded value from disk #### -> POST http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +> POST http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6977,8 +7650,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere -< Location: http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +< X-Gabbi-url: http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere +< Location: http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere { "foo": { @@ -6987,7 +7660,7 @@ } #### json encoded value from disk #### -> POST http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +> POST http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7000,8 +7673,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere -< Location: http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +< X-Gabbi-url: http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere +< Location: http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere { "foo": { @@ -7010,7 +7683,7 @@ } #### yaml parital from disk #### -> POST http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +> POST http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7022,101 +7695,107 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere -< Location: http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +< X-Gabbi-url: http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere +< Location: http://5f86256f-94c2-42cd-b289-25c1109ac50b:8001/somewhere { "type": "cat", "sound": "meow" } -#### yaml partial both sides #### -> POST http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +#### get simple page #### +> GET http://87da1d63-e3dd-45ae-9ed4-5e28b4bbe940: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://87da1d63-e3dd-45ae-9ed4-5e28b4bbe940:8001/ + +{} + +#### default casts #### +> POST http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +{ + "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://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere -< Location: http://37da9fcd-c91a-4722-90f4-ead90c4d1697:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ +< Location: http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok -gabbi.tests.test_intercept.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_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 -#### get simple page #### -> GET http://e1b90b06-ad71-4ae8-9b69-4700d9b5bd39:8001/ -> x-random-header: ya +#### cast to string #### +> POST http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ +> content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "string": "2" +} < 200 OK -< X-Gabbi-method: GET -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e1b90b06-ad71-4ae8-9b69-4700d9b5bd39:8001/ +< X-Gabbi-method: POST +< Content-Type: application/json +< X-Gabbi-url: http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ +< Location: http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ -{} +{ + "string": "2" +} -/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.ExtractContentTypeTest.test_extract_content_type_bad_params -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok -#### get simple page #### -> GET http://27b50de0-c8f2-4c48-baed-34993ac534a2:8001/ -> x-random-header: ya +#### json set up #### +> POST http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8: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: GET -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://27b50de0-c8f2-4c48-baed-34993ac534a2:8001/ +< X-Gabbi-method: POST +< Content-Type: application/json +< X-Gabbi-url: http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ +< Location: http://2f5f3639-b147-49c8-91e6-6c17a9fdb4f8:8001/ -{} +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} +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://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ +> POST http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7128,8 +7807,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ -< Location: http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ +< X-Gabbi-url: http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ +< Location: http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ { "alpha": "alpha1", @@ -7137,7 +7816,7 @@ } #### expand left side #### -> POST http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ +> POST http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7149,8 +7828,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ -< Location: http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ +< X-Gabbi-url: http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ +< Location: http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ { "alpha1": "alpha", @@ -7158,7 +7837,7 @@ } #### expand environ left side #### -> POST http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ +> POST http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7171,8 +7850,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ -< Location: http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/ +< X-Gabbi-url: http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ +< Location: http://46a2fb5e-cc18-4f90-ae24-a527381c6a7e:8001/ { "alpha1": "alpha", @@ -7180,34 +7859,59 @@ "1": "cow" } -#### set key and value #### -> GET http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/jsonator?key=1&value=10 +#### default casts #### +> POST http://a4abb7b1-382e-4c20-8278-3b17b4df5b57: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://a4abb7b1-382e-4c20-8278-3b17b4df5b57:8001/ +< Location: http://a4abb7b1-382e-4c20-8278-3b17b4df5b57:8001/ { - "1": "10" + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### check key and value #### -> GET http://f349b3cb-0d03-4239-a707-ea62f1f1cbab:8001/jsonator?key=1&value=10 +#### yaml encoded value from disk #### +> POST http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "foo": { + "b\u00e1r": 1 + } +} < 200 OK -< Content-Type: application/json +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere +< Location: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere { - "1": "10" + "foo": { + "b\u00e1r": 1 + } } #### json encoded value from disk #### -> POST http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ +> POST http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7220,8 +7924,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ -< Location: http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ +< X-Gabbi-url: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere +< Location: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere { "foo": { @@ -7229,8 +7933,8 @@ } } -#### json parital from disk #### -> POST http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ +#### yaml parital from disk #### +> POST http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7242,16 +7946,16 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ -< Location: http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ +< X-Gabbi-url: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere +< Location: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere { "type": "cat", "sound": "meow" } -#### json partial both sides #### -> POST http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ +#### yaml partial both sides #### +> POST http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7269,8 +7973,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ -< Location: http://79809ae8-99df-42b4-ba88-9b197dc9c11e:8001/ +< X-Gabbi-url: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere +< Location: http://42767964-3f7a-4f6b-bcfb-dedca8db483c:8001/somewhere [ { @@ -7283,135 +7987,169 @@ } ] -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.cookie_get_a_cookie.test_request -gabbi.tests.test_intercept.cookie_get_a_cookie.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_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.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.casting_internal_json_fine.test_request +gabbi.tests.test_intercept.casting_internal_json_fine.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.last-url_get_a_url_the_first_time.test_request -gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request ... ok -gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request -gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok -gabbi.tests.test_intercept.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.casting_default_casts.test_request -gabbi.tests.test_intercept.casting_default_casts.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_load_data_file.DataFileTest.test_load_file -gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok -#### get simple page #### -> GET http://db82169b-c7c8-4ebf-a8d8-d2fa4b6a3789:8001/ -> x-random-header: ya +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request +gabbi.tests.test_intercept.method-shortcut_arbitrary_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", +gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files +gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok +#### default casts #### +> POST http://0c5a8587-050c-4508-bf7a-61e70ff1ac35: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: GET -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://db82169b-c7c8-4ebf-a8d8-d2fa4b6a3789:8001/ +< X-Gabbi-method: POST +< Content-Type: application/json +< X-Gabbi-url: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ +< Location: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ -{} +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} -#### left side json one #### -> POST http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ +#### cast to string #### +> POST http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha": "alpha1", - "beta": "beta1" + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ -< Location: http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ +< Location: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "string": "2" } -#### expand left side #### -> POST http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ +#### json set up #### +> POST http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "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://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ -< Location: http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ +< Location: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } -#### expand environ left side #### -> POST http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ +#### send casted json #### +> POST http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ -< Location: http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ +< Location: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "casted": 2 } -#### set key and value #### -> GET http://3168459c-aebe-4891-8e4d-11f41d5f1918:8001/jsonator?key=1&value=10 +#### historic casted json #### +> POST http://0c5a8587-050c-4508-bf7a-61e70ff1ac35: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://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ +< Location: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ { - "1": "10" + "casted": 2 +} + +#### internal json fine #### +> POST http://0c5a8587-050c-4508-bf7a-61e70ff1ac35: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://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ +< Location: http://0c5a8587-050c-4508-bf7a-61e70ff1ac35:8001/ + +{ + "casted": "in this 2 is not errors" +} + +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://fe2d4bea-1da1-46ec-a536-0b075eb81429: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://fe2d4bea-1da1-46ec-a536-0b075eb81429:8001/ + +{} + #### post data #### -> POST http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +> POST http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7424,8 +8162,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ -< Location: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +< X-Gabbi-url: http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ +< Location: http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ { "one_string": "1", @@ -7434,7 +8172,7 @@ } #### use data #### -> POST http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +> POST http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7447,8 +8185,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ -< Location: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +< X-Gabbi-url: http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ +< Location: http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ { "one_string": "1", @@ -7457,7 +8195,7 @@ } #### from environ #### -> POST http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +> POST http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7468,295 +8206,218 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ -< Location: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +< X-Gabbi-url: http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ +< Location: http://dd45e5f4-e4f9-47dc-ac68-2b4e2c729ed6:8001/ { "one_environ": 1 } -#### with list #### -> POST http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +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://8f331aab-5955-4ff2-930d-3aaaa4d3fb26:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) -[ - 1, - 2, - "3" -] +{ + "foo": { + "b\u00e1r": 1 + } +} < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ -< Location: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +< X-Gabbi-url: http://8f331aab-5955-4ff2-930d-3aaaa4d3fb26:8001/somewhere +< Location: http://8f331aab-5955-4ff2-930d-3aaaa4d3fb26:8001/somewhere -[ - 1, - 2, - "3" -] +{ + "foo": { + "b\u00e1r": 1 + } +} -#### object with list #### -> POST http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +#### json encoded value from disk #### +> POST http://8f331aab-5955-4ff2-930d-3aaaa4d3fb26:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ -< Location: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +< X-Gabbi-url: http://8f331aab-5955-4ff2-930d-3aaaa4d3fb26:8001/somewhere +< Location: http://8f331aab-5955-4ff2-930d-3aaaa4d3fb26:8001/somewhere { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "foo": { + "b\u00e1r": 1 + } } -#### post extra data #### -> POST http://a992e72d-bf20-445a-8a82-402f39d6c956: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_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true ... ok +#### header named http #### +> GET http://5e8cdd46-d071-4f0a-b950-9bea7294cecd: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://5e8cdd46-d071-4f0a-b950-9bea7294cecd:8001/header_key +< HTTP: some-scheme + +{} + +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 +#### json encoded value from disk #### +> POST http://ea3c2063-1cf3-4422-b3cc-1d61d563c965: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 - } + "foo": { + "b\u00e1r": 1 } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ -< Location: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +< X-Gabbi-url: http://ea3c2063-1cf3-4422-b3cc-1d61d563c965:8001/ +< Location: http://ea3c2063-1cf3-4422-b3cc-1d61d563c965: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 - } + "foo": { + "b\u00e1r": 1 } } -#### check posted data #### -> POST http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +#### json parital from disk #### +> POST http://ea3c2063-1cf3-4422-b3cc-1d61d563c965: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 - } - } + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ -< Location: http://a992e72d-bf20-445a-8a82-402f39d6c956:8001/ +< X-Gabbi-url: http://ea3c2063-1cf3-4422-b3cc-1d61d563c965:8001/ +< Location: http://ea3c2063-1cf3-4422-b3cc-1d61d563c965: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 - } - } + "type": "cat", + "sound": "meow" } -#### default casts #### -> POST http://badd7982-5bf2-42a3-8a7d-ae0727455b16:8001/ +#### get simple page #### +> GET http://9ab64ec2-8486-42d3-bcbb-cbdaa52c0fc9: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://9ab64ec2-8486-42d3-bcbb-cbdaa52c0fc9:8001/ + +{} + +gabbi.tests.test_intercept.coerce_check_posted_data.test_request +gabbi.tests.test_intercept.coerce_check_posted_data.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 +#### left side json one #### +> POST http://e6fd8637-b661-4315-9626-1283253d5b04: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://badd7982-5bf2-42a3-8a7d-ae0727455b16:8001/ -< Location: http://badd7982-5bf2-42a3-8a7d-ae0727455b16:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://e6fd8637-b661-4315-9626-1283253d5b04:8001/ +< Location: http://e6fd8637-b661-4315-9626-1283253d5b04:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "alpha": "alpha1", + "beta": "beta1" +} + +#### expand left side #### +> POST http://e6fd8637-b661-4315-9626-1283253d5b04: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://e6fd8637-b661-4315-9626-1283253d5b04:8001/ +< Location: http://e6fd8637-b661-4315-9626-1283253d5b04:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta" } -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.test_request -gabbi.tests.test_intercept.backref_post_even_more_json.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.contenttype_post_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_no_content-type.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.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_intercept.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.test_request ... 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_suite.SuiteTest.test_suite_catches_fixture_fail -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... 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_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_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_parse_url.UrlParseTest.test_https_port_80_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... 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_parse_url.UrlParseTest.test_ipv6_full_url -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... 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_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_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_encoded_value_from_disk.test_request -gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.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 #### get simple page #### -> GET http://122b7b92-db00-490c-bafd-3b9e276ab30c:8001/ +> GET http://f8b11716-b3b0-4e91-ae87-b37a6b1095c2:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7764,12 +8425,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://122b7b92-db00-490c-bafd-3b9e276ab30c:8001/ +< X-Gabbi-url: http://f8b11716-b3b0-4e91-ae87-b37a6b1095c2:8001/ {} #### post data #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +> POST http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7782,8 +8443,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +< X-Gabbi-url: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ +< Location: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ { "one_string": "1", @@ -7792,7 +8453,7 @@ } #### use data #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +> POST http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7805,8 +8466,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +< X-Gabbi-url: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ +< Location: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ { "one_string": "1", @@ -7815,7 +8476,7 @@ } #### from environ #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +> POST http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7826,15 +8487,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +< X-Gabbi-url: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ +< Location: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ { "one_environ": 1 } #### with list #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +> POST http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7847,8 +8508,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +< X-Gabbi-url: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ +< Location: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ [ 1, @@ -7857,7 +8518,7 @@ ] #### object with list #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +> POST http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7877,8 +8538,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +< X-Gabbi-url: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ +< Location: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ { "collection": [ @@ -7894,7 +8555,7 @@ } #### post extra data #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +> POST http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7923,8 +8584,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +< X-Gabbi-url: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ +< Location: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ { "a": 1, @@ -7949,7 +8610,7 @@ } #### check posted data #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +> POST http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7978,8 +8639,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ +< X-Gabbi-url: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ +< Location: http://7cf78de0-ca94-4447-85da-8614e3d31a9e:8001/ { "a": 1, @@ -8003,124 +8664,34 @@ } } -#### Post again and check the results #### -> POST http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f: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://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f:8001/ -< Location: http://68142c29-d8ba-41d7-93f4-8bc7b7e72b1f: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://31dcffb0-4209-4dd3-ab41-d788c4872c6d: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://31dcffb0-4209-4dd3-ab41-d788c4872c6d:8001/ -< Location: http://31dcffb0-4209-4dd3-ab41-d788c4872c6d:8001/ - -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} - -#### cast to string #### -> POST http://31dcffb0-4209-4dd3-ab41-d788c4872c6d: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://31dcffb0-4209-4dd3-ab41-d788c4872c6d:8001/ -< Location: http://31dcffb0-4209-4dd3-ab41-d788c4872c6d:8001/ - -{ - "string": "2" -} - -#### get simple page #### -> GET http://4ce71190-f10f-4ba2-973f-33329c2af9cd: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://4ce71190-f10f-4ba2-973f-33329c2af9cd:8001/ - -{} - +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request ... ok +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok +gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request +gabbi.tests.test_intercept.regex_regex_string_test_splat.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.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_jsonpath.JSONPathTest.test_basic_match +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok #### post data #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8133,8 +8704,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "one_string": "1", @@ -8143,7 +8714,7 @@ } #### use data #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8156,8 +8727,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "one_string": "1", @@ -8166,7 +8737,7 @@ } #### from environ #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8177,15 +8748,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "one_environ": 1 } #### with list #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8198,8 +8769,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ [ 1, @@ -8208,7 +8779,7 @@ ] #### object with list #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8228,8 +8799,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "collection": [ @@ -8245,7 +8816,7 @@ } #### post extra data #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8274,8 +8845,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "a": 1, @@ -8300,7 +8871,7 @@ } #### check posted data #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8329,8 +8900,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "a": 1, @@ -8355,7 +8926,7 @@ } #### Post again and check the results #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8384,8 +8955,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "a": 1, @@ -8410,7 +8981,7 @@ } #### Post again and check the results (reversed) #### -> POST http://dacacb12-ac02-4454-82ad-621723762265:8001/ +> POST http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8439,8 +9010,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dacacb12-ac02-4454-82ad-621723762265:8001/ -< Location: http://dacacb12-ac02-4454-82ad-621723762265:8001/ +< X-Gabbi-url: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ +< Location: http://239c4a32-b752-4158-a0d8-b9508f44dfd8:8001/ { "a": 1, @@ -8464,31 +9035,21 @@ } } -#### json encoded value from disk #### -> POST http://ebf117b0-57f3-42e3-a5f4-c7b165001c6f:8001/ -> content-type: application/json +#### confirm notempty #### +> GET http://2313a98c-8e7d-4780-9880-b6255f281619:8001/notempty > 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://ebf117b0-57f3-42e3-a5f4-c7b165001c6f:8001/ -< Location: http://ebf117b0-57f3-42e3-a5f4-c7b165001c6f:8001/ -{ - "foo": { - "b\u00e1r": 1 - } -} +notempty +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request ... ok +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok #### get simple page #### -> GET http://63c4b50c-eeea-4a57-af7e-5cf17cb6cd88:8001/ +> GET http://7102e5be-a2bf-4a73-a5c4-acabee9eee98:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8496,33 +9057,12 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://63c4b50c-eeea-4a57-af7e-5cf17cb6cd88:8001/ +< X-Gabbi-url: http://7102e5be-a2bf-4a73-a5c4-acabee9eee98:8001/ {} -#### left side json one #### -> POST http://a87bb02c-192a-4605-82c9-b2ffeaf2631a: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://a87bb02c-192a-4605-82c9-b2ffeaf2631a:8001/ -< Location: http://a87bb02c-192a-4605-82c9-b2ffeaf2631a:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - #### post data #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8535,8 +9075,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ { "one_string": "1", @@ -8545,7 +9085,7 @@ } #### use data #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8558,8 +9098,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ { "one_string": "1", @@ -8568,7 +9108,7 @@ } #### from environ #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8579,15 +9119,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ { "one_environ": 1 } #### with list #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8600,8 +9140,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ [ 1, @@ -8610,7 +9150,7 @@ ] #### object with list #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8630,8 +9170,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ { "collection": [ @@ -8647,7 +9187,7 @@ } #### post extra data #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8676,8 +9216,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ { "a": 1, @@ -8702,7 +9242,7 @@ } #### check posted data #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8731,8 +9271,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ { "a": 1, @@ -8757,62 +9297,7 @@ } #### Post again and check the results #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573: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://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ - -{ - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } -} - -#### Post again and check the results (reversed) #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +> POST http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8841,8 +9326,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ +< X-Gabbi-url: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ +< Location: http://64466d18-8fe5-4639-bfc2-244e82ab3f44:8001/ { "a": 1, @@ -8866,93 +9351,24 @@ } } -#### string internal replace #### -> POST http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -{ - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" -} - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ -< Location: http://c894ef3b-46ef-4aab-8a05-485755444573:8001/ - -{ - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" -} - -#### yaml encoded value from disk #### -> POST http://b978e5c0-7935-4a0b-92c2-b8051787b893: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://b978e5c0-7935-4a0b-92c2-b8051787b893:8001/somewhere -< Location: http://b978e5c0-7935-4a0b-92c2-b8051787b893:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json encoded value from disk #### -> POST http://b978e5c0-7935-4a0b-92c2-b8051787b893: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://b978e5c0-7935-4a0b-92c2-b8051787b893:8001/somewhere -< Location: http://b978e5c0-7935-4a0b-92c2-b8051787b893:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -}gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request ... ok - - ---------------------------------------------------------------------- -Ran 314 tests in 9.115s +Ran 314 tests in 45.769s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 3.194 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 2.881 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 1.763 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 1.614 -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 1.206 -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 1.123 -gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request 1.104 -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.921 -gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.873 -gabbi.tests.test_driver.DriverTest.test_build_require_ssl 0.843 +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 5.237 +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex 4.212 +gabbi.tests.test_intercept.coerce_post_extra_data.test_request 4.067 +gabbi.tests.test_intercept.casting_historic_casted_json.test_request 2.333 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 2.304 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 1.920 +gabbi.tests.test_intercept.poll_loop_location.test_request 1.721 +gabbi.tests.test_intercept.self_get_location_from_headers.test_request 1.657 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 1.444 +gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request 1.415 + rm -rf .stestr make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_install -O--buildsystem=pybuild @@ -8997,8 +9413,8 @@ preparing documents... done copying assets... copying static files... -Writing evaluated template result to /build/reproducible-path/python-gabbi-3.0.0/debian/python-gabbi-doc/usr/share/doc/python-gabbi-doc/html/_static/documentation_options.js Writing evaluated template result to /build/reproducible-path/python-gabbi-3.0.0/debian/python-gabbi-doc/usr/share/doc/python-gabbi-doc/html/_static/basic.css +Writing evaluated template result to /build/reproducible-path/python-gabbi-3.0.0/debian/python-gabbi-doc/usr/share/doc/python-gabbi-doc/html/_static/documentation_options.js Writing evaluated template result to /build/reproducible-path/python-gabbi-3.0.0/debian/python-gabbi-doc/usr/share/doc/python-gabbi-doc/html/_static/language_data.js Writing evaluated template result to /build/reproducible-path/python-gabbi-3.0.0/debian/python-gabbi-doc/usr/share/doc/python-gabbi-doc/html/_static/nature.css copying static files: done @@ -9057,14 +9473,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 \ @@ -9073,7 +9489,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' @@ -9088,14 +9504,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 \ @@ -9104,7 +9520,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' @@ -9138,12 +9554,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/102839/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/102839/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/48563 and its subdirectories -I: Current time: Tue Dec 24 23:10:43 -12 2024 -I: pbuilder-time-stamp: 1735125043 +I: removing directory /srv/workspace/pbuilder/102839 and its subdirectories +I: Current time: Wed Jan 28 07:53:36 +14 2026 +I: pbuilder-time-stamp: 1769536416