Diff of the two buildlogs: -- --- b1/build.log 2025-01-20 22:56:11.887276467 +0000 +++ b2/build.log 2025-01-20 22:58:34.260823682 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Jan 20 10:54:06 -12 2025 -I: pbuilder-time-stamp: 1737413646 +I: Current time: Mon Feb 23 19:19:14 +14 2026 +I: pbuilder-time-stamp: 1771823954 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -22,51 +22,83 @@ 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/3284512/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1788800/tmp/hooks/D01_modify_environment starting +debug: Running on infom02-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Feb 23 05:19 /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/1788800/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1788800/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' + 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]="x86_64-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=amd64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='amd64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='904931c599a3482faae0fcf9734d5bfd' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='3284512' - PS1='# ' - PS2='> ' + INVOCATION_ID=d9372d0c3f3b4f2c8095959a83138fc5 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-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=1788800 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.1lFewCpS/pbuilderrc_TbML --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.1lFewCpS/b1 --logfile b1/build.log python-gabbi_3.0.0-3.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' + 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.1lFewCpS/pbuilderrc_bIT6 --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.1lFewCpS/b2 --logfile b2/build.log python-gabbi_3.0.0-3.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' I: uname -a - Linux infom01-amd64 6.1.0-30-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.11.10+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.10-1~bpo12+1 (2024-12-19) 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/3284512/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1788800/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -302,7 +334,7 @@ Get: 160 http://deb.debian.org/debian trixie/main amd64 subunit all 1.4.2-3 [5248 B] Get: 161 http://deb.debian.org/debian trixie/main amd64 python3-stestr all 4.1.0-3 [56.9 kB] Get: 162 http://deb.debian.org/debian trixie/main amd64 python3-wsgi-intercept all 1.13.1-1 [18.9 kB] -Fetched 52.1 MB in 1s (56.7 MB/s) +Fetched 52.1 MB in 1s (37.2 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.12-minimal:amd64. (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 ... 19856 files and directories currently installed.) @@ -832,8 +864,8 @@ Setting up tzdata (2024b-6) ... Current default time zone: 'Etc/UTC' -Local time is now: Mon Jan 20 22:55:28 UTC 2025. -Universal Time is now: Mon Jan 20 22:55:28 UTC 2025. +Local time is now: Mon Feb 23 05:20:19 UTC 2026. +Universal Time is now: Mon Feb 23 05:20:19 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpython3.13-minimal:amd64 (3.13.1-3) ... @@ -996,7 +1028,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/1788800/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/1788800/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 @@ -1132,21 +1168,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. !! @@ -1191,50 +1232,50 @@ [pbr] AUTHORS complete (0.0s) running build running build_py +creating build/lib/gabbi/handlers +copying gabbi/handlers/base.py -> build/lib/gabbi/handlers +copying gabbi/handlers/yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/handlers +copying gabbi/handlers/core.py -> build/lib/gabbi/handlers +copying gabbi/handlers/__init__.py -> build/lib/gabbi/handlers +copying gabbi/handlers/jsonhandler.py -> build/lib/gabbi/handlers +copying gabbi/utils.py -> build/lib/gabbi +copying gabbi/suitemaker.py -> build/lib/gabbi +copying gabbi/reporter.py -> build/lib/gabbi +copying gabbi/httpclient.py -> build/lib/gabbi +copying gabbi/driver.py -> build/lib/gabbi +copying gabbi/runner.py -> build/lib/gabbi +copying gabbi/case.py -> build/lib/gabbi +copying gabbi/fixture.py -> build/lib/gabbi +copying gabbi/exception.py -> build/lib/gabbi +copying gabbi/__init__.py -> build/lib/gabbi +copying gabbi/json_parser.py -> build/lib/gabbi +copying gabbi/pytester.py -> build/lib/gabbi +copying gabbi/suite.py -> build/lib/gabbi creating build/lib/gabbi/tests -copying gabbi/tests/custom_response_handler.py -> build/lib/gabbi/tests +copying gabbi/tests/test_runner.py -> build/lib/gabbi/tests copying gabbi/tests/test_driver.py -> build/lib/gabbi/tests -copying gabbi/tests/simple_wsgi.py -> build/lib/gabbi/tests -copying gabbi/tests/test_parse_url.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_load_data_file.py -> build/lib/gabbi/tests -copying gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/tests +copying gabbi/tests/test_suitemaker.py -> build/lib/gabbi/tests copying gabbi/tests/test_live.py -> build/lib/gabbi/tests +copying gabbi/tests/custom_response_handler.py -> build/lib/gabbi/tests +copying gabbi/tests/util.py -> build/lib/gabbi/tests copying gabbi/tests/test_data_to_string.py -> build/lib/gabbi/tests -copying gabbi/tests/test_suite.py -> build/lib/gabbi/tests copying gabbi/tests/test_jsonpath.py -> build/lib/gabbi/tests -copying gabbi/tests/test_use_prior_test.py -> build/lib/gabbi/tests -copying gabbi/tests/test_unsafe_yaml.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/tests/test_suitemaker.py -> build/lib/gabbi/tests -copying gabbi/tests/test_history.py -> build/lib/gabbi/tests +copying gabbi/tests/test_use_prior_test.py -> build/lib/gabbi/tests +copying gabbi/tests/test_load_data_file.py -> build/lib/gabbi/tests copying gabbi/tests/__init__.py -> build/lib/gabbi/tests -copying gabbi/tests/test_runner.py -> build/lib/gabbi/tests +copying gabbi/tests/test_fixtures.py -> build/lib/gabbi/tests +copying gabbi/tests/test_history.py -> build/lib/gabbi/tests copying gabbi/tests/test_intercept.py -> build/lib/gabbi/tests +copying gabbi/tests/test_suite.py -> build/lib/gabbi/tests copying gabbi/tests/test_inner_fixture.py -> build/lib/gabbi/tests -copying gabbi/tests/test_fixtures.py -> build/lib/gabbi/tests +copying gabbi/tests/test_unsafe_yaml.py -> build/lib/gabbi/tests +copying gabbi/tests/test_utils.py -> build/lib/gabbi/tests +copying gabbi/tests/test_parse_url.py -> build/lib/gabbi/tests copying gabbi/tests/test_replacers.py -> build/lib/gabbi/tests -copying gabbi/pytester.py -> build/lib/gabbi -copying gabbi/driver.py -> build/lib/gabbi -copying gabbi/httpclient.py -> build/lib/gabbi -copying gabbi/exception.py -> build/lib/gabbi -copying gabbi/json_parser.py -> build/lib/gabbi -copying gabbi/reporter.py -> build/lib/gabbi -copying gabbi/utils.py -> build/lib/gabbi -copying gabbi/__init__.py -> build/lib/gabbi -copying gabbi/runner.py -> build/lib/gabbi -copying gabbi/case.py -> build/lib/gabbi -copying gabbi/suitemaker.py -> build/lib/gabbi -copying gabbi/suite.py -> build/lib/gabbi -copying gabbi/fixture.py -> build/lib/gabbi -creating build/lib/gabbi/handlers -copying gabbi/handlers/base.py -> build/lib/gabbi/handlers -copying gabbi/handlers/yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/handlers -copying gabbi/handlers/core.py -> build/lib/gabbi/handlers -copying gabbi/handlers/jsonhandler.py -> build/lib/gabbi/handlers -copying gabbi/handlers/__init__.py -> build/lib/gabbi/handlers +copying gabbi/tests/test_syntax_warning.py -> build/lib/gabbi/tests +copying gabbi/tests/simple_wsgi.py -> build/lib/gabbi/tests +copying gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> build/lib/gabbi/tests running egg_info creating gabbi.egg-info writing gabbi.egg-info/PKG-INFO @@ -1254,98 +1295,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/utils.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/suitemaker.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/reporter.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/httpclient.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/case.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi copying build/lib/gabbi/exception.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/base.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/core.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers +copying build/lib/gabbi/handlers/jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers copying build/lib/gabbi/json_parser.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/reporter.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 creating /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_runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_driver.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/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_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/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_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_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_suitemaker.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_live.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/custom_response_handler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/util.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_data_to_string.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_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_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_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_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_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/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_history.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_use_prior_test.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_load_data_file.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_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_fixtures.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_history.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_intercept.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_inner_fixture.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/tests/test_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_utils.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_parse_url.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/tests/test_replacers.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests -copying build/lib/gabbi/__init__.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/runner.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/case.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -copying build/lib/gabbi/suitemaker.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi +copying build/lib/gabbi/tests/test_syntax_warning.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/simple_wsgi.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests +copying build/lib/gabbi/tests/test_yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests copying build/lib/gabbi/suite.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi -creating /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers -copying build/lib/gabbi/handlers/base.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers -copying build/lib/gabbi/handlers/yaml_disk_loading_jsonhandler.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers -copying build/lib/gabbi/handlers/core.py -> /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers -copying build/lib/gabbi/handlers/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/fixture.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/utils.py to utils.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suitemaker.py to suitemaker.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/reporter.py to reporter.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/runner.py to runner.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/case.py to case.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/exception.py to exception.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__init__.py to __init__.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/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/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/pytester.py to pytester.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/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_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/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_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_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_suitemaker.py to test_suitemaker.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_live.py to test_live.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/custom_response_handler.py to custom_response_handler.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_data_to_string.py to test_data_to_string.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_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_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_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_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_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/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_history.py to test_history.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_load_data_file.py to test_load_data_file.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_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_fixtures.py to test_fixtures.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_history.py to test_history.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_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_utils.py to test_utils.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_replacers.py to test_replacers.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__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/runner.py to runner.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/case.py to case.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/tests/test_syntax_warning.py to test_syntax_warning.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-313.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-313.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suite.py to suite.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-313.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/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/fixture.py to fixture.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. !! @@ -1398,58 +1440,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/utils.py to utils.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suitemaker.py to suitemaker.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/reporter.py to reporter.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/httpclient.py to httpclient.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/driver.py to driver.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/runner.py to runner.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/case.py to case.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/fixture.py to fixture.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/exception.py to exception.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/__init__.py to __init__.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/jsonhandler.py to jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/json_parser.py to json_parser.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/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/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/pytester.py to pytester.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_runner.py to test_runner.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_driver.py to test_driver.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/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_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/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_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_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_suitemaker.py to test_suitemaker.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_live.py to test_live.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/custom_response_handler.py to custom_response_handler.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/util.py to util.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_data_to_string.py to test_data_to_string.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_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_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_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_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_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/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_history.py to test_history.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_use_prior_test.py to test_use_prior_test.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_load_data_file.py to test_load_data_file.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/__init__.py to __init__.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_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_fixtures.py to test_fixtures.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_history.py to test_history.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_intercept.py to test_intercept.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_suite.py to test_suite.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_inner_fixture.py to test_inner_fixture.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_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_utils.py to test_utils.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_parse_url.py to test_parse_url.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_replacers.py to test_replacers.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/__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/runner.py to runner.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/case.py to case.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/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/tests/test_syntax_warning.py to test_syntax_warning.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/simple_wsgi.py to simple_wsgi.cpython-312.pyc +byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/tests/test_yaml_disk_loading_jsonhandler.py to test_yaml_disk_loading_jsonhandler.cpython-312.pyc byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/suite.py to suite.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/base.py to base.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/yaml_disk_loading_jsonhandler.py to yaml_disk_loading_jsonhandler.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/core.py to core.cpython-312.pyc -byte-compiling /build/reproducible-path/python-gabbi-3.0.0/debian/tmp/usr/lib/python3/dist-packages/gabbi/handlers/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/fixture.py to fixture.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 @@ -1458,113 +1500,60 @@ + 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_history.HistoryTest.test_cookie_replace_history -gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok -gabbi.tests.test_history.HistoryTest.test_header_replace_prior -gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex -gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok -gabbi.tests.test_history.HistoryTest.test_location_replace_history -gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok -gabbi.tests.test_history.HistoryTest.test_location_replace_prior -gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok -gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok -gabbi.tests.test_history.HistoryTest.test_response_replace_prior -gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok -/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_last_with_adjusted_parameters.test_request -gabbi.tests.test_intercept.last-url_last_with_adjusted_parameters.test_request ... 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.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.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_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_intercept.fixture_just_to_see_three.test_request -gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok -gabbi.tests.test_intercept.last-url_get_prior_url.test_request -gabbi.tests.test_intercept.last-url_get_prior_url.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_fixtures.FixtureTest.test_fixture_informs_on_exception -gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok -gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop -gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types -gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_inner_fixture.inner_get_three.test_request -gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok -gabbi.tests.test_history.HistoryTest.test_response_replace_with_history -gabbi.tests.test_history.HistoryTest.test_response_replace_with_history ... 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_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_inner_fixture.inner_get_one.test_request -gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok -gabbi.tests.test_intercept.regex_regex_header_test.test_request -gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok -gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request -gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", gabbi.tests.test_inner_fixture.inner_get_two.test_request gabbi.tests.test_inner_fixture.inner_get_two.test_request ... ok +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.contenttype_patch_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify @@ -1591,120 +1580,160 @@ gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_noregex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex gabbi.tests.test_handlers.HandlersTest.test_response_headers_substitute_regex ... ok -gabbi.tests.test_intercept.self_simple_post.test_request -gabbi.tests.test_intercept.self_simple_post.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request -gabbi.tests.test_intercept.last-url_get_a_historical_url.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history +gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior_regex ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_prior +gabbi.tests.test_history.HistoryTest.test_header_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history ... ok gabbi.tests.test_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.regex_regex_string_test_json.test_request -gabbi.tests.test_intercept.regex_regex_string_test_json.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_history.HistoryTest.test_header_replace_with_history_regex +gabbi.tests.test_history.HistoryTest.test_header_replace_with_history_regex ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_history +gabbi.tests.test_history.HistoryTest.test_location_replace_history ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior +gabbi.tests.test_history.HistoryTest.test_location_replace_prior ... ok +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_location_replace_prior_regex ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... ok -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.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request -gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok -gabbi.tests.test_intercept.last-url_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.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_intercept.contenttype_patch_content-type.test_request +gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_response_replace_prior +gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_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.regex_regex_string_test_mix.test_request -gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request ... ok -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok -gabbi.tests.test_intercept.self_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.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.jsonbody_test_fully_body.test_request +gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.contenttype_put_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_content-type.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.json-left-side_left_side_json_one.test_request +gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request ... ok +gabbi.tests.test_intercept.contenttype_post_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok +gabbi.tests.test_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.header-key_header_named_http.test_request +gabbi.tests.test_intercept.header-key_header_named_http.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_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' +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok +gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_set_key_and_value.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-left-side_expand_left_side.test_request +gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok +gabbi.tests.test_intercept.coerce_post_data.test_request +gabbi.tests.test_intercept.coerce_post_data.test_request ... ok +gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request ... ok gabbi.tests.test_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.regex_regex_string_test_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_json.test_request ... ok +gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok +gabbi.tests.test_intercept.failskip_skip_me.test_request +gabbi.tests.test_intercept.failskip_skip_me.test_request ... skipped "Skipping for now because we can't do it" +gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request +gabbi.tests.test_intercept.verbosity_confirm_notempty.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.regex_regex_string_test_splat.test_request +gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok +gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request +gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request ... ok /usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method warnings.warn("TestResult has no addDuration method", gabbi.tests.test_driver.DriverTest.test_build_require_ssl gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok -gabbi.tests.test_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 -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok +gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request +gabbi.tests.test_intercept.regex_regex_string_test_multiline.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok gabbi.tests.test_driver.DriverTest.test_build_url_target gabbi.tests.test_driver.DriverTest.test_build_url_target ... 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_driver.DriverTest.test_build_url_target_forced_ssl gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... 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_driver.DriverTest.test_build_url_use_prior_test gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok -gabbi.tests.test_intercept.poll_create_a_thing.test_request -gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok -Exception ignored in: -Traceback (most recent call last): - File "/usr/lib/python3.13/http/client.py", line 434, in close -gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request ... ok - if self.fp: -AttributeError: 'HTTPResponse' object has no attribute 'fp' +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_with_url_provides_host gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok -gabbi.tests.test_intercept.self_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_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_prefix gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok -gabbi.tests.test_intercept.self_non_json_response_failure.test_request -gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure -gabbi.tests.test_intercept.self_non_json_response_failure.test_request -gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok -gabbi.tests.test_intercept.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_post_a_body.test_request -gabbi.tests.test_intercept.self_post_a_body.test_request ... ok -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_esc_regex ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_noregex ... ok -gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request -gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request ... ok -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... ok -gabbi.tests.test_intercept.backref_post_some_more_json.test_request -gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok -gabbi.tests.test_intercept.backref_post_some_json.test_request -gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok -gabbi.tests.test_intercept.poll_loop_location.test_request -gabbi.tests.test_intercept.poll_loop_location.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok -gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request -gabbi.tests.test_intercept.json-left-side_left_side_json_one.test_request ... ok +gabbi.tests.test_intercept.regex_regex_header_test.test_request +gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok +gabbi.tests.test_intercept.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok +gabbi.tests.test_intercept.coerce_post_extra_data.test_request +gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_intercept.coerce_object_with_list.test_request +gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_yamlhandler ... ok gabbi.tests.test_handlers.HandlersTest.test_response_string_list_type @@ -1717,364 +1746,303 @@ gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload ... ok -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok -gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request -gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request ... ok -gabbi.tests.test_intercept.backref_post_even_more_json.test_request -gabbi.tests.test_intercept.backref_post_even_more_json.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.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.contenttype_patch_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok -gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok -gabbi.tests.test_intercept.casting_json_set_up.test_request -gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok -gabbi.tests.test_intercept.method-shortcut_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see.test_request -gabbi.tests.test_intercept.fixture_just_to_see.test_request ... ok -gabbi.tests.test_intercept.casting_default_casts.test_request -gabbi.tests.test_intercept.casting_default_casts.test_request ... ok -gabbi.tests.test_intercept.host-header_ssl_with_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok -gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request -gabbi.tests.test_intercept.cookie_use_a_historical_cookie.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.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_json.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.failskip_wrong_status.test_request +gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure +gabbi.tests.test_intercept.failskip_wrong_status.test_request +gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok gabbi.tests.test_intercept.casting_send_casted_json.test_request gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_two.test_request -gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok -gabbi.tests.test_intercept.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.test_request ... ok -gabbi.tests.test_intercept.self_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.test_request ... ok -gabbi.tests.test_intercept.queryparams_multi_params.test_request -gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok -gabbi.tests.test_intercept.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.regex_regex_jsonpath_test.test_request +gabbi.tests.test_intercept.regex_regex_jsonpath_test.test_request ... ok +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.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.casting_cast_to_string.test_request +gabbi.tests.test_intercept.casting_cast_to_string.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.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.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.skipall_a_skipped_test.test_request +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' +gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request +gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request ... ok gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_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.backref_backref_json_fail_start.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok -gabbi.tests.test_intercept.self_use_a_historical_location.test_request -gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... expected failure -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request -gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... ok +gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok +gabbi.tests.test_intercept.casting_internal_json_fine.test_request +gabbi.tests.test_intercept.casting_internal_json_fine.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.self_checklimit.test_request gabbi.tests.test_intercept.self_checklimit.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 -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.queryparams_replacers_in_params.test_request -gabbi.tests.test_intercept.queryparams_replacers_in_params.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.method-shortcut_simple_post.test_request -gabbi.tests.test_intercept.method-shortcut_simple_post.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.coerce_use_data.test_request -gabbi.tests.test_intercept.coerce_use_data.test_request ... ok -gabbi.tests.test_intercept.self_confirm_environ.test_request -gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok -gabbi.tests.test_intercept.queryparams_joined_params.test_request -gabbi.tests.test_intercept.queryparams_joined_params.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.backref_post_even_more_json_quote_different.test_request -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok -Exception ignored in: -Traceback (most recent call last): - File "/usr/lib/python3.13/http/client.py", line 434, in close - if self.fp: -AttributeError: 'HTTPResponse' object has no attribute 'fp' -gabbi.tests.test_intercept.self_test_exception_wrapper.test_request -gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... expected failure -gabbi.tests.test_intercept.self_test_exception_wrapper.test_request -gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... ok -gabbi.tests.test_intercept.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.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.jsonbody_test_empty_list.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request ... ok -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok -gabbi.tests.test_utils.BinaryTypesTest.test_binary -gabbi.tests.test_utils.BinaryTypesTest.test_binary ... ok -gabbi.tests.test_utils.BinaryTypesTest.test_not_binary -gabbi.tests.test_utils.BinaryTypesTest.test_not_binary ... ok -gabbi.tests.test_intercept.self_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_get_ssl_page.test_request -gabbi.tests.test_intercept.self_get_ssl_page.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_load_data_file.DataFileTest.test_load_file -gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok -gabbi.tests.test_intercept.self_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_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_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.coerce_post_data.test_request -gabbi.tests.test_intercept.coerce_post_data.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.json-extensions_test_filtered.test_request +gabbi.tests.test_intercept.json-extensions_test_filtered.test_request ... ok +gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request +gabbi.tests.test_intercept.json-right-side_json_encoded_value_from_disk.test_request ... ok gabbi.tests.test_intercept.host-header_ssl_no_host.test_request gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... ok -gabbi.tests.test_intercept.data_load_encoded_text.test_request -gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok -#### get simple page #### -> GET http://5798bea6-d2f5-4522-bf89-04cdd6d95e92:8001/ -> x-random-header: ya +gabbi.tests.test_intercept.self_test_binary_handling.test_request +gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok +gabbi.tests.test_intercept.self_test_pluggable_response.test_request +gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok +gabbi.tests.test_intercept.cookie_get_a_cookie.test_request +gabbi.tests.test_intercept.cookie_get_a_cookie.test_request ... ok +gabbi.tests.test_intercept.poll_create_a_thing.test_request +gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok +gabbi.tests.test_intercept.poll_loop_location.test_request +gabbi.tests.test_intercept.poll_loop_location.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.json-right-side_json_partial_both_sides.test_request +gabbi.tests.test_intercept.json-right-side_json_partial_both_sides.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request +gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok +gabbi.tests.test_intercept.self_query_returned.test_request +gabbi.tests.test_intercept.self_query_returned.test_request ... ok +gabbi.tests.test_intercept.self_use_a_historical_location.test_request +gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok +#### post data #### +> POST http://0add0ea8-3733-4e52-bbaa-849d76949141: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: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5798bea6-d2f5-4522-bf89-04cdd6d95e92:8001/ +< X-Gabbi-url: http://0add0ea8-3733-4e52-bbaa-849d76949141:8001/ +< Location: http://0add0ea8-3733-4e52-bbaa-849d76949141:8001/ -{} +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} -#### default casts #### -> POST http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +#### left side json one #### +> POST http://9ff6491b-b050-42be-896e-f0dc1589271b: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://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ -< Location: http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ +< Location: http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "alpha": "alpha1", + "beta": "beta1" } -#### cast to string #### -> POST http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +#### expand left side #### +> POST http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ -< Location: http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ +< Location: http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ { - "string": "2" + "alpha1": "alpha", + "beta1": "beta" } -#### json set up #### -> POST http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +#### expand environ left side #### +> POST http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ -< Location: http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ +< Location: http://9ff6491b-b050-42be-896e-f0dc1589271b:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } -#### send casted json #### -> POST http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +#### default casts #### +> POST http://0621fb4e-a681-4fb8-85e5-27b3c2c12aa7:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ -< Location: http://a5913dc8-5d66-4a11-8895-4c881443e58c:8001/ +< X-Gabbi-url: http://0621fb4e-a681-4fb8-85e5-27b3c2c12aa7:8001/ +< Location: http://0621fb4e-a681-4fb8-85e5-27b3c2c12aa7:8001/ { - "casted": 2 + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok -gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request -gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request ... ok -#### left side json one #### -> POST http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ +#### cast to string #### +> POST http://0621fb4e-a681-4fb8-85e5-27b3c2c12aa7: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://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ -< Location: http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://0621fb4e-a681-4fb8-85e5-27b3c2c12aa7:8001/ +< Location: http://0621fb4e-a681-4fb8-85e5-27b3c2c12aa7:8001/ { - "alpha": "alpha1", - "beta": "beta1" + "string": "2" } -#### expand left side #### -> POST http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ +#### json encoded value from disk #### +> POST http://706a00ed-7cf7-46ee-a4b5-b29b83731f84:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ -< Location: http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ +< X-Gabbi-url: http://706a00ed-7cf7-46ee-a4b5-b29b83731f84:8001/ +< Location: http://706a00ed-7cf7-46ee-a4b5-b29b83731f84:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "foo": { + "b\u00e1r": 1 + } } -#### expand environ left side #### -> POST http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ +#### json parital from disk #### +> POST http://706a00ed-7cf7-46ee-a4b5-b29b83731f84:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ -< Location: http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/ +< X-Gabbi-url: http://706a00ed-7cf7-46ee-a4b5-b29b83731f84:8001/ +< Location: http://706a00ed-7cf7-46ee-a4b5-b29b83731f84:8001/ { - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" + "type": "cat", + "sound": "meow" } -#### set key and value #### -> GET http://4c6bdbce-35d1-44d7-afad-c616af3fc748:8001/jsonator?key=1&value=10 -> content-type: application/json +#### get simple page #### +> GET http://2d8d7a8c-0076-44c2-aecf-90fbf855b170: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://2d8d7a8c-0076-44c2-aecf-90fbf855b170:8001/ -{ - "1": "10" -} +{} -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.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.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_intercept.self_get_simple_page.test_request -gabbi.tests.test_intercept.self_get_simple_page.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_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request ... ok -gabbi.tests.test_intercept.backref_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.self_post_a_body.test_request +gabbi.tests.test_intercept.self_post_a_body.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.data_load_data_dictionary.test_request +gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_two.test_request +gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok +gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request +gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request ... ok +gabbi.tests.test_intercept.self_confirm_environ.test_request +gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok +gabbi.tests.test_intercept.host-header_host_without_ssl.test_request +gabbi.tests.test_intercept.host-header_host_without_ssl.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_requestException 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' + ... expected failure +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... ok #### post data #### -> POST http://4e7204bf-6649-4f3f-a0ec-181a9402f5f3:8001/ +> POST http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2087,8 +2055,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4e7204bf-6649-4f3f-a0ec-181a9402f5f3:8001/ -< Location: http://4e7204bf-6649-4f3f-a0ec-181a9402f5f3:8001/ +< X-Gabbi-url: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ +< Location: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ { "one_string": "1", @@ -2097,7 +2065,7 @@ } #### use data #### -> POST http://4e7204bf-6649-4f3f-a0ec-181a9402f5f3:8001/ +> POST http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2110,8 +2078,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4e7204bf-6649-4f3f-a0ec-181a9402f5f3:8001/ -< Location: http://4e7204bf-6649-4f3f-a0ec-181a9402f5f3:8001/ +< X-Gabbi-url: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ +< Location: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ { "one_string": "1", @@ -2119,129 +2087,183 @@ "one_float": 1.1 } -#### yaml encoded value from disk #### -> POST http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere +#### from environ #### +> POST http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere -< Location: http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere +< X-Gabbi-url: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ +< Location: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ { - "foo": { - "b\u00e1r": 1 - } + "one_environ": 1 } -#### json encoded value from disk #### -> POST http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere +#### with list #### +> POST http://91074873-a2dd-4ade-b970-17d4ff0dca55: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://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ +< Location: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ + +[ + 1, + 2, + "3" +] + +#### object with list #### +> POST http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere -< Location: http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere +< X-Gabbi-url: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ +< Location: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ { - "foo": { - "b\u00e1r": 1 - } + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] } -#### yaml parital from disk #### -> POST http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere +#### post extra data #### +> POST http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "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://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere -< Location: http://7361b159-3057-4db9-9665-b22e1cd3344c:8001/somewhere +< X-Gabbi-url: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ +< Location: http://91074873-a2dd-4ade-b970-17d4ff0dca55:8001/ { - "type": "cat", - "sound": "meow" + "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 + } + } +} + +#### loop location #### +> GET http://a242aede-6c0e-4720-a7a1-860436b71766: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://a242aede-6c0e-4720-a7a1-860436b71766: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://a242aede-6c0e-4720-a7a1-860436b71766: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://a242aede-6c0e-4720-a7a1-860436b71766:8001/poller?count=2&x=1&y=2&z=3.4 + +{ + "count": [ + "2" + ], + "x": [ + "1" + ], + "y": [ + "2" + ], + "z": [ + "3.4" + ] } -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.casting_cast_to_string.test_request -gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok -gabbi.tests.test_intercept.self_query_returned.test_request -gabbi.tests.test_intercept.self_query_returned.test_request ... ok -gabbi.tests.test_intercept.self_test_binary_handling.test_request -gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok -gabbi.tests.test_intercept.cookie_get_a_cookie.test_request -gabbi.tests.test_intercept.cookie_get_a_cookie.test_request ... ok -gabbi.tests.test_intercept.self_get_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_location_from_headers.test_request ... ok -gabbi.tests.test_intercept.coerce_post_extra_data.test_request -gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok -gabbi.tests.test_intercept.coerce_object_with_list.test_request -gabbi.tests.test_intercept.coerce_object_with_list.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_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.casting_historic_casted_json.test_request -gabbi.tests.test_intercept.casting_historic_casted_json.test_request ... ok -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_error_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_extra ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_nocharset_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_override_default ... ok -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple -gabbi.tests.test_utils.ParseContentTypeTest.test_parse_simple ... ok -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_encoded_value_from_disk.test_request ... ok -gabbi.tests.test_intercept.coerce_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.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 #### get simple page #### -> GET http://0944c354-d72e-43ad-8021-b21a001c0d20:8001/ +> GET http://f26fea40-fa0c-4adb-98a4-b28e52b2acd3:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2249,56 +2271,192 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://0944c354-d72e-43ad-8021-b21a001c0d20:8001/ +< X-Gabbi-url: http://f26fea40-fa0c-4adb-98a4-b28e52b2acd3:8001/ {} -#### json encoded value from disk #### -> POST http://53b511eb-01a4-4cd3-a234-0413273a5201:8001/ +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.cookie_use_that_cookie_in_a_url.test_request +gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request ... ok +gabbi.tests.test_intercept.self_json_derived_content_type.test_request +gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params +gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int +gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url +gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url +gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_full +gabbi.tests.test_parse_url.UrlParseTest.test_parse_full ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix +gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_parse_url +gabbi.tests.test_parse_url.UrlParseTest.test_parse_url ... ok +gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl +gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl ... ok +/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_json_value_from_disk.test_request +gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... 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_data_dir_good +gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_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_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 +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.coerce_check_posted_data.test_request +gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_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_intercept.backref_backref_json_fail_start.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok +gabbi.tests.test_intercept.last-url_get_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok +gabbi.tests.test_intercept.data_post_data_for_next.test_request +gabbi.tests.test_intercept.data_post_data_for_next.test_request ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... 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_that_same_url_again.test_request +gabbi.tests.test_intercept.last-url_get_that_same_url_again.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_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 +gabbi.tests.test_intercept.method-shortcut_simple_get.test_request +gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok +gabbi.tests.test_intercept.queryparams_multi_params.test_request +gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +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", +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", +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok +/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok +gabbi.tests.test_utils.BinaryTypesTest.test_binary +gabbi.tests.test_utils.BinaryTypesTest.test_binary ... ok +gabbi.tests.test_utils.BinaryTypesTest.test_not_binary +gabbi.tests.test_utils.BinaryTypesTest.test_not_binary ... ok +gabbi.tests.test_intercept.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.test_request ... ok +gabbi.tests.test_intercept.self_simple_post.test_request +gabbi.tests.test_intercept.self_simple_post.test_request ... ok +#### left side json one #### +> POST http://069eec65-4460-4170-9d12-db8043680459: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://53b511eb-01a4-4cd3-a234-0413273a5201:8001/ -< Location: http://53b511eb-01a4-4cd3-a234-0413273a5201:8001/ +< X-Gabbi-url: http://069eec65-4460-4170-9d12-db8043680459:8001/ +< Location: http://069eec65-4460-4170-9d12-db8043680459:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } -#### json parital from disk #### -> POST http://53b511eb-01a4-4cd3-a234-0413273a5201:8001/ +#### expand left side #### +> POST http://069eec65-4460-4170-9d12-db8043680459: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://53b511eb-01a4-4cd3-a234-0413273a5201:8001/ -< Location: http://53b511eb-01a4-4cd3-a234-0413273a5201:8001/ +< X-Gabbi-url: http://069eec65-4460-4170-9d12-db8043680459:8001/ +< Location: http://069eec65-4460-4170-9d12-db8043680459:8001/ { - "type": "cat", - "sound": "meow" + "alpha1": "alpha", + "beta1": "beta" } #### default casts #### -> POST http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +> POST http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2314,8 +2472,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ -< Location: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +< X-Gabbi-url: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ +< Location: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ { "int": 1, @@ -2326,7 +2484,7 @@ } #### cast to string #### -> POST http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +> POST http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2338,15 +2496,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ -< Location: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +< X-Gabbi-url: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ +< Location: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ { "string": "2" } #### json set up #### -> POST http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +> POST http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2362,8 +2520,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ -< Location: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +< X-Gabbi-url: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ +< Location: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ { "int": 1, @@ -2374,7 +2532,7 @@ } #### send casted json #### -> POST http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +> POST http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2386,15 +2544,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ -< Location: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +< X-Gabbi-url: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ +< Location: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ { "casted": 2 } #### historic casted json #### -> POST http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +> POST http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2406,141 +2564,34 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ -< Location: http://2eef59a5-0060-4ef1-970e-f4701569f0f7:8001/ +< X-Gabbi-url: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ +< Location: http://fe4abbed-e661-4847-8aa2-1ee7a1c3b6b8:8001/ { "casted": 2 } -#### yaml encoded value from disk #### -> POST http://ba654de6-5f8e-4bcc-bd28-8bc869f24d24:8001/somewhere -> content-type: application/json +#### get simple page #### +> GET http://942565b4-715b-4b70-bf42-cbf3e0a5a626:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "foo": { - "b\u00e1r": 1 - } -} < 200 OK -< X-Gabbi-method: POST +< X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ba654de6-5f8e-4bcc-bd28-8bc869f24d24:8001/somewhere -< Location: http://ba654de6-5f8e-4bcc-bd28-8bc869f24d24:8001/somewhere +< X-Gabbi-url: http://942565b4-715b-4b70-bf42-cbf3e0a5a626:8001/ -{ - "foo": { - "b\u00e1r": 1 - } -} +{} -gabbi.tests.test_intercept.casting_internal_json_fine.test_request -gabbi.tests.test_intercept.casting_internal_json_fine.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok -gabbi.tests.test_intercept.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.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.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.verbosity_confirm_notempty.test_request -gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_dict.test_request ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params -gabbi.tests.test_parse_url.UrlParseTest.test_add_query_params ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_http ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_https_no_ssl ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int -gabbi.tests.test_parse_url.UrlParseTest.test_default_port_int ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url -gabbi.tests.test_parse_url.UrlParseTest.test_extend_query_params_full_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_https_port_80_ssl ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_full_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_no_double_colon_wacky_ssl ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url -gabbi.tests.test_parse_url.UrlParseTest.test_ipv6_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_parse_full -gabbi.tests.test_parse_url.UrlParseTest.test_parse_full ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix -gabbi.tests.test_parse_url.UrlParseTest.test_parse_prefix ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_parse_url -gabbi.tests.test_parse_url.UrlParseTest.test_parse_url ... ok -gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl -gabbi.tests.test_parse_url.UrlParseTest.test_with_ssl ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... 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.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_jsonpath.JSONPathTest.test_sorted_object_list gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok -#### loop location #### -> GET http://94557543-5ccf-40cd-afef-62b7fbc610b3: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://94557543-5ccf-40cd-afef-62b7fbc610b3: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://94557543-5ccf-40cd-afef-62b7fbc610b3: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://94557543-5ccf-40cd-afef-62b7fbc610b3:8001/poller?count=2&x=1&y=2&z=3.4 - -{ - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] -} - +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_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok #### left side json one #### -> POST http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ +> POST http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2552,8 +2603,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ -< Location: http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ +< X-Gabbi-url: http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ +< Location: http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ { "alpha": "alpha1", @@ -2561,7 +2612,7 @@ } #### expand left side #### -> POST http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ +> POST http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2573,8 +2624,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ -< Location: http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ +< X-Gabbi-url: http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ +< Location: http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ { "alpha1": "alpha", @@ -2582,7 +2633,7 @@ } #### expand environ left side #### -> POST http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ +> POST http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2595,8 +2646,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ -< Location: http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/ +< X-Gabbi-url: http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ +< Location: http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/ { "alpha1": "alpha", @@ -2605,7 +2656,7 @@ } #### set key and value #### -> GET http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/jsonator?key=1&value=10 +> GET http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2618,7 +2669,7 @@ } #### check key and value #### -> GET http://e087957c-af17-4e06-a5d2-5c9eb49586f8:8001/jsonator?key=1&value=10 +> GET http://d8bcf8e8-9871-4a31-8ff5-67c996613d10:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2630,8 +2681,17 @@ "1": "10" } +#### confirm notempty #### +> GET http://5372b288-b730-458f-90a1-0c8e67ce5fa0:8001/notempty +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK + +notempty + #### default casts #### -> POST http://e6698fb0-347f-425c-b8a4-4c15e2f38054:8001/ +> POST http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2647,8 +2707,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://e6698fb0-347f-425c-b8a4-4c15e2f38054:8001/ -< Location: http://e6698fb0-347f-425c-b8a4-4c15e2f38054:8001/ +< X-Gabbi-url: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ +< Location: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ { "int": 1, @@ -2659,7 +2719,7 @@ } #### cast to string #### -> POST http://e6698fb0-347f-425c-b8a4-4c15e2f38054:8001/ +> POST http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2671,15 +2731,214 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://e6698fb0-347f-425c-b8a4-4c15e2f38054:8001/ -< Location: http://e6698fb0-347f-425c-b8a4-4c15e2f38054:8001/ +< X-Gabbi-url: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ +< Location: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ { "string": "2" } +#### json set up #### +> POST http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230: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://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ +< Location: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ + +{ + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false +} + +#### send casted json #### +> POST http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230: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://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ +< Location: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ + +{ + "casted": 2 +} + +#### historic casted json #### +> POST http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230: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://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ +< Location: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ + +{ + "casted": 2 +} + +#### internal json fine #### +> POST http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230: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://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ +< Location: http://a30ec79b-4b8d-4c53-a75d-f3ab2a360230:8001/ + +{ + "casted": "in this 2 is not errors" +} + +#### json encoded value from disk #### +> POST http://492178d0-383f-4127-afe5-37bdcec37781: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://492178d0-383f-4127-afe5-37bdcec37781:8001/ +< Location: http://492178d0-383f-4127-afe5-37bdcec37781:8001/ + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### get simple page #### +> GET http://94f8d1dd-7667-47cb-9bfb-f199304d4705: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://94f8d1dd-7667-47cb-9bfb-f199304d4705:8001/ + +{} + +Exception ignored in: +Traceback (most recent call last): + File "/usr/lib/python3.13/http/client.py", line 434, in close + if self.fp: +AttributeError: 'HTTPResponse' object has no attribute 'fp' +gabbi.tests.test_intercept.self_non_json_response_failure.test_request +gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure +gabbi.tests.test_intercept.self_non_json_response_failure.test_request +gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok +gabbi.tests.test_intercept.self_get_ssl_page.test_request +gabbi.tests.test_intercept.self_get_ssl_page.test_request ... ok +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... 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.cookie_use_a_historical_cookie.test_request +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.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_suite.SuiteTest.test_suite_catches_fixture_fail +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... 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.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_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.json-extensions_test_sort.test_request +gabbi.tests.test_intercept.json-extensions_test_sort.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_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_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request ... ok +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_partial_both_sides.test_request ... ok +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request ... ok +gabbi.tests.test_intercept.data_load_data_list.test_request +gabbi.tests.test_intercept.data_load_data_list.test_request ... ok #### post data #### -> POST http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +> POST http://6170251c-5eb0-4039-934f-0658869616ed:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2692,8 +2951,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ -< Location: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +< X-Gabbi-url: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ +< Location: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ { "one_string": "1", @@ -2702,7 +2961,7 @@ } #### use data #### -> POST http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +> POST http://6170251c-5eb0-4039-934f-0658869616ed:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2715,8 +2974,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ -< Location: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +< X-Gabbi-url: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ +< Location: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ { "one_string": "1", @@ -2725,7 +2984,7 @@ } #### from environ #### -> POST http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +> POST http://6170251c-5eb0-4039-934f-0658869616ed:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2736,15 +2995,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ -< Location: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +< X-Gabbi-url: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ +< Location: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ { "one_environ": 1 } #### with list #### -> POST http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +> POST http://6170251c-5eb0-4039-934f-0658869616ed:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2757,8 +3016,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ -< Location: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +< X-Gabbi-url: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ +< Location: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ [ 1, @@ -2767,7 +3026,7 @@ ] #### object with list #### -> POST http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +> POST http://6170251c-5eb0-4039-934f-0658869616ed:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2787,8 +3046,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ -< Location: http://fa8d91cf-6434-468e-a977-9af11dec672a:8001/ +< X-Gabbi-url: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ +< Location: http://6170251c-5eb0-4039-934f-0658869616ed:8001/ { "collection": [ @@ -2803,38 +3062,8 @@ ] } -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... 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_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url -gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok -gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_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://d8f5727b-f90f-49ce-addd-3dbb42b66482:8001/ +> GET http://fc903a0b-1473-4fe8-a344-2e2f8938ccb7:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2842,12 +3071,58 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://d8f5727b-f90f-49ce-addd-3dbb42b66482:8001/ +< X-Gabbi-url: http://fc903a0b-1473-4fe8-a344-2e2f8938ccb7:8001/ {} +#### yaml encoded value from disk #### +> POST http://1f752802-e715-42bb-8434-960ca6298cf2: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://1f752802-e715-42bb-8434-960ca6298cf2:8001/somewhere +< Location: http://1f752802-e715-42bb-8434-960ca6298cf2:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json encoded value from disk #### +> POST http://1f752802-e715-42bb-8434-960ca6298cf2: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://1f752802-e715-42bb-8434-960ca6298cf2:8001/somewhere +< Location: http://1f752802-e715-42bb-8434-960ca6298cf2:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + #### default casts #### -> POST http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +> POST http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2863,8 +3138,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ -< Location: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +< X-Gabbi-url: http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ +< Location: http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ { "int": 1, @@ -2875,7 +3150,7 @@ } #### cast to string #### -> POST http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +> POST http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2887,15 +3162,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ -< Location: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +< X-Gabbi-url: http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ +< Location: http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ { "string": "2" } #### json set up #### -> POST http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +> POST http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -2911,8 +3186,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ -< Location: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +< X-Gabbi-url: http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ +< Location: http://26d910e4-20ca-4a66-a09c-bff3d568e930:8001/ { "int": 1, @@ -2922,155 +3197,199 @@ "fbool": false } -#### send casted json #### -> POST http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +#### get simple page #### +> GET http://62d7d8a9-54b6-45a7-851b-992702eb2784: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://62d7d8a9-54b6-45a7-851b-992702eb2784:8001/ + +{} + +#### yaml encoded value from disk #### +> POST http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ -< Location: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere +< Location: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } -#### historic casted json #### -> POST http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +#### json encoded value from disk #### +> POST http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ -< Location: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere +< Location: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } -#### internal json fine #### -> POST http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +#### yaml parital from disk #### +> POST http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": "in this 2 is not errors" + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ -< Location: http://da35b0a2-8241-4cb3-a373-a497976484ae:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere +< Location: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere { - "casted": "in this 2 is not errors" + "type": "cat", + "sound": "meow" } -#### confirm notempty #### -> GET http://17688e98-6dc8-464c-a738-b71465a4a405:8001/notempty +#### yaml partial both sides #### +> POST http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] < 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere +< Location: http://364d4e4f-6438-4769-a332-78727e550a5c:8001/somewhere -notempty +[ + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } +] -#### yaml encoded value from disk #### -> POST http://91acf9df-2218-452d-ac34-3d48583bcc2e:8001/somewhere +#### left side json one #### +> POST http://513b0db5-6306-4b05-a3b5-5c163f33e81a: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://91acf9df-2218-452d-ac34-3d48583bcc2e:8001/somewhere -< Location: http://91acf9df-2218-452d-ac34-3d48583bcc2e:8001/somewhere +< X-Gabbi-url: http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ +< Location: http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha": "alpha1", + "beta": "beta1" } -#### json encoded value from disk #### -> POST http://91acf9df-2218-452d-ac34-3d48583bcc2e:8001/somewhere +#### expand left side #### +> POST http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "alpha1": "alpha", + "beta1": "beta" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://91acf9df-2218-452d-ac34-3d48583bcc2e:8001/somewhere -< Location: http://91acf9df-2218-452d-ac34-3d48583bcc2e:8001/somewhere +< X-Gabbi-url: http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ +< Location: http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ { - "foo": { - "b\u00e1r": 1 - } + "alpha1": "alpha", + "beta1": "beta" } -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... ok -#### get simple page #### -> GET http://5cb8e632-2d1e-4bcb-bf6f-27630628f25c:8001/ -> x-random-header: ya +#### expand environ left side #### +> POST http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ +> content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} < 200 OK -< X-Gabbi-method: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://5cb8e632-2d1e-4bcb-bf6f-27630628f25c:8001/ +< X-Gabbi-url: http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ +< Location: http://513b0db5-6306-4b05-a3b5-5c163f33e81a:8001/ -{} +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} -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://abc1b4dd-a69c-4fd6-b294-70bebe9d8659:8001/ -> x-random-header: ya +#### set key and value #### +> GET http://513b0db5-6306-4b05-a3b5-5c163f33e81a: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://abc1b4dd-a69c-4fd6-b294-70bebe9d8659:8001/ +< Content-Type: application/json -{} +{ + "1": "10" +} #### default casts #### -> POST http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +> POST http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3086,8 +3405,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ -< Location: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +< X-Gabbi-url: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ +< Location: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ { "int": 1, @@ -3098,7 +3417,7 @@ } #### cast to string #### -> POST http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +> POST http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3110,15 +3429,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ -< Location: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +< X-Gabbi-url: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ +< Location: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ { "string": "2" } #### json set up #### -> POST http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +> POST http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3134,8 +3453,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ -< Location: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +< X-Gabbi-url: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ +< Location: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ { "int": 1, @@ -3146,7 +3465,7 @@ } #### send casted json #### -> POST http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +> POST http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3158,236 +3477,204 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ -< Location: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +< X-Gabbi-url: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ +< Location: http://d6e8e1d2-275b-44f2-9cd4-4fdcc6c60b4c:8001/ { "casted": 2 } -#### historic casted json #### -> POST http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ -> content-type: application/json -> accept: application/json +#### get simple page #### +> GET http://6382cd53-38ed-469a-8b7a-edf72b39c9be:8001/ +> x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) -{ - "casted": 2 -} < 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ -< Location: http://4a6f584d-942e-4d67-bf2e-555e5e463774:8001/ +< X-Gabbi-method: GET +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://6382cd53-38ed-469a-8b7a-edf72b39c9be:8001/ -{ - "casted": 2 -} +{} -#### post data #### -> POST http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ +#### yaml encoded value from disk #### +> POST http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e: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://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ -< Location: http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ +< X-Gabbi-url: http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e:8001/somewhere +< Location: http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e:8001/somewhere { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } -#### use data #### -> POST http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ +#### json encoded value from disk #### +> POST http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e: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://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ -< Location: http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ +< X-Gabbi-url: http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e:8001/somewhere +< Location: http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e:8001/somewhere { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } -#### from environ #### -> POST http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ +#### yaml parital from disk #### +> POST http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_environ": 1 + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ -< Location: http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ +< X-Gabbi-url: http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e:8001/somewhere +< Location: http://9c040e7e-e2eb-4ae5-b0a6-69b01837871e:8001/somewhere { - "one_environ": 1 + "type": "cat", + "sound": "meow" } -#### with list #### -> POST http://9690345b-4ebc-4dba-9db7-0654a3843552: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://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ -< Location: http://9690345b-4ebc-4dba-9db7-0654a3843552:8001/ - -[ - 1, - 2, - "3" -] - -#### yaml encoded value from disk #### -> POST http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere +gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request +gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok +gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request +gabbi.tests.test_intercept.last-url_now_last_url_does_not_have_those_query_params.test_request ... ok +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request +gabbi.tests.test_intercept.backref_get_a_historical_response.test_request ... ok +gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request +gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok +gabbi.tests.test_intercept.self_bogus_method.test_request +gabbi.tests.test_intercept.self_bogus_method.test_request ... ok +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request ... ok +gabbi.tests.test_intercept.self_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_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_unsafe_yaml.nan_test_nan.test_request +gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok +#### post data #### +> POST http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere -< Location: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere +< X-Gabbi-url: http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ +< Location: http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ { - "foo": { - "b\u00e1r": 1 - } + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### json encoded value from disk #### -> POST http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere +#### use data #### +> POST http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "foo": { - "b\u00e1r": 1 - } + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere -< Location: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere +< X-Gabbi-url: http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ +< Location: http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ { - "foo": { - "b\u00e1r": 1 - } + "one_string": "1", + "one_int": 1, + "one_float": 1.1 } -#### yaml parital from disk #### -> POST http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere +#### from environ #### +> POST http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "one_environ": 1 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere -< Location: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere +< X-Gabbi-url: http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ +< Location: http://eb5b4e9b-d813-4bea-84b2-b73194cd3206:8001/ { - "type": "cat", - "sound": "meow" + "one_environ": 1 } -#### yaml partial both sides #### -> POST http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere -< Location: http://faf0b4b8-c885-405f-bdf8-321f87cbb563:8001/somewhere - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -#### get simple page #### -> GET http://27c3536b-3e02-4827-8ed9-d370266afc88: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://27c3536b-3e02-4827-8ed9-d370266afc88:8001/ - -{} - #### json encoded value from disk #### -> POST http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ +> POST http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3400,8 +3687,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ -< Location: http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ +< X-Gabbi-url: http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ +< Location: http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ { "foo": { @@ -3410,7 +3697,7 @@ } #### json parital from disk #### -> POST http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ +> POST http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3422,8 +3709,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ -< Location: http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ +< X-Gabbi-url: http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ +< Location: http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ { "type": "cat", @@ -3431,7 +3718,7 @@ } #### json partial both sides #### -> POST http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ +> POST http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3449,8 +3736,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ -< Location: http://d60a4961-e66d-4140-abca-6b2cb3b98979:8001/ +< X-Gabbi-url: http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ +< Location: http://1f96c86a-6f1a-4bf3-b4c4-abeabeca49ef:8001/ [ { @@ -3463,8 +3750,53 @@ } ] +#### get simple page #### +> GET http://3d75b986-0fcf-4191-bf1c-3824ec8f70c8: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://3d75b986-0fcf-4191-bf1c-3824ec8f70c8:8001/ + +{} + +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.backref_post_even_more_json.test_request +gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok +gabbi.tests.test_intercept.host-header_ssl_with_host.test_request +gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok +gabbi.tests.test_intercept.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.queryparams_simple_param.test_request +gabbi.tests.test_intercept.queryparams_simple_param.test_request ... ok +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request +gabbi.tests.test_intercept.coerce_string_internal_replace.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_utils.ExtractContentTypeTest.test_extract_content_type_bad_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok +gabbi.tests.test_intercept.queryparams_url_in_param.test_request +gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok #### default casts #### -> POST http://2bc68e47-6491-4ddd-87cf-1c165b9cea45:8001/ +> POST http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3480,8 +3812,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://2bc68e47-6491-4ddd-87cf-1c165b9cea45:8001/ -< Location: http://2bc68e47-6491-4ddd-87cf-1c165b9cea45:8001/ +< X-Gabbi-url: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ +< Location: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ { "int": 1, @@ -3491,374 +3823,131 @@ "fbool": false } -#### post data #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd: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://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ - -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} - -#### use data #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd: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://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ - -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} - -#### from environ #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +#### cast to string #### +> POST http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_environ": 1 + "string": "2" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ +< Location: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ { - "one_environ": 1 + "string": "2" } -#### with list #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd: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://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ - -[ - 1, - 2, - "3" -] - -#### object with list #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +#### json set up #### +> POST http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "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://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ +< Location: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ { - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } -#### post extra data #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +#### send casted json #### +> POST http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ +< Location: http://96351c84-4071-4591-bcbf-e60a8d973bde: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 - } - } + "casted": 2 } -#### check posted data #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +#### historic casted json #### +> POST http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "a": 1, - "b": 1.0, - "c": "[1,2,3]", - "d": true, - "e": false, - "f": { - "key": "val" - }, - "g": null, - "h": { - "key": { - "less_key": [ - 1, - true, - null - ], - "more_key": 1 - } - } + "casted": 2 } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://96351c84-4071-4591-bcbf-e60a8d973bde:8001/ +< Location: http://96351c84-4071-4591-bcbf-e60a8d973bde: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 - } - } + "casted": 2 } -#### Post again and check the results #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -> content-type: application/json +#### get simple page #### +> GET http://3b0fc70a-8d0f-4197-9fdc-026c9988d2f3: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://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd: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://4b5598f3-700b-409e-a854-4cf3885229dd: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 - } - } -} +< X-Gabbi-url: http://3b0fc70a-8d0f-4197-9fdc-026c9988d2f3:8001/ -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd: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 - } - } -}gabbi.tests.test_intercept.coerce_check_posted_data.test_request -gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... ok -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok -gabbi.tests.test_intercept.queryparams_url_in_param.test_request -gabbi.tests.test_intercept.queryparams_url_in_param.test_request ... ok -gabbi.tests.test_intercept.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.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 -#### get simple page #### -> GET http://a5cdc578-c09f-4290-8746-5032e51ffbcd:8001/ -> x-random-header: ya +gabbi.tests.test_intercept.self_get_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_location_from_headers.test_request ... ok +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... expected failure +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... ok +gabbi.tests.test_intercept.casting_default_casts.test_request +gabbi.tests.test_intercept.casting_default_casts.test_request ... ok +#### header named http #### +> GET http://819e30ea-0ed5-4f7a-b183-0324e452a53f: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://a5cdc578-c09f-4290-8746-5032e51ffbcd:8001/ +< X-Gabbi-url: http://819e30ea-0ed5-4f7a-b183-0324e452a53f:8001/header_key +< HTTP: some-scheme {} #### post data #### -> POST http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +> POST http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3871,8 +3960,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ -< Location: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +< X-Gabbi-url: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ +< Location: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ { "one_string": "1", @@ -3881,7 +3970,7 @@ } #### use data #### -> POST http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +> POST http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3894,8 +3983,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ -< Location: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +< X-Gabbi-url: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ +< Location: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ { "one_string": "1", @@ -3904,7 +3993,7 @@ } #### from environ #### -> POST http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +> POST http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3915,15 +4004,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ -< Location: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +< X-Gabbi-url: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ +< Location: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ { "one_environ": 1 } #### with list #### -> POST http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +> POST http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3936,8 +4025,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ -< Location: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +< X-Gabbi-url: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ +< Location: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ [ 1, @@ -3946,7 +4035,7 @@ ] #### object with list #### -> POST http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +> POST http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -3966,8 +4055,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ -< Location: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +< X-Gabbi-url: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ +< Location: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ { "collection": [ @@ -3983,7 +4072,7 @@ } #### post extra data #### -> POST http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +> POST http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4012,8 +4101,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ -< Location: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +< X-Gabbi-url: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ +< Location: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ { "a": 1, @@ -4038,7 +4127,7 @@ } #### check posted data #### -> POST http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +> POST http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4067,8 +4156,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ -< Location: http://e9812233-3b7b-4991-9b97-66a6f9e345fc:8001/ +< X-Gabbi-url: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ +< Location: http://19395d7e-60e4-49f6-9a8a-96702e4ac96e:8001/ { "a": 1, @@ -4092,165 +4181,8 @@ } } -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request ... ok -gabbi.tests.test_intercept.json-extensions_test_len.test_request -gabbi.tests.test_intercept.json-extensions_test_len.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.data_load_image_file.test_request -gabbi.tests.test_intercept.data_load_image_file.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.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.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.jsonbody_test_fully_body.test_request -gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_custom_response_handler -gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_data_dir_good -gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_exit_code -gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_input_files -gabbi.tests.test_runner.RunnerTest.test_input_files ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet -gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -/usr/lib/python3.13/unittest/case.py:597: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok -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_post_data_from_prior_response.test_request -gabbi.tests.test_intercept.data_post_data_from_prior_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_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 -gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request -gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok -/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_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.data_json_value_from_disk.test_request -gabbi.tests.test_intercept.data_json_value_from_disk.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 - - -#### string internal replace #### -> POST http://4b5598f3-700b-409e-a854-4cf3885229dd: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://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ -< Location: http://4b5598f3-700b-409e-a854-4cf3885229dd:8001/ - -{ - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" -} - #### get simple page #### -> GET http://c0547758-c05a-420b-80d0-6ab667686ea0:8001/ +> GET http://6fe2021a-6553-4d17-bcbf-166dc234662a:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4258,12 +4190,70 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://c0547758-c05a-420b-80d0-6ab667686ea0:8001/ +< X-Gabbi-url: http://6fe2021a-6553-4d17-bcbf-166dc234662a:8001/ {} +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_(reversed).test_request +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok +gabbi.tests.test_intercept.data_load_image_file.test_request +gabbi.tests.test_intercept.data_load_image_file.test_request ... ok +gabbi.tests.test_intercept.data_load_json_file.test_request +gabbi.tests.test_intercept.data_load_json_file.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.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.poll_poller_fail.test_request +gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure +gabbi.tests.test_intercept.poll_poller_fail.test_request +gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok +gabbi.tests.test_intercept.self_post_a_body_with_query.test_request +gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file +gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory +gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok #### post data #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4276,8 +4266,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ { "one_string": "1", @@ -4286,7 +4276,7 @@ } #### use data #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4299,8 +4289,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ { "one_string": "1", @@ -4309,7 +4299,7 @@ } #### from environ #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4320,15 +4310,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ { "one_environ": 1 } #### with list #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4341,8 +4331,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ [ 1, @@ -4351,7 +4341,7 @@ ] #### object with list #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4371,8 +4361,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ { "collection": [ @@ -4388,7 +4378,7 @@ } #### post extra data #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4417,8 +4407,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ { "a": 1, @@ -4443,7 +4433,7 @@ } #### check posted data #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4472,8 +4462,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ { "a": 1, @@ -4498,7 +4488,7 @@ } #### Post again and check the results #### -> POST http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4527,8 +4517,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ -< Location: http://fce1d307-8976-4582-b89b-84426cc63fc1:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ { "a": 1, @@ -4552,86 +4542,98 @@ } } -#### get simple page #### -> GET http://235ac59b-ce9b-4236-bee2-2de5174ec634: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://235ac59b-ce9b-4236-bee2-2de5174ec634:8001/ - -{} - -#### left side json one #### -> POST http://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b: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://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ -< Location: http://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -#### expand left side #### -> POST http://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ +#### Post again and check the results (reversed) #### +> POST http://2ec83b89-d07d-4041-b49b-367bb701b303: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://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ -< Location: http://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ +< X-Gabbi-url: http://2ec83b89-d07d-4041-b49b-367bb701b303:8001/ +< Location: http://2ec83b89-d07d-4041-b49b-367bb701b303: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 + } + } } -#### expand environ left side #### -> POST http://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ -> content-type: application/json +#### get simple page #### +> GET http://b5cae372-47a4-4885-b23f-b0e24270176e: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://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ -< Location: http://745c2d93-cbe0-4b6b-acaa-c0a46bbf805b:8001/ +< X-Gabbi-url: http://b5cae372-47a4-4885-b23f-b0e24270176e:8001/ -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} +{} +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... expected failure +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_end.test_request ... ok +gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request +gabbi.tests.test_intercept.backref_get_a_historical_response_via_jsonpath.test_request ... ok +gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request +gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request ... ok +gabbi.tests.test_intercept.queryparams_joined_params.test_request +gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok +gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request +gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_simple_post.test_request +gabbi.tests.test_intercept.method-shortcut_simple_post.test_request ... ok +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request ... ok +gabbi.tests.test_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 #### post data #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4644,8 +4646,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "one_string": "1", @@ -4654,7 +4656,7 @@ } #### use data #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4667,8 +4669,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "one_string": "1", @@ -4677,7 +4679,7 @@ } #### from environ #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4688,15 +4690,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "one_environ": 1 } #### with list #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4709,8 +4711,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ [ 1, @@ -4719,7 +4721,7 @@ ] #### object with list #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4739,8 +4741,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "collection": [ @@ -4756,7 +4758,7 @@ } #### post extra data #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4785,8 +4787,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "a": 1, @@ -4811,7 +4813,7 @@ } #### check posted data #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4840,8 +4842,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "a": 1, @@ -4866,7 +4868,7 @@ } #### Post again and check the results #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4895,8 +4897,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "a": 1, @@ -4921,7 +4923,7 @@ } #### Post again and check the results (reversed) #### -> POST http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -4950,8 +4952,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ -< Location: http://edf94f39-9f5b-4e38-848b-a1ff8e820b6c:8001/ +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ { "a": 1, @@ -4975,68 +4977,127 @@ } } -#### header named http #### -> GET http://4d36b2cc-c68b-4136-8677-f892799a6315:8001/header_key -> http: some-scheme +#### string internal replace #### +> POST http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1: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://4d36b2cc-c68b-4136-8677-f892799a6315:8001/header_key -< HTTP: some-scheme +< X-Gabbi-url: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ +< Location: http://8360cd63-0870-4f6a-abc4-ffd543a8f1c1:8001/ -{} +{ + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" +} + +#### default casts #### +> POST http://34a59239-5559-44e1-9aca-d1fa284dd776: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://34a59239-5559-44e1-9aca-d1fa284dd776:8001/ +< Location: http://34a59239-5559-44e1-9aca-d1fa284dd776:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + +#### cast to string #### +> POST http://34a59239-5559-44e1-9aca-d1fa284dd776: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://34a59239-5559-44e1-9aca-d1fa284dd776:8001/ +< Location: http://34a59239-5559-44e1-9aca-d1fa284dd776:8001/ + +{ + "string": "2" +} ---------------------------------------------------------------------- -Ran 314 tests in 3.395s +Ran 314 tests in 7.013s OK (skipped=2, expected failures=15) + stestr slowest Test id Runtime (s) ------------------------------------------------------------------------------------------ ----------- -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 0.938 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 0.661 -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 0.626 -gabbi.tests.test_intercept.backref_get_a_historical_response.test_request 0.394 -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.372 -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 0.360 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.341 -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.334 -gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.326 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.320 +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.477 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 0.941 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.871 +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.642 +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 0.571 +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.486 +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.402 +gabbi.tests.test_intercept.casting_internal_json_fine.test_request 0.374 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 0.369 +gabbi.tests.test_intercept.coerce_object_with_list.test_request 0.343 + 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) ++ 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_inner_fixture.inner_get_two.test_request gabbi.tests.test_inner_fixture.inner_get_two.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_data_to_string.TestDataToString.testHappyPath -gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok -gabbi.tests.test_data_to_string.TestDataToString.testNoContentType -gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok -gabbi.tests.test_data_to_string.TestDataToString.testNoHandler -gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception +gabbi.tests.test_fixtures.FixtureTest.test_fixture_informs_on_exception ... ok +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop +gabbi.tests.test_fixtures.FixtureTest.test_fixture_starts_and_stop ... ok +gabbi.tests.test_inner_fixture.inner_get_three.test_request +gabbi.tests.test_inner_fixture.inner_get_three.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 +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler gabbi.tests.test_handlers.HandlersTest.test_empty_response_handler ... ok gabbi.tests.test_handlers.HandlersTest.test_resonse_headers_stringify @@ -5047,8 +5108,6 @@ 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 -/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_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 @@ -5059,26 +5118,34 @@ 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 +/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_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_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_data_to_string.TestDataToString.testHappyPath +gabbi.tests.test_data_to_string.TestDataToString.testHappyPath ... ok +gabbi.tests.test_data_to_string.TestDataToString.testNoContentType +gabbi.tests.test_data_to_string.TestDataToString.testNoContentType ... ok +gabbi.tests.test_data_to_string.TestDataToString.testNoHandler +gabbi.tests.test_data_to_string.TestDataToString.testNoHandler ... ok +gabbi.tests.test_inner_fixture.inner_get_one.test_request +gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok /usr/lib/python3.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 /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.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_intercept.coerce_use_data.test_request +gabbi.tests.test_intercept.coerce_use_data.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.contenttype_put_content-type.test_request +gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_history gabbi.tests.test_history.HistoryTest.test_cookie_replace_history ... ok gabbi.tests.test_history.HistoryTest.test_cookie_replace_prior @@ -5099,132 +5166,92 @@ 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_inner_fixture.inner_get_one.test_request -gabbi.tests.test_inner_fixture.inner_get_one.test_request ... ok -gabbi.tests.test_intercept.regex_regex_header_test.test_request -gabbi.tests.test_intercept.regex_regex_header_test.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.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_intercept.contenttype_put_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_content-type.test_request ... ok -gabbi.tests.test_history.HistoryTest.test_response_replace_prior -gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok +gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request ... ok +gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request +gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths 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_history.HistoryTest.test_response_replace_prior_regex -gabbi.tests.test_history.HistoryTest.test_response_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.last-url_get_it_a_third_time.test_request -gabbi.tests.test_intercept.last-url_get_it_a_third_time.test_request ... ok +gabbi.tests.test_intercept.coerce_object_with_list.test_request +gabbi.tests.test_intercept.coerce_object_with_list.test_request ... ok +gabbi.tests.test_history.HistoryTest.test_response_replace_prior +gabbi.tests.test_history.HistoryTest.test_response_replace_prior ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_data ... 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.poll_poller.test_request -gabbi.tests.test_intercept.poll_poller.test_request ... ok +gabbi.tests.test_intercept.coerce_post_data.test_request +gabbi.tests.test_intercept.coerce_post_data.test_request ... ok +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path +gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok +gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex +gabbi.tests.test_history.HistoryTest.test_response_replace_prior_regex ... ok gabbi.tests.test_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 +/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_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_fail_path -gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_fail_path ... ok -gabbi.tests.test_intercept.backref_post_some_json.test_request -gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok -gabbi.tests.test_intercept.self_get_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_location_from_headers.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.jsonbody_test_empty_dict.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_dict.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_handlers.HandlersTest.test_response_json_paths_from_disk_json_path gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path ... ok -gabbi.tests.test_intercept.self_simple_post.test_request -gabbi.tests.test_intercept.self_simple_post.test_request ... ok -gabbi.tests.test_intercept.self_use_prior_location.test_request -gabbi.tests.test_intercept.self_use_prior_location.test_request ... ok -/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 -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_json.test_request -gabbi.tests.test_intercept.regex_regex_string_test_json.test_request ... ok -gabbi.tests.test_intercept.self_post_a_body.test_request -gabbi.tests.test_intercept.self_post_a_body.test_request ... ok -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request -gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok -gabbi.tests.test_intercept.self_post_a_body_with_query.test_request -gabbi.tests.test_intercept.self_post_a_body_with_query.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_from_disk_json_path_fail ... ok -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_left_side.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex ... ok -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request -gabbi.tests.test_intercept.host-header_ssl_no_host.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_number ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_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.self_xml_derived_content_type.test_request -gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... expected failure -gabbi.tests.test_intercept.self_xml_derived_content_type.test_request -gabbi.tests.test_intercept.self_xml_derived_content_type.test_request ... ok -gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request -gabbi.tests.test_intercept.cookie_use_a_historical_cookie.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_cast_to_int_internal.test_request +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... expected failure +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request +gabbi.tests.test_intercept.casting_cast_to_int_internal.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_match ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_target -gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok -gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl -gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_regex_path_nomatch ... ok +gabbi.tests.test_intercept.casting_cast_to_string.test_request +gabbi.tests.test_intercept.casting_cast_to_string.test_request ... ok +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request +gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' 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_driver.DriverTest.test_build_url_use_prior_test -gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... 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_driver.DriverTest.test_build_with_url_provides_host -gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok +gabbi.tests.test_intercept.fixture_just_to_see_two.test_request +gabbi.tests.test_intercept.fixture_just_to_see_two.test_request ... ok +gabbi.tests.test_intercept.last-url_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_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_driver_loads_three_tests -gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok -gabbi.tests.test_driver.DriverTest.test_driver_prefix -gabbi.tests.test_driver.DriverTest.test_driver_prefix ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_substitution_regex ... ok -gabbi.tests.test_inner_fixture.inner_get_three.test_request -gabbi.tests.test_inner_fixture.inner_get_three.test_request ... ok -gabbi.tests.test_intercept.skipall_a_skipped_test.test_request -gabbi.tests.test_intercept.skipall_a_skipped_test.test_request ... skipped 'entire suite skipped' -gabbi.tests.test_intercept.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_post_some_more_json.test_request -gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok +gabbi.tests.test_intercept.json-extensions_test_sort.test_request +gabbi.tests.test_intercept.json-extensions_test_sort.test_request ... ok +gabbi.tests.test_intercept.json-extensions_test_filtered.test_request +gabbi.tests.test_intercept.json-extensions_test_filtered.test_request ... ok +gabbi.tests.test_intercept.data_json_value_from_disk.test_request +gabbi.tests.test_intercept.data_json_value_from_disk.test_request ... ok +gabbi.tests.test_intercept.queryparams_joined_params.test_request +gabbi.tests.test_intercept.queryparams_joined_params.test_request ... ok +gabbi.tests.test_intercept.failskip_wrong_status.test_request +gabbi.tests.test_intercept.failskip_wrong_status.test_request ... expected failure +gabbi.tests.test_intercept.failskip_wrong_status.test_request +gabbi.tests.test_intercept.failskip_wrong_status.test_request ... ok +gabbi.tests.test_intercept.coerce_from_environ.test_request +gabbi.tests.test_intercept.coerce_from_environ.test_request ... ok gabbi.tests.test_handlers.HandlersTest.test_response_json_paths_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 +/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_strings gabbi.tests.test_handlers.HandlersTest.test_response_strings ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail @@ -5233,130 +5260,78 @@ gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_output ... ok gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload gabbi.tests.test_handlers.HandlersTest.test_response_strings_fail_big_payload ... ok -gabbi.tests.test_intercept.casting_default_casts.test_request -gabbi.tests.test_intercept.casting_default_casts.test_request ... ok -gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request -gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request ... ok -gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request -gabbi.tests.test_intercept.regex_regex_string_test_mix.test_request ... ok -gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request -gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request ... ok -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request -gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok -gabbi.tests.test_intercept.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.casting_send_casted_json.test_request -gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok +gabbi.tests.test_intercept.coerce_with_list.test_request +gabbi.tests.test_intercept.coerce_with_list.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_patch_content-type.test_request gabbi.tests.test_intercept.contenttype_patch_content-type.test_request ... ok -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request ... ok -gabbi.tests.test_intercept.coerce_post_data.test_request -gabbi.tests.test_intercept.coerce_post_data.test_request ... ok -gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request -gabbi.tests.test_intercept.json-left-side_expand_environ_left_side.test_request ... ok -gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request -gabbi.tests.test_intercept.method-shortcut_post_with_query.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_use_data.test_request -gabbi.tests.test_intercept.coerce_use_data.test_request ... ok -gabbi.tests.test_intercept.host-header_ssl_with_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok -gabbi.tests.test_intercept.backref_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.queryparams_replacers_in_params.test_request -gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok -gabbi.tests.test_intercept.queryparams_unicode.test_request -gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok +gabbi.tests.test_intercept.jsonbody_test_fully_body.test_request +gabbi.tests.test_intercept.jsonbody_test_fully_body.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.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_jsonpath_test.test_request +gabbi.tests.test_intercept.regex_regex_jsonpath_test.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.backref_post_a_raw_int_as_json.test_request -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request ... ok -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request ... ok -gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_no_content-type.test_request ... ok -gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_patch_no_content-type.test_request ... ok -gabbi.tests.test_intercept.backref_post_even_more_json.test_request -gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_two.test_request -gabbi.tests.test_intercept.fixture_just_to_see_two.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.casting_cast_to_string.test_request -gabbi.tests.test_intercept.casting_cast_to_string.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.method-shortcut_simple_get.test_request -gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request -gabbi.tests.test_intercept.fixture_just_to_see_one.test_request ... ok -gabbi.tests.test_intercept.poll_poller_fail.test_request -gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure -gabbi.tests.test_intercept.poll_poller_fail.test_request -gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok -gabbi.tests.test_intercept.contenttype_put_no_content-type.test_request -gabbi.tests.test_intercept.contenttype_put_no_content-type.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.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.cookie_get_a_cookie.test_request -gabbi.tests.test_intercept.cookie_get_a_cookie.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_bogus_method.test_request -gabbi.tests.test_intercept.self_bogus_method.test_request ... ok -gabbi.tests.test_intercept.contenttype_post_content-type.test_request -gabbi.tests.test_intercept.contenttype_post_content-type.test_request ... ok gabbi.tests.test_intercept.self_get_simple_page.test_request gabbi.tests.test_intercept.self_get_simple_page.test_request ... ok -gabbi.tests.test_intercept.queryparams_multi_params.test_request -gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok -gabbi.tests.test_intercept.self_use_a_historical_location.test_request -gabbi.tests.test_intercept.self_use_a_historical_location.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.header-key_header_named_http.test_request -gabbi.tests.test_intercept.header-key_header_named_http.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 +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_driver.DriverTest.test_build_require_ssl +gabbi.tests.test_driver.DriverTest.test_build_require_ssl ... ok +gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept +gabbi.tests.test_driver.DriverTest.test_build_requires_host_or_intercept ... ok +gabbi.tests.test_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_non_json_response_failure.test_request +gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... expected failure +gabbi.tests.test_intercept.self_non_json_response_failure.test_request +gabbi.tests.test_intercept.self_non_json_response_failure.test_request ... ok +gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_check_key_and_value.test_request ... ok +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_target +gabbi.tests.test_driver.DriverTest.test_build_url_target ... ok gabbi.tests.test_intercept.self_checklimit.test_request gabbi.tests.test_intercept.self_checklimit.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.backref_backref_json_fail_start.test_request -gabbi.tests.test_intercept.backref_backref_json_fail_start.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.forbiddenheaders_header_not_there_basic.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok -gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request -gabbi.tests.test_intercept.verbosity_confirm_notempty.test_request ... ok -gabbi.tests.test_intercept.self_query_returned.test_request -gabbi.tests.test_intercept.self_query_returned.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.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.self_test_pluggable_response.test_request -gabbi.tests.test_intercept.self_test_pluggable_response.test_request ... ok -gabbi.tests.test_intercept.self_test_binary_handling.test_request -gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok -gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request -gabbi.tests.test_intercept.self_inheritance_of_defaults.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_driver.DriverTest.test_build_url_target_forced_ssl +gabbi.tests.test_driver.DriverTest.test_build_url_target_forced_ssl ... ok +gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test +gabbi.tests.test_driver.DriverTest.test_build_url_use_prior_test ... ok +gabbi.tests.test_intercept.self_get_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_location_from_headers.test_request ... ok +gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host +gabbi.tests.test_driver.DriverTest.test_build_with_url_provides_host ... ok +gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests +gabbi.tests.test_driver.DriverTest.test_driver_loads_three_tests ... ok +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.test_request +gabbi.tests.test_intercept.method-shortcut_arbitrary_method.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_driver.DriverTest.test_driver_prefix +gabbi.tests.test_driver.DriverTest.test_driver_prefix ... 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_handlers.TestJSONHandlerAccept.test_many_content_types +gabbi.tests.test_handlers.TestJSONHandlerAccept.test_many_content_types ... 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.contenttype_post_content-type.test_request +gabbi.tests.test_intercept.contenttype_post_content-type.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_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 @@ -5387,41 +5362,33 @@ 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.json-extensions_test_sort.test_request -gabbi.tests.test_intercept.json-extensions_test_sort.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_confirm_environ.test_request -gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail -gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset -gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok -gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request -gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request ... ok -#### get simple page #### -> GET http://4b91f915-b281-49f9-b7f5-2ccbe936bc89:8001/ -> x-random-header: ya +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 +#### post data #### +> POST http://dcaf1a72-c9d8-459e-933c-d1e76ff9e013: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: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4b91f915-b281-49f9-b7f5-2ccbe936bc89:8001/ +< X-Gabbi-url: http://dcaf1a72-c9d8-459e-933c-d1e76ff9e013:8001/ +< Location: http://dcaf1a72-c9d8-459e-933c-d1e76ff9e013:8001/ -{} +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} #### default casts #### -> POST http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +> POST http://2c673362-caed-4bf5-a5bd-81e0ea7b5531:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5437,8 +5404,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ -< Location: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +< X-Gabbi-url: http://2c673362-caed-4bf5-a5bd-81e0ea7b5531:8001/ +< Location: http://2c673362-caed-4bf5-a5bd-81e0ea7b5531:8001/ { "int": 1, @@ -5449,7 +5416,7 @@ } #### cast to string #### -> POST http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +> POST http://2c673362-caed-4bf5-a5bd-81e0ea7b5531:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5461,63 +5428,189 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ -< Location: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +< X-Gabbi-url: http://2c673362-caed-4bf5-a5bd-81e0ea7b5531:8001/ +< Location: http://2c673362-caed-4bf5-a5bd-81e0ea7b5531:8001/ { "string": "2" } -#### json set up #### -> POST http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +#### get simple page #### +> GET http://e9937d07-b14b-4d98-949b-923d0ea2a990: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://e9937d07-b14b-4d98-949b-923d0ea2a990:8001/ + +{} + +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.cookie_get_a_cookie.test_request +gabbi.tests.test_intercept.cookie_get_a_cookie.test_request ... ok +gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.test_request +gabbi.tests.test_intercept.json-right-side_json_parital_from_disk.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_use_prior_test.UsePriorTest.test_use_prior_default_true +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false ... ok +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true +gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_bad_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_both ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_default_charset ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_multiple_params ... ok +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset +gabbi.tests.test_utils.ExtractContentTypeTest.test_extract_content_type_with_charset ... ok +gabbi.tests.test_intercept.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.casting_json_set_up.test_request +gabbi.tests.test_intercept.casting_json_set_up.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.disable-response-handler_get_some_not_json_fail.test_request +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... expected failure +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request +gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_fail.test_request ... ok +gabbi.tests.test_intercept.regex_regex_string_test_splat.test_request +gabbi.tests.test_intercept.regex_regex_string_test_splat.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_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_json_encoded_value_from_disk.test_request ... ok +gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request +gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request ... ok +#### get simple page #### +> GET http://c1ac67f3-e5a1-47ab-860e-9b55efd50d5f: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://c1ac67f3-e5a1-47ab-860e-9b55efd50d5f:8001/ + +{} + +#### yaml encoded value from disk #### +> POST http://14ffa65b-2f6d-4304-83c6-dfa7eeea1809:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ -< Location: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://14ffa65b-2f6d-4304-83c6-dfa7eeea1809:8001/somewhere +< Location: http://14ffa65b-2f6d-4304-83c6-dfa7eeea1809:8001/somewhere { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "foo": { + "b\u00e1r": 1 + } } -#### send casted json #### -> POST http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +#### json encoded value from disk #### +> POST http://14ffa65b-2f6d-4304-83c6-dfa7eeea1809:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ -< Location: http://47c19641-c3d4-4629-be5f-70ec758ad778:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://14ffa65b-2f6d-4304-83c6-dfa7eeea1809:8001/somewhere +< Location: http://14ffa65b-2f6d-4304-83c6-dfa7eeea1809:8001/somewhere { - "casted": 2 + "foo": { + "b\u00e1r": 1 + } } +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.backref_post_some_json.test_request +gabbi.tests.test_intercept.backref_post_some_json.test_request ... ok +gabbi.tests.test_intercept.last-url_get_that_same_url_again.test_request +gabbi.tests.test_intercept.last-url_get_that_same_url_again.test_request ... ok +gabbi.tests.test_intercept.host-header_ssl_no_host.test_request +gabbi.tests.test_intercept.host-header_ssl_no_host.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_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.data_load_encoded_text.test_request +gabbi.tests.test_intercept.data_load_encoded_text.test_request ... ok +gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request +gabbi.tests.test_unsafe_yaml.nan_test_nan.test_request ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_host_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_hostport_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_localhost ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ipv6_url_long ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_no_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_plain_url_with_port ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_simple_hostport_with_prefix ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port80_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_port_url ... ok +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url +gabbi.tests.test_utils.UtilsHostInfoFromTarget.test_ssl_url ... ok #### post data #### -> POST http://f5c53148-6455-4f42-b137-a1aea73f1fbc:8001/ +> POST http://2daf15e6-00da-44ec-a9f9-d336b6df6e22:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5530,8 +5623,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f5c53148-6455-4f42-b137-a1aea73f1fbc:8001/ -< Location: http://f5c53148-6455-4f42-b137-a1aea73f1fbc:8001/ +< X-Gabbi-url: http://2daf15e6-00da-44ec-a9f9-d336b6df6e22:8001/ +< Location: http://2daf15e6-00da-44ec-a9f9-d336b6df6e22:8001/ { "one_string": "1", @@ -5539,38 +5632,31 @@ "one_float": 1.1 } -#### confirm notempty #### -> GET http://97b82c6a-16e7-40f0-8a30-b5070f9ec059:8001/notempty -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK - -notempty - -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_unsafe_yaml.nan_test_nan.test_request -gabbi.tests.test_unsafe_yaml.nan_test_nan.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 -#### get simple page #### -> GET http://a24a05a9-28c1-4c1f-ab69-d95884ec68e8:8001/ -> x-random-header: ya +#### use data #### +> POST http://2daf15e6-00da-44ec-a9f9-d336b6df6e22: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: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://a24a05a9-28c1-4c1f-ab69-d95884ec68e8:8001/ +< X-Gabbi-url: http://2daf15e6-00da-44ec-a9f9-d336b6df6e22:8001/ +< Location: http://2daf15e6-00da-44ec-a9f9-d336b6df6e22:8001/ -{} +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} #### left side json one #### -> POST http://48966ffb-42da-4c48-b306-22ebbd56b271:8001/ +> POST http://7286dcc2-3e37-43d2-a610-05fdc08299e0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5582,8 +5668,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://48966ffb-42da-4c48-b306-22ebbd56b271:8001/ -< Location: http://48966ffb-42da-4c48-b306-22ebbd56b271:8001/ +< X-Gabbi-url: http://7286dcc2-3e37-43d2-a610-05fdc08299e0:8001/ +< Location: http://7286dcc2-3e37-43d2-a610-05fdc08299e0:8001/ { "alpha": "alpha1", @@ -5591,7 +5677,7 @@ } #### expand left side #### -> POST http://48966ffb-42da-4c48-b306-22ebbd56b271:8001/ +> POST http://7286dcc2-3e37-43d2-a610-05fdc08299e0:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5603,8 +5689,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://48966ffb-42da-4c48-b306-22ebbd56b271:8001/ -< Location: http://48966ffb-42da-4c48-b306-22ebbd56b271:8001/ +< X-Gabbi-url: http://7286dcc2-3e37-43d2-a610-05fdc08299e0:8001/ +< Location: http://7286dcc2-3e37-43d2-a610-05fdc08299e0:8001/ { "alpha1": "alpha", @@ -5612,7 +5698,7 @@ } #### default casts #### -> POST http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +> POST http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5628,8 +5714,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ -< Location: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +< X-Gabbi-url: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ +< Location: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ { "int": 1, @@ -5640,7 +5726,7 @@ } #### cast to string #### -> POST http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +> POST http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5652,15 +5738,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ -< Location: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +< X-Gabbi-url: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ +< Location: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ { "string": "2" } #### json set up #### -> POST http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +> POST http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5676,8 +5762,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ -< Location: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +< X-Gabbi-url: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ +< Location: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ { "int": 1, @@ -5688,7 +5774,7 @@ } #### send casted json #### -> POST http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +> POST http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5700,15 +5786,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ -< Location: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +< X-Gabbi-url: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ +< Location: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ { "casted": 2 } #### historic casted json #### -> POST http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +> POST http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5720,166 +5806,85 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ -< Location: http://64afcbaa-92ab-4221-a3d7-e57acfdc2772:8001/ +< X-Gabbi-url: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ +< Location: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ { "casted": 2 } -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request -gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok -gabbi.tests.test_intercept.self_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.disable-response-handler_get_some_not_json_gloss.test_request -gabbi.tests.test_intercept.disable-response-handler_get_some_not_json_gloss.test_request ... ok -gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request -gabbi.tests.test_intercept.host-header_ssl_with_capitalised_host.test_request ... ok -gabbi.tests.test_intercept.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_from_environ.test_request -gabbi.tests.test_intercept.coerce_from_environ.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.poll_loop_location.test_request -gabbi.tests.test_intercept.poll_loop_location.test_request ... ok -gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request -gabbi.tests.test_intercept.jsonbody_test_empty_list.test_request ... ok -gabbi.tests.test_intercept.json-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_load_data_file.DataFileTest.test_load_file -gabbi.tests.test_load_data_file.DataFileTest.test_load_file ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_parent_dir ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_in_root ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_not_within_test_directory ... ok -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory -gabbi.tests.test_load_data_file.DataFileTest.test_load_file_within_test_directory ... ok -gabbi.tests.test_intercept.data_partial_json_from_disk.test_request -gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color -gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok -gabbi.tests.test_intercept.coerce_with_list.test_request -gabbi.tests.test_intercept.coerce_with_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 -/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 -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_data_dir_good -gabbi.tests.test_runner.RunnerTest.test_data_dir_good ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_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_runner.RunnerTest.test_exit_code -gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_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 -/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.self_json_derived_content_type.test_request -gabbi.tests.test_intercept.self_json_derived_content_type.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.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.queryparams_simple_param.test_request -gabbi.tests.test_intercept.queryparams_simple_param.test_request ... ok -#### left side json one #### -> POST http://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445: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://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ -< Location: http://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -#### expand left side #### -> POST http://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ +#### internal json fine #### +> POST http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ > content-type: application/json +> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "alpha1": "alpha", - "beta1": "beta" + "casted": "in this 2 is not errors" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ -< Location: http://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ +< Location: http://c2092ff0-7b7f-40aa-b9fd-1a951282a20b:8001/ { - "alpha1": "alpha", - "beta1": "beta" + "casted": "in this 2 is not errors" } -#### expand environ left side #### -> POST http://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ -> content-type: application/json +gabbi.tests.test_intercept.backref_post_even_more_json.test_request +gabbi.tests.test_intercept.backref_post_even_more_json.test_request ... ok +gabbi.tests.test_intercept.poll_poller_fail.test_request +gabbi.tests.test_intercept.poll_poller_fail.test_request ... expected failure +gabbi.tests.test_intercept.poll_poller_fail.test_request +gabbi.tests.test_intercept.poll_poller_fail.test_request ... ok +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request +gabbi.tests.test_intercept.data_partial_json_from_disk.test_request ... ok +gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request +gabbi.tests.test_intercept.self_inheritance_of_defaults.test_request ... ok +gabbi.tests.test_intercept.self_query_returned.test_request +gabbi.tests.test_intercept.self_query_returned.test_request ... ok +gabbi.tests.test_intercept.self_use_a_historical_location.test_request +gabbi.tests.test_intercept.self_use_a_historical_location.test_request ... ok +gabbi.tests.test_intercept.backref_post_some_more_json.test_request +gabbi.tests.test_intercept.backref_post_some_more_json.test_request ... ok +gabbi.tests.test_intercept.coerce_post_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.coerce_check_posted_data.test_request +gabbi.tests.test_intercept.coerce_check_posted_data.test_request ... ok +gabbi.tests.test_intercept.queryparams_multi_params.test_request +gabbi.tests.test_intercept.queryparams_multi_params.test_request ... ok +gabbi.tests.test_intercept.self_simple_post.test_request +gabbi.tests.test_intercept.self_simple_post.test_request ... ok +gabbi.tests.test_intercept.self_use_prior_location.test_request +gabbi.tests.test_intercept.self_use_prior_location.test_request ... ok +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request +gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request ... ok +gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request +gabbi.tests.test_intercept.last-url_get_a_url_the_first_time.test_request ... ok +gabbi.tests.test_intercept.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 +#### header named http #### +> GET http://e508e757-684b-4ad3-abac-535c731bcc59:8001/header_key +> http: some-scheme > 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://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ -< Location: http://dc0ef2ca-215b-46cc-b1a0-c8f845dcf445:8001/ +< X-Gabbi-url: http://e508e757-684b-4ad3-abac-535c731bcc59:8001/header_key +< HTTP: some-scheme -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} +{} #### default casts #### -> POST http://3dc7fe95-c287-4d22-8063-fca6957fc45f:8001/ +> POST http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5895,8 +5900,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://3dc7fe95-c287-4d22-8063-fca6957fc45f:8001/ -< Location: http://3dc7fe95-c287-4d22-8063-fca6957fc45f:8001/ +< X-Gabbi-url: http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ +< Location: http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ { "int": 1, @@ -5907,7 +5912,7 @@ } #### cast to string #### -> POST http://3dc7fe95-c287-4d22-8063-fca6957fc45f:8001/ +> POST http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -5919,86 +5924,43 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://3dc7fe95-c287-4d22-8063-fca6957fc45f:8001/ -< Location: http://3dc7fe95-c287-4d22-8063-fca6957fc45f:8001/ +< X-Gabbi-url: http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ +< Location: http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ { "string": "2" } -#### yaml encoded value from disk #### -> POST http://b7fb72bf-df69-4868-9fe1-425c21d481ad:8001/somewhere +#### json set up #### +> POST http://e80079fd-4a8a-4267-8e11-d01054a19d34: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://b7fb72bf-df69-4868-9fe1-425c21d481ad:8001/somewhere -< Location: http://b7fb72bf-df69-4868-9fe1-425c21d481ad:8001/somewhere +< Content-Type: application/json +< X-Gabbi-url: http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ +< Location: http://e80079fd-4a8a-4267-8e11-d01054a19d34:8001/ { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": "2", + "tbool": true, + "fbool": false } -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir -gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port -gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml -gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting -gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok -gabbi.tests.test_intercept.data_load_json_file.test_request -gabbi.tests.test_intercept.data_load_json_file.test_request ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_intercept.data_load_image_file.test_request -gabbi.tests.test_intercept.data_load_image_file.test_request ... ok -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_body ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none -gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok -gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request -gabbi.tests.test_intercept.data_post_data_from_prior_response.test_request ... ok -gabbi.tests.test_intercept.self_get_ssl_page.test_request -gabbi.tests.test_intercept.self_get_ssl_page.test_request ... ok -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... expected failure -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request -gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... ok #### get simple page #### -> GET http://4cbe5238-440e-4994-b1e0-630c013c7079:8001/ +> GET http://e5df6b2e-418b-4880-81e1-9412ed822054:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6006,131 +5968,58 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://4cbe5238-440e-4994-b1e0-630c013c7079:8001/ +< X-Gabbi-url: http://e5df6b2e-418b-4880-81e1-9412ed822054:8001/ {} -#### left side json one #### -> POST http://7d1f81bd-164b-44bb-b51b-fcd503a858fe: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://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/ -< Location: http://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -#### expand left side #### -> POST http://7d1f81bd-164b-44bb-b51b-fcd503a858fe: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://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/ -< Location: http://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/ - -{ - "alpha1": "alpha", - "beta1": "beta" -} - -#### expand environ left side #### -> POST http://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/ -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/ -< Location: http://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/ - -{ - "alpha1": "alpha", - "beta1": "beta", - "1": "cow" -} - -#### set key and value #### -> GET http://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/jsonator?key=1&value=10 -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK -< Content-Type: application/json - -{ - "1": "10" -} - -#### check key and value #### -> GET http://7d1f81bd-164b-44bb-b51b-fcd503a858fe:8001/jsonator?key=1&value=10 -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - - -< 200 OK -< Content-Type: application/json - -{ - "1": "10" -} - -#### default casts #### -> POST http://94bccf17-2dc6-47d5-a45f-fbd76f26500b: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://94bccf17-2dc6-47d5-a45f-fbd76f26500b:8001/ -< Location: http://94bccf17-2dc6-47d5-a45f-fbd76f26500b:8001/ - -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} - +gabbi.tests.test_intercept.json-extensions_test_len.test_request +gabbi.tests.test_intercept.json-extensions_test_len.test_request ... ok +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... expected failure +gabbi.tests.test_intercept.failskip_non_existent_header.test_request +gabbi.tests.test_intercept.failskip_non_existent_header.test_request ... ok +gabbi.tests.test_intercept.self_fail_pluggable_response.test_request +gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... expected failure +gabbi.tests.test_intercept.self_fail_pluggable_response.test_request +gabbi.tests.test_intercept.self_fail_pluggable_response.test_request ... ok +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... expected failure +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request +gabbi.tests.test_intercept.self_test_exception_wrapper.test_request ... ok +gabbi.tests.test_intercept.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.fixture_just_to_see_three.test_request +gabbi.tests.test_intercept.fixture_just_to_see_three.test_request ... ok +gabbi.tests.test_intercept.last-url_get_prior_url.test_request +gabbi.tests.test_intercept.last-url_get_prior_url.test_request ... ok +gabbi.tests.test_intercept.self_test_binary_handling.test_request +gabbi.tests.test_intercept.self_test_binary_handling.test_request ... ok +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... expected failure +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail.test_request ... ok +gabbi.tests.test_intercept.coerce_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.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.verbosity_confirm_notempty.test_request +gabbi.tests.test_intercept.verbosity_confirm_notempty.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.method-shortcut_simple_get.test_request +gabbi.tests.test_intercept.method-shortcut_simple_get.test_request ... ok +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean +gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color +gabbi.tests.test_utils.ColorizeTest.test_colorize_missing_color ... ok +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.poll_poller.test_request +gabbi.tests.test_intercept.poll_poller.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 #### post data #### -> POST http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ +> POST http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6143,8 +6032,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ -< Location: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ +< X-Gabbi-url: http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ +< Location: http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ { "one_string": "1", @@ -6153,7 +6042,7 @@ } #### use data #### -> POST http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ +> POST http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6166,8 +6055,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ -< Location: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ +< X-Gabbi-url: http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ +< Location: http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ { "one_string": "1", @@ -6176,7 +6065,7 @@ } #### from environ #### -> POST http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ +> POST http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6187,224 +6076,92 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ -< Location: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ +< X-Gabbi-url: http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ +< Location: http://b9627e00-6ff1-458b-ab43-ae3c0b994e32:8001/ { "one_environ": 1 } -#### with list #### -> POST http://dd5c3766-4852-4fe5-a5c1-4175134aee2e: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://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ -< Location: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ - -[ - 1, - 2, - "3" -] - -#### object with list #### -> POST http://dd5c3766-4852-4fe5-a5c1-4175134aee2e: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://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ -< Location: http://dd5c3766-4852-4fe5-a5c1-4175134aee2e:8001/ - -{ - "collection": [ - { - "alpha": 1, - "beta": "max" - }, - { - "alpha": 2, - "beta": "climb" - } - ] -} - -#### header named http #### -> GET http://24541653-18b4-47c9-89b2-da52944502c1: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://24541653-18b4-47c9-89b2-da52944502c1:8001/header_key -< HTTP: some-scheme - -{} - -gabbi.tests.test_intercept.casting_json_set_up.test_request -gabbi.tests.test_intercept.casting_json_set_up.test_request ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match -gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... 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_jsonpath.JSONPathTest.test_embedded_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... 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_replacers.EnvironReplaceTest.test_environ_boolean -gabbi.tests.test_replacers.EnvironReplaceTest.test_environ_boolean ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list -gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok -#### left side json one #### -> POST http://9f467b6d-9bc6-4a5e-b103-b8d614a97350: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://9f467b6d-9bc6-4a5e-b103-b8d614a97350:8001/ -< Location: http://9f467b6d-9bc6-4a5e-b103-b8d614a97350:8001/ - -{ - "alpha": "alpha1", - "beta": "beta1" -} - -#### post data #### -> POST http://eed700d0-9574-4ec1-bab5-1c51e15011ed: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://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ -< Location: http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ - -{ - "one_string": "1", - "one_int": 1, - "one_float": 1.1 -} - -#### use data #### -> POST http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ +#### json encoded value from disk #### +> POST http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ > 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://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ -< Location: http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ +< X-Gabbi-url: http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ +< Location: http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ { - "one_string": "1", - "one_int": 1, - "one_float": 1.1 + "foo": { + "b\u00e1r": 1 + } } -#### from environ #### -> POST http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ +#### json parital from disk #### +> POST http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "one_environ": 1 + "type": "cat", + "sound": "meow" } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ -< Location: http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ +< X-Gabbi-url: http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ +< Location: http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ { - "one_environ": 1 + "type": "cat", + "sound": "meow" } -#### with list #### -> POST http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ +#### json partial both sides #### +> POST http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) [ - 1, - 2, - "3" + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } ] < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ -< Location: http://eed700d0-9574-4ec1-bab5-1c51e15011ed:8001/ +< X-Gabbi-url: http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ +< Location: http://7c342832-b260-4f3c-a583-d46bb8a43030:8001/ [ - 1, - 2, - "3" + { + "type": "cat", + "sound": "meow" + }, + { + "type": "dog", + "sound": "woof" + } ] -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling -gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list -gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok -gabbi.tests.test_intercept.json-extensions_test_filtered.test_request -gabbi.tests.test_intercept.json-extensions_test_filtered.test_request ... ok #### get simple page #### -> GET http://81549972-b8fb-4a2e-8b82-04479df46b9a:8001/ +> GET http://2ec89a5a-68a3-4e9e-a554-c7e5b18b245c:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6412,77 +6169,35 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://81549972-b8fb-4a2e-8b82-04479df46b9a:8001/ +< X-Gabbi-url: http://2ec89a5a-68a3-4e9e-a554-c7e5b18b245c:8001/ {} -#### default casts #### -> POST http://0c5d7da6-2c2b-4733-98e0-02765f9b018d: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://0c5d7da6-2c2b-4733-98e0-02765f9b018d:8001/ -< Location: http://0c5d7da6-2c2b-4733-98e0-02765f9b018d:8001/ - -{ - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false -} - -#### cast to string #### -> POST http://0c5d7da6-2c2b-4733-98e0-02765f9b018d:8001/ +#### yaml encoded value from disk #### +> POST http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "string": "2" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://0c5d7da6-2c2b-4733-98e0-02765f9b018d:8001/ -< Location: http://0c5d7da6-2c2b-4733-98e0-02765f9b018d:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere +< Location: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere { - "string": "2" + "foo": { + "b\u00e1r": 1 + } } -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.failskip_skip_me.test_request -gabbi.tests.test_intercept.failskip_skip_me.test_request ... skipped "Skipping for now because we can't do it" -#### get simple page #### -> GET http://6f6fb3bd-54a0-460e-b2bf-227df67693fa: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://6f6fb3bd-54a0-460e-b2bf-227df67693fa:8001/ - -{} - #### json encoded value from disk #### -> POST http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ +> POST http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6495,8 +6210,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ -< Location: http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ +< X-Gabbi-url: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere +< Location: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere { "foo": { @@ -6504,8 +6219,8 @@ } } -#### json parital from disk #### -> POST http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ +#### yaml parital from disk #### +> POST http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6517,16 +6232,16 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ -< Location: http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ +< X-Gabbi-url: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere +< Location: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere { "type": "cat", "sound": "meow" } -#### json partial both sides #### -> POST http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ +#### yaml partial both sides #### +> POST http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6544,8 +6259,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ -< Location: http://b38b53a2-7d67-49bd-a80e-8d15b915d3da:8001/ +< X-Gabbi-url: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere +< Location: http://9247df7e-61c3-493a-a1aa-1dc1fac4db6b:8001/somewhere [ { @@ -6558,8 +6273,12 @@ } ] +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.casting_send_casted_json.test_request +gabbi.tests.test_intercept.casting_send_casted_json.test_request ... ok #### default casts #### -> POST http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +> POST http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6575,8 +6294,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ -< Location: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +< X-Gabbi-url: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ +< Location: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ { "int": 1, @@ -6587,7 +6306,7 @@ } #### cast to string #### -> POST http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +> POST http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6599,15 +6318,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ -< Location: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +< X-Gabbi-url: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ +< Location: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ { "string": "2" } #### json set up #### -> POST http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +> POST http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6623,8 +6342,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ -< Location: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +< X-Gabbi-url: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ +< Location: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ { "int": 1, @@ -6635,7 +6354,7 @@ } #### send casted json #### -> POST http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +> POST http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6647,15 +6366,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ -< Location: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +< X-Gabbi-url: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ +< Location: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ { "casted": 2 } #### historic casted json #### -> POST http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +> POST http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6667,127 +6386,208 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ -< Location: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +< X-Gabbi-url: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ +< Location: http://d1c8b0f1-4da8-4e20-95b2-fbd0591c9115:8001/ { "casted": 2 } -#### internal json fine #### -> POST http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +#### get simple page #### +> GET http://4c6c74eb-797b-48c3-b709-41dacc45b018: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://4c6c74eb-797b-48c3-b709-41dacc45b018:8001/ + +{} + +#### yaml encoded value from disk #### +> POST http://564a5074-8154-47c6-b526-b8f1380a2146:8001/somewhere > content-type: application/json -> accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "casted": "in this 2 is not errors" + "foo": { + "b\u00e1r": 1 + } } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ -< Location: http://4f99bfc2-f000-4efc-8c8f-316dc23750fd:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://564a5074-8154-47c6-b526-b8f1380a2146:8001/somewhere +< Location: http://564a5074-8154-47c6-b526-b8f1380a2146:8001/somewhere { - "casted": "in this 2 is not errors" + "foo": { + "b\u00e1r": 1 + } } -/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method - warnings.warn("TestResult has no addDuration method", -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files -gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... 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_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://f109c0b7-494e-4a3a-9264-897fba11c9a3:8001/ -> x-random-header: ya +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.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.data_load_json_file.test_request +gabbi.tests.test_intercept.data_load_json_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_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.queryparams_replacers_in_params.test_request +gabbi.tests.test_intercept.queryparams_replacers_in_params.test_request ... ok +gabbi.tests.test_intercept.queryparams_unicode.test_request +gabbi.tests.test_intercept.queryparams_unicode.test_request ... ok +gabbi.tests.test_intercept.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_add_some_query_params.test_request +gabbi.tests.test_intercept.last-url_add_some_query_params.test_request ... ok +gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request +gabbi.tests.test_intercept.self_get_historical_location_from_headers.test_request ... ok +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... expected failure +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request +gabbi.tests.test_intercept.cookie_confirm_no_cookies_causes_error.test_request ... ok +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers +gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok +gabbi.tests.test_intercept.self_confirm_environ.test_request +gabbi.tests.test_intercept.self_confirm_environ.test_request ... ok +#### post data #### +> POST http://5b17cf41-b179-447f-aa23-1f018b0ddb27: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: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://f109c0b7-494e-4a3a-9264-897fba11c9a3:8001/ +< X-Gabbi-url: http://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ +< Location: http://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ -{} +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} -gabbi.tests.test_intercept.coerce_post_extra_data.test_request -gabbi.tests.test_intercept.coerce_post_extra_data.test_request ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key -gabbi.tests.test_suitemaker.SuiteMakerTest.test_dict_on_invalid_key ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required -gabbi.tests.test_suitemaker.SuiteMakerTest.test_inner_list_required ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error -gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_duplication_format_error ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error -gabbi.tests.test_suitemaker.SuiteMakerTest.test_method_url_pair_format_error ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required -gabbi.tests.test_suitemaker.SuiteMakerTest.test_name_key_required ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first -gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_first ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last -gabbi.tests.test_suitemaker.SuiteMakerTest.test_response_handlers_same_test_key_yaml_last ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required -gabbi.tests.test_suitemaker.SuiteMakerTest.test_tests_key_required ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors -gabbi.tests.test_suitemaker.SuiteMakerTest.test_unsupported_key_errors ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required -gabbi.tests.test_suitemaker.SuiteMakerTest.test_upper_dict_required ... ok -gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required -gabbi.tests.test_suitemaker.SuiteMakerTest.test_url_key_required ... ok -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_default_true ... ok -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_false ... ok -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true -gabbi.tests.test_use_prior_test.UsePriorTest.test_use_prior_true ... ok -gabbi.tests.test_intercept.coerce_check_posted_data.test_request -gabbi.tests.test_intercept.coerce_check_posted_data.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_replacers.TestReplaceHeaders.test_empty_headers -gabbi.tests.test_replacers.TestReplaceHeaders.test_empty_headers ... ok -#### get simple page #### -> GET http://b2293005-64a5-424d-aa88-225c2e46d90c:8001/ -> x-random-header: ya +#### use data #### +> POST http://5b17cf41-b179-447f-aa23-1f018b0ddb27: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: GET +< X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://b2293005-64a5-424d-aa88-225c2e46d90c:8001/ +< X-Gabbi-url: http://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ +< Location: http://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ -{} +{ + "one_string": "1", + "one_int": 1, + "one_float": 1.1 +} + +#### from environ #### +> POST http://5b17cf41-b179-447f-aa23-1f018b0ddb27: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://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ +< Location: http://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ + +{ + "one_environ": 1 +} + +#### with list #### +> POST http://5b17cf41-b179-447f-aa23-1f018b0ddb27: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://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ +< Location: http://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ + +[ + 1, + 2, + "3" +] + +#### object with list #### +> POST http://5b17cf41-b179-447f-aa23-1f018b0ddb27: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://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ +< Location: http://5b17cf41-b179-447f-aa23-1f018b0ddb27:8001/ + +{ + "collection": [ + { + "alpha": 1, + "beta": "max" + }, + { + "alpha": 2, + "beta": "climb" + } + ] +} #### left side json one #### -> POST http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ +> POST http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6799,8 +6599,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ -< Location: http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ +< X-Gabbi-url: http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ +< Location: http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ { "alpha": "alpha1", @@ -6808,7 +6608,7 @@ } #### expand left side #### -> POST http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ +> POST http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6820,8 +6620,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ -< Location: http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ +< X-Gabbi-url: http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ +< Location: http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ { "alpha1": "alpha", @@ -6829,7 +6629,7 @@ } #### expand environ left side #### -> POST http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ +> POST http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6842,8 +6642,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ -< Location: http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/ +< X-Gabbi-url: http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ +< Location: http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/ { "alpha1": "alpha", @@ -6852,7 +6652,20 @@ } #### set key and value #### -> GET http://7e5d531c-5fb6-4490-838f-e2d53ab8e23e:8001/jsonator?key=1&value=10 +> GET http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/jsonator?key=1&value=10 +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK +< Content-Type: application/json + +{ + "1": "10" +} + +#### check key and value #### +> GET http://9f4c7393-99e7-49fd-9c85-a4499e28eca4:8001/jsonator?key=1&value=10 > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6864,8 +6677,139 @@ "1": "10" } +#### json encoded value from disk #### +> POST http://bf08c2b0-9cf3-4e66-85d4-6243b834922c: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://bf08c2b0-9cf3-4e66-85d4-6243b834922c:8001/ +< Location: http://bf08c2b0-9cf3-4e66-85d4-6243b834922c:8001/ + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json parital from disk #### +> POST http://bf08c2b0-9cf3-4e66-85d4-6243b834922c: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://bf08c2b0-9cf3-4e66-85d4-6243b834922c:8001/ +< Location: http://bf08c2b0-9cf3-4e66-85d4-6243b834922c:8001/ + +{ + "type": "cat", + "sound": "meow" +} + +#### get simple page #### +> GET http://e836fce9-2796-427c-9504-eab9e88b3d04: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://e836fce9-2796-427c-9504-eab9e88b3d04:8001/ + +{} + +gabbi.tests.test_intercept.self_json_derived_content_type.test_request +gabbi.tests.test_intercept.self_json_derived_content_type.test_request ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler +gabbi.tests.test_runner.RunnerTest.test_custom_response_handler ... 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 +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_exit_code +gabbi.tests.test_runner.RunnerTest.test_exit_code ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_input_files +gabbi.tests.test_runner.RunnerTest.test_input_files ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet +gabbi.tests.test_runner.RunnerTest.test_quiet_is_quiet ... ok +gabbi.tests.test_intercept.poll_create_a_thing.test_request +gabbi.tests.test_intercept.poll_create_a_thing.test_request ... ok +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_not_there_basic.test_request ... ok +gabbi.tests.test_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 +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir +gabbi.tests.test_runner.RunnerTest.test_stdin_data_dir ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port +gabbi.tests.test_runner.RunnerTest.test_target_url_parsing_standard_port ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml +gabbi.tests.test_runner.RunnerTest.test_unsafe_yaml ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting +gabbi.tests.test_runner.RunnerTest.test_verbose_output_formatting ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_all ... ok +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request +gabbi.tests.test_intercept.coerce_string_internal_replace.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_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", #### post data #### -> POST http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +> POST http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6878,8 +6822,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ -< Location: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +< X-Gabbi-url: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ +< Location: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ { "one_string": "1", @@ -6888,7 +6832,7 @@ } #### use data #### -> POST http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +> POST http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6901,8 +6845,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ -< Location: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +< X-Gabbi-url: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ +< Location: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ { "one_string": "1", @@ -6911,7 +6855,7 @@ } #### from environ #### -> POST http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +> POST http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6922,15 +6866,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ -< Location: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +< X-Gabbi-url: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ +< Location: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ { "one_environ": 1 } #### with list #### -> POST http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +> POST http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6943,8 +6887,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ -< Location: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +< X-Gabbi-url: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ +< Location: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ [ 1, @@ -6953,7 +6897,7 @@ ] #### object with list #### -> POST http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +> POST http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -6973,8 +6917,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ -< Location: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +< X-Gabbi-url: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ +< Location: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ { "collection": [ @@ -6990,7 +6934,7 @@ } #### post extra data #### -> POST http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +> POST http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7019,8 +6963,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ -< Location: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +< X-Gabbi-url: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ +< Location: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ { "a": 1, @@ -7045,7 +6989,7 @@ } #### check posted data #### -> POST http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +> POST http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7074,8 +7018,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ -< Location: http://59c3115e-8e9b-4b22-9987-e4544006ff32:8001/ +< X-Gabbi-url: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ +< Location: http://d246d5be-bd0c-494f-a507-428ddbfa8125:8001/ { "a": 1, @@ -7099,67 +7043,56 @@ } } -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://f3653680-f068-4e15-92f9-4544039618e9: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://f3653680-f068-4e15-92f9-4544039618e9:8001/ - -{} - -#### json encoded value from disk #### -> POST http://3e002585-7393-47e8-b12d-2261fa3de76d:8001/ +#### default casts #### +> POST http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d: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://3e002585-7393-47e8-b12d-2261fa3de76d:8001/ -< Location: http://3e002585-7393-47e8-b12d-2261fa3de76d:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ +< Location: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ { - "foo": { - "b\u00e1r": 1 - } + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false } -#### json parital from disk #### -> POST http://3e002585-7393-47e8-b12d-2261fa3de76d:8001/ +#### cast to string #### +> POST http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d: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://3e002585-7393-47e8-b12d-2261fa3de76d:8001/ -< Location: http://3e002585-7393-47e8-b12d-2261fa3de76d:8001/ +< Content-Type: application/json +< X-Gabbi-url: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ +< Location: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ { - "type": "cat", - "sound": "meow" + "string": "2" } -#### default casts #### -> POST http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ +#### json set up #### +> POST http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7167,7 +7100,7 @@ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } @@ -7175,67 +7108,210 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ -< Location: http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ +< X-Gabbi-url: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ +< Location: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ { "int": 1, "float": 1.5, - "string": 2, + "string": "2", "tbool": true, "fbool": false } -#### cast to string #### -> POST http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ +#### send casted json #### +> POST http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d: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://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ -< Location: http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ +< X-Gabbi-url: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ +< Location: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ { - "string": "2" + "casted": 2 } -#### json set up #### -> POST http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ +#### historic casted json #### +> POST http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ > content-type: application/json > accept: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "casted": 2 } < 200 OK < X-Gabbi-method: POST < Content-Type: application/json -< X-Gabbi-url: http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ -< Location: http://34e234b4-05a2-43a8-90ff-c2420b68de04:8001/ +< X-Gabbi-url: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ +< Location: http://e3252e7e-fa4a-44e4-b8d3-4b0c65a4a09d:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "casted": 2 +} + +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_headers ... ok +/usr/lib/python3.12/unittest/case.py:580: RuntimeWarning: TestResult has no addDuration method + warnings.warn("TestResult has no addDuration method", +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none +gabbi.tests.test_runner.RunnerTest.test_verbosity_arg_none ... ok +#### left side json one #### +> POST http://3d5ad01b-54db-497a-8596-1270bad7dd3f: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://3d5ad01b-54db-497a-8596-1270bad7dd3f:8001/ +< Location: http://3d5ad01b-54db-497a-8596-1270bad7dd3f:8001/ + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +#### expand left side #### +> POST http://3d5ad01b-54db-497a-8596-1270bad7dd3f: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://3d5ad01b-54db-497a-8596-1270bad7dd3f:8001/ +< Location: http://3d5ad01b-54db-497a-8596-1270bad7dd3f:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta" +} + +#### expand environ left side #### +> POST http://3d5ad01b-54db-497a-8596-1270bad7dd3f:8001/ +> content-type: application/json +> user-agent: gabbi/3.0.0 (Python urllib3) + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + +< 200 OK +< X-Gabbi-method: POST +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://3d5ad01b-54db-497a-8596-1270bad7dd3f:8001/ +< Location: http://3d5ad01b-54db-497a-8596-1270bad7dd3f:8001/ + +{ + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" +} + +#### loop location #### +> GET http://16c0f6af-d407-456f-8481-b5c5496afb99: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://16c0f6af-d407-456f-8481-b5c5496afb99: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://16c0f6af-d407-456f-8481-b5c5496afb99: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://16c0f6af-d407-456f-8481-b5c5496afb99: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://8f11acd6-adee-4264-8af7-a05a74b43de6: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://8f11acd6-adee-4264-8af7-a05a74b43de6:8001/ + +{} + +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.jsonbody_test_empty_list.test_request +gabbi.tests.test_intercept.jsonbody_test_empty_list.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.json-left-side_set_key_and_value.test_request +gabbi.tests.test_intercept.json-left-side_set_key_and_value.test_request ... ok +gabbi.tests.test_intercept.self_get_ssl_page.test_request +gabbi.tests.test_intercept.self_get_ssl_page.test_request ... ok +gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request +gabbi.tests.test_intercept.cookie_use_that_cookie_in_a_url.test_request ... ok +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request +gabbi.tests.test_intercept.cookie_use_a_historical_cookie.test_request ... ok +gabbi.tests.test_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_json.test_request +gabbi.tests.test_intercept.regex_regex_string_test_json.test_request ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match +gabbi.tests.test_jsonpath.JSONPathTest.test_basic_match ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_embedded_list_handling ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list +gabbi.tests.test_jsonpath.JSONPathTest.test_filtered_list ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_object_list ... ok #### post data #### -> POST http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7248,8 +7324,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ -< Location: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { "one_string": "1", @@ -7258,7 +7334,7 @@ } #### use data #### -> POST http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7271,8 +7347,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ -< Location: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { "one_string": "1", @@ -7281,7 +7357,7 @@ } #### from environ #### -> POST http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7292,15 +7368,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ -< Location: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { "one_environ": 1 } #### with list #### -> POST http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7313,8 +7389,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ -< Location: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ [ 1, @@ -7323,7 +7399,7 @@ ] #### object with list #### -> POST http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7343,8 +7419,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ -< Location: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { "collection": [ @@ -7360,7 +7436,7 @@ } #### post extra data #### -> POST http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7389,8 +7465,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ -< Location: http://475479f3-93d7-4e0f-95c3-29c29078b904:8001/ +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { "a": 1, @@ -7414,245 +7490,327 @@ } } -#### yaml encoded value from disk #### -> POST http://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere +#### check posted data #### +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb: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://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere -< Location: http://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { - "foo": { - "b\u00e1r": 1 + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } } } -#### json encoded value from disk #### -> POST http://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere +#### Post again and check the results #### +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb: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://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere -< Location: http://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { - "foo": { - "b\u00e1r": 1 + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } } } -#### yaml parital from disk #### -> POST http://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere +#### Post again and check the results (reversed) #### +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) { - "type": "cat", - "sound": "meow" + "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://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere -< Location: http://da994af5-422a-449f-a8f7-4728bc4d4790:8001/somewhere - -{ - "type": "cat", - "sound": "meow" -} - -#### loop location #### -> GET http://7cd2faf1-ea7e-4b75-839f-a8498eba3e4a: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://7cd2faf1-ea7e-4b75-839f-a8498eba3e4a: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://7cd2faf1-ea7e-4b75-839f-a8498eba3e4a: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://7cd2faf1-ea7e-4b75-839f-a8498eba3e4a:8001/poller?count=2&x=1&y=2&z=3.4 +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { - "count": [ - "2" - ], - "x": [ - "1" - ], - "y": [ - "2" - ], - "z": [ - "3.4" - ] + "a": 1, + "b": 1.0, + "c": "[1,2,3]", + "d": true, + "e": false, + "f": { + "key": "val" + }, + "g": null, + "h": { + "key": { + "less_key": [ + 1, + true, + null + ], + "more_key": 1 + } + } } -#### get simple page #### -> GET http://837e677e-920c-4b4a-aec4-5c2e05d9c1aa: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://837e677e-920c-4b4a-aec4-5c2e05d9c1aa:8001/ - -{} - -#### default casts #### -> POST http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +#### string internal replace #### +> POST http://504de4ea-625e-44c4-9159-6e766a201bdb: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 + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" } < 200 OK < X-Gabbi-method: POST -< Content-Type: application/json -< X-Gabbi-url: http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ -< Location: http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ +< Location: http://504de4ea-625e-44c4-9159-6e766a201bdb:8001/ { - "int": 1, - "float": 1.5, - "string": 2, - "tbool": true, - "fbool": false + "endpoint_resp": "/api/0.1/item/1", + "endpoint_var": "/api/0.1/item/1" } -#### cast to string #### -> POST http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +#### left side json one #### +> POST http://85ece890-4dc8-45b3-b745-b065010c42db: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://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ -< Location: http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://85ece890-4dc8-45b3-b745-b065010c42db:8001/ +< Location: http://85ece890-4dc8-45b3-b745-b065010c42db:8001/ { - "string": "2" + "alpha": "alpha1", + "beta": "beta1" } -#### json set up #### -> POST http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +#### expand left side #### +> POST http://85ece890-4dc8-45b3-b745-b065010c42db: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://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ -< Location: http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://85ece890-4dc8-45b3-b745-b065010c42db:8001/ +< Location: http://85ece890-4dc8-45b3-b745-b065010c42db:8001/ { - "int": 1, - "float": 1.5, - "string": "2", - "tbool": true, - "fbool": false + "alpha1": "alpha", + "beta1": "beta" } -#### send casted json #### -> POST http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +#### expand environ left side #### +> POST http://85ece890-4dc8-45b3-b745-b065010c42db: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://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ -< Location: http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +< Content-Type: application/json ; charset=utf-8 ; stop=no +< X-Gabbi-url: http://85ece890-4dc8-45b3-b745-b065010c42db:8001/ +< Location: http://85ece890-4dc8-45b3-b745-b065010c42db:8001/ { - "casted": 2 + "alpha1": "alpha", + "beta1": "beta", + "1": "cow" } -#### historic casted json #### -> POST http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ +#### set key and value #### +> GET http://85ece890-4dc8-45b3-b745-b065010c42db: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://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ -< Location: http://e903bf95-79d8-499c-818d-23b6a7f81e69:8001/ { - "casted": 2 + "1": "10" } +#### default casts #### +> POST http://db6d3ce4-cb8c-4999-a5a8-f2c9c55491a0:8001/gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_len_simple_list ... 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_jsonpath.JSONPathTest.test_list_handling +gabbi.tests.test_jsonpath.JSONPathTest.test_list_handling ... ok +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_object_list ... ok +gabbi.tests.test_intercept.casting_default_casts.test_request +gabbi.tests.test_intercept.casting_default_casts.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_jsonpath.JSONPathTest.test_sorted_simple_list +gabbi.tests.test_jsonpath.JSONPathTest.test_sorted_simple_list ... ok +gabbi.tests.test_intercept.host-header_ssl_with_host.test_request +gabbi.tests.test_intercept.host-header_ssl_with_host.test_request ... ok +gabbi.tests.test_intercept.self_bogus_method.test_request +gabbi.tests.test_intercept.self_bogus_method.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_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_syntax_warning.DriverTest.test_driver_warnings_on_files +gabbi.tests.test_syntax_warning.DriverTest.test_driver_warnings_on_files ... 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.method-shortcut_post_with_query.test_request +gabbi.tests.test_intercept.method-shortcut_post_with_query.test_request ... ok #### post data #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7665,8 +7823,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ { "one_string": "1", @@ -7675,7 +7833,7 @@ } #### use data #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7688,8 +7846,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ { "one_string": "1", @@ -7698,7 +7856,7 @@ } #### from environ #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7709,15 +7867,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ { "one_environ": 1 } #### with list #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7730,8 +7888,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ [ 1, @@ -7740,7 +7898,7 @@ ] #### object with list #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7760,8 +7918,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ { "collection": [ @@ -7777,7 +7935,7 @@ } #### post extra data #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7806,8 +7964,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ { "a": 1, @@ -7832,7 +7990,7 @@ } #### check posted data #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7861,8 +8019,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ { "a": 1, @@ -7887,7 +8045,7 @@ } #### Post again and check the results #### -> POST http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +> POST http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7916,17 +8074,105 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614: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_string_internal_replace.test_request -gabbi.tests.test_intercept.coerce_string_internal_replace.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_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 +< X-Gabbi-url: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4:8001/ +< Location: http://d0bb4279-4027-4c4f-947d-8e49734ac0d4: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://a1e011b4-47dd-4567-91f4-3f0f5a625b2f: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://a1e011b4-47dd-4567-91f4-3f0f5a625b2f:8001/ +< Location: http://a1e011b4-47dd-4567-91f4-3f0f5a625b2f:8001/ + +{ + "alpha": "alpha1", + "beta": "beta1" +} + +#### confirm notempty #### +> GET http://d77ef7fa-9c08-48dd-9749-be889e04683a:8001/notempty +> user-agent: gabbi/3.0.0 (Python urllib3) + + +< 200 OK + +notempty + +#### get simple page #### +> GET http://800e4280-a85d-4da8-921c-ac5efce886ae: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://800e4280-a85d-4da8-921c-ac5efce886ae:8001/ + +{} + +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request +gabbi.tests.test_yaml_disk_loading_jsonhandler.yaml-from-disk_yaml_parital_from_disk.test_request ... ok + +> 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://db6d3ce4-cb8c-4999-a5a8-f2c9c55491a0:8001/ +< Location: http://db6d3ce4-cb8c-4999-a5a8-f2c9c55491a0:8001/ + +{ + "int": 1, + "float": 1.5, + "string": 2, + "tbool": true, + "fbool": false +} + #### get simple page #### -> GET http://3e36b40d-6913-414b-ac4d-4656b572ed3b:8001/ +> GET http://d1ebe0d4-124a-4280-b86a-1425b552c489:8001/ > x-random-header: ya > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7934,12 +8180,97 @@ < 200 OK < X-Gabbi-method: GET < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://3e36b40d-6913-414b-ac4d-4656b572ed3b:8001/ +< X-Gabbi-url: http://d1ebe0d4-124a-4280-b86a-1425b552c489:8001/ {} +#### yaml encoded value from disk #### +> POST http://e0001849-ae76-46e8-b6f3-74832bcf9879: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://e0001849-ae76-46e8-b6f3-74832bcf9879:8001/somewhere +< Location: http://e0001849-ae76-46e8-b6f3-74832bcf9879:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### json encoded value from disk #### +> POST http://e0001849-ae76-46e8-b6f3-74832bcf9879: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://e0001849-ae76-46e8-b6f3-74832bcf9879:8001/somewhere +< Location: http://e0001849-ae76-46e8-b6f3-74832bcf9879:8001/somewhere + +{ + "foo": { + "b\u00e1r": 1 + } +} + +#### yaml parital from disk #### +> POST http://e0001849-ae76-46e8-b6f3-74832bcf9879: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://e0001849-ae76-46e8-b6f3-74832bcf9879:8001/somewhere +< Location: http://e0001849-ae76-46e8-b6f3-74832bcf9879:8001/somewhere + +{ + "type": "cat", + "sound": "meow" +} + +gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request +gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request ... ok +gabbi.tests.test_intercept.backref_get_a_historical_response.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_one.test_request +gabbi.tests.test_intercept.fixture_just_to_see_one.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_post_a_body.test_request +gabbi.tests.test_intercept.self_post_a_body.test_request ... ok +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... expected failure +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request +gabbi.tests.test_intercept.forbiddenheaders_header_is_there_fail_case_insensitive.test_request ... ok +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail +gabbi.tests.test_suite.SuiteTest.test_suite_catches_fixture_fail ... ok #### post data #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7952,8 +8283,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "one_string": "1", @@ -7962,7 +8293,7 @@ } #### use data #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7975,8 +8306,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "one_string": "1", @@ -7985,7 +8316,7 @@ } #### from environ #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -7996,15 +8327,15 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "one_environ": 1 } #### with list #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8017,8 +8348,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ [ 1, @@ -8027,7 +8358,7 @@ ] #### object with list #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8047,8 +8378,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "collection": [ @@ -8064,7 +8395,7 @@ } #### post extra data #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8093,8 +8424,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "a": 1, @@ -8119,7 +8450,7 @@ } #### check posted data #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8148,8 +8479,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "a": 1, @@ -8174,7 +8505,7 @@ } #### Post again and check the results #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8203,8 +8534,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "a": 1, @@ -8229,7 +8560,7 @@ } #### Post again and check the results (reversed) #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +> POST http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ > content-type: application/json > user-agent: gabbi/3.0.0 (Python urllib3) @@ -8258,8 +8589,8 @@ < 200 OK < X-Gabbi-method: POST < Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ +< X-Gabbi-url: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ +< Location: http://fdc80299-44d7-459e-8075-71c8f50110d8:8001/ { "a": 1, @@ -8283,274 +8614,37 @@ } } -#### string internal replace #### -> POST http://2e1a7be9-517c-4e4a-8a94-23f5bebac767: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://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ -< Location: http://2e1a7be9-517c-4e4a-8a94-23f5bebac767:8001/ - -{ - "endpoint_resp": "/api/0.1/item/1", - "endpoint_var": "/api/0.1/item/1" -} - -#### yaml encoded value from disk #### -> POST http://d6278ca7-eac6-40f7-9d34-74011798af4b: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://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere -< Location: http://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### json encoded value from disk #### -> POST http://d6278ca7-eac6-40f7-9d34-74011798af4b: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://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere -< Location: http://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere - -{ - "foo": { - "b\u00e1r": 1 - } -} - -#### yaml parital from disk #### -> POST http://d6278ca7-eac6-40f7-9d34-74011798af4b: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://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere -< Location: http://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewheregabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request ... ok -gabbi.tests.test_intercept.queryparams_joined_params.test_request -gabbi.tests.test_intercept.queryparams_joined_params.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 - - -{ - "type": "cat", - "sound": "meow" -} - -#### yaml partial both sides #### -> POST http://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere -> content-type: application/json -> user-agent: gabbi/3.0.0 (Python urllib3) - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -< 200 OK -< X-Gabbi-method: POST -< Content-Type: application/json ; charset=utf-8 ; stop=no -< X-Gabbi-url: http://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere -< Location: http://d6278ca7-eac6-40f7-9d34-74011798af4b:8001/somewhere - -[ - { - "type": "cat", - "sound": "meow" - }, - { - "type": "dog", - "sound": "woof" - } -] - -gabbi.tests.test_intercept.data_load_data_dictionary.test_request -gabbi.tests.test_intercept.data_load_data_dictionary.test_request ... ok -gabbi.tests.test_utils.BinaryTypesTest.test_binary -gabbi.tests.test_utils.BinaryTypesTest.test_binary ... ok -gabbi.tests.test_utils.BinaryTypesTest.test_not_binary -gabbi.tests.test_utils.BinaryTypesTest.test_not_binary ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_already_bracket ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_full ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port -gabbi.tests.test_utils.CreateURLTest.test_create_url_ipv6_ssl_weird_port ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon -gabbi.tests.test_utils.CreateURLTest.test_create_url_no_double_colon ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 -gabbi.tests.test_utils.CreateURLTest.test_create_url_not_ssl_on_443 ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_port -gabbi.tests.test_utils.CreateURLTest.test_create_url_port ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_port_and_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix -gabbi.tests.test_utils.CreateURLTest.test_create_url_prefix ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query -gabbi.tests.test_utils.CreateURLTest.test_create_url_preserve_query ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_simple -gabbi.tests.test_utils.CreateURLTest.test_create_url_simple ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl ... ok -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 -gabbi.tests.test_utils.CreateURLTest.test_create_url_ssl_on_80 ... ok -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 - - -{ - "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://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -> content-type: application/json +#### get simple page #### +> GET http://2bd88d80-0f8a-4831-9106-126fe5411823: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://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ -< Location: http://ceb318e1-b8e3-4a96-985f-5a9441757614:8001/ +< X-Gabbi-url: http://2bd88d80-0f8a-4831-9106-126fe5411823: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 3.835s +Ran 314 tests in 6.802s OK (skipped=2, expected failures=15) + stestr slowest -Test id Runtime (s) ------------------------------------------------------------------------------------ ----------- -gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 0.905 -gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 0.633 -gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.472 -gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.410 -gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.409 -gabbi.tests.test_intercept.backref_backref_json_fail_start.test_request 0.406 -gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.342 -gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.289 -gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 0.271 -gabbi.tests.test_intercept.poll_loop_location.test_request 0.239 +Test id Runtime (s) +------------------------------------------------------------------------------------------ ----------- +gabbi.tests.test_intercept.coerce_string_internal_replace.test_request 1.192 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results.test_request 1.045 +gabbi.tests.test_intercept.coerce_post_again_and_check_the_results_(reversed).test_request 0.909 +gabbi.tests.test_intercept.coerce_check_posted_data.test_request 0.786 +gabbi.tests.test_driver.DriverTest.test_build_require_ssl 0.524 +gabbi.tests.test_intercept.backref_post_a_raw_int_as_json.test_request 0.494 +gabbi.tests.test_intercept.coerce_post_extra_data.test_request 0.463 +gabbi.tests.test_intercept.backref_post_even_more_json_quote_different.test_request 0.455 +gabbi.tests.test_intercept.backref_repost_that_raw_int.test_request 0.444 +gabbi.tests.test_intercept.backref_use_raw_json_from_response.test_request 0.401 + rm -rf .stestr make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_install -O--buildsystem=pybuild @@ -8595,8 +8689,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/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/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/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/nature.css copying static files: done @@ -8655,14 +8749,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 \ @@ -8671,7 +8765,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' @@ -8686,14 +8780,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 \ @@ -8702,7 +8796,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' @@ -8726,8 +8820,8 @@ make[1]: Leaving directory '/build/reproducible-path/python-gabbi-3.0.0' dh_md5sums -O--buildsystem=pybuild dh_builddeb -O--buildsystem=pybuild -dpkg-deb: building package 'python3-gabbi' in '../python3-gabbi_3.0.0-3_all.deb'. dpkg-deb: building package 'python-gabbi-doc' in '../python-gabbi-doc_3.0.0-3_all.deb'. +dpkg-deb: building package 'python3-gabbi' in '../python3-gabbi_3.0.0-3_all.deb'. dpkg-genbuildinfo --build=binary -O../python-gabbi_3.0.0-3_amd64.buildinfo dpkg-genchanges --build=binary -O../python-gabbi_3.0.0-3_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -8736,12 +8830,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/1788800/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1788800/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/3284512 and its subdirectories -I: Current time: Mon Jan 20 10:56:11 -12 2025 -I: pbuilder-time-stamp: 1737413771 +I: removing directory /srv/workspace/pbuilder/1788800 and its subdirectories +I: Current time: Mon Feb 23 19:21:32 +14 2026 +I: pbuilder-time-stamp: 1771824092