<86>Apr 27 10:41:11 userdel[402312]: delete user 'rooter' <86>Apr 27 10:41:11 userdel[402312]: removed group 'rooter' owned by 'rooter' <86>Apr 27 10:41:11 userdel[402312]: removed shadow group 'rooter' owned by 'rooter' <86>Apr 27 10:41:11 groupadd[402326]: group added to /etc/group: name=rooter, GID=1247 <86>Apr 27 10:41:11 groupadd[402326]: group added to /etc/gshadow: name=rooter <86>Apr 27 10:41:11 groupadd[402326]: new group: name=rooter, GID=1247 <86>Apr 27 10:41:11 useradd[402340]: new user: name=rooter, UID=1247, GID=1247, home=/root, shell=/bin/bash, from=none <86>Apr 27 10:41:11 userdel[402366]: delete user 'builder' <86>Apr 27 10:41:11 userdel[402366]: removed group 'builder' owned by 'builder' <86>Apr 27 10:41:11 userdel[402366]: removed shadow group 'builder' owned by 'builder' <86>Apr 27 10:41:11 groupadd[402383]: group added to /etc/group: name=builder, GID=1248 <86>Apr 27 10:41:11 groupadd[402383]: group added to /etc/gshadow: name=builder <86>Apr 27 10:41:11 groupadd[402383]: new group: name=builder, GID=1248 <86>Apr 27 10:41:11 useradd[402398]: new user: name=builder, UID=1248, GID=1248, home=/usr/src, shell=/bin/bash, from=none <13>Apr 27 10:41:15 rpmi: libmpdec3-2.5.1-alt3 sisyphus+314490.500.5.1 1675432033 installed <13>Apr 27 10:41:15 rpmi: libgdbm-1.8.3-alt10 sisyphus+278100.1600.1.1 1626059138 installed <13>Apr 27 10:41:15 rpmi: libexpat-2.5.0-alt1 sisyphus+309227.100.1.1 1667075766 installed <13>Apr 27 10:41:15 rpmi: libb2-0.98.1-alt1_1 sisyphus+291614.100.1.1 1638962878 installed <13>Apr 27 10:41:15 rpmi: libp11-kit-1:0.25.3-alt2 sisyphus+336533.100.1.1 1702645575 installed <13>Apr 27 10:41:15 rpmi: libtasn1-4.19.0-alt3 sisyphus+327816.100.1.1 1692802618 installed <13>Apr 27 10:41:15 rpmi: rpm-macros-alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Apr 27 10:41:15 rpmi: alternatives-0.5.2-alt2 sisyphus+315270.200.2.1 1676457367 installed <13>Apr 27 10:41:15 rpmi: ca-certificates-2024.02.24-alt1 sisyphus+341362.100.1.1 1708791001 installed <13>Apr 27 10:41:15 rpmi: ca-trust-0.2.0-alt1 sisyphus+344843.100.1.1 1712743326 installed <13>Apr 27 10:41:15 rpmi: p11-kit-trust-1:0.25.3-alt2 sisyphus+336533.100.1.1 1702645575 installed <13>Apr 27 10:41:15 rpmi: libcrypto3-3.1.5-alt2 sisyphus+343320.140.3.1 1711982452 installed <13>Apr 27 10:41:16 rpmi: libssl3-3.1.5-alt2 sisyphus+343320.140.3.1 1711982452 installed <13>Apr 27 10:41:16 rpmi: python3-3.12.2-alt1 sisyphus+341702.200.1.1 1709232959 installed <13>Apr 27 10:41:17 rpmi: python3-base-3.12.2-alt1 sisyphus+341702.200.1.1 1709232959 installed <13>Apr 27 10:41:17 rpmi: python3-module-py3dephell-0.1.0-alt2 sisyphus+328191.600.5.1 1693609196 installed <13>Apr 27 10:41:17 rpmi: python3-module-pyproject-installer-0.5.3-alt1 sisyphus+344989.100.3.1 1713974805 installed <13>Apr 27 10:41:17 rpmi: rpm-macros-pyproject-0.0.5-alt1 sisyphus+344989.500.3.1 1713974843 installed <13>Apr 27 10:41:17 rpmi: tests-for-installed-python3-pkgs-0.1.25-alt1 sisyphus+344685.100.1.1 1712595070 installed <13>Apr 27 10:41:17 rpmi: rpm-build-python3-0.1.25-alt1 sisyphus+344685.100.1.1 1712595070 installed <13>Apr 27 10:41:17 rpmi: rpm-build-pyproject-0.0.5-alt1 sisyphus+344989.500.3.1 1713974843 installed <13>Apr 27 10:41:20 rpmi: python3-module-pluggy-1.5.0-alt1 sisyphus+345632.100.2.1 1713864244 installed <13>Apr 27 10:41:20 rpmi: python3-module-pkg_resources-1:69.5.1-alt1 sisyphus+345209.100.2.1 1713349328 installed <13>Apr 27 10:41:20 rpmi: python3-module-packaging-24.0-alt1 sisyphus+342487.100.2.1 1710407438 installed <13>Apr 27 10:41:20 rpmi: python3-module-iniconfig-2.0.0-alt1 sisyphus+314076.200.3.1 1674737275 installed <13>Apr 27 10:41:20 rpmi: libpython3-3.12.2-alt1 sisyphus+341702.200.1.1 1709232959 installed <13>Apr 27 10:41:20 rpmi: libncurses6-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486782 installed <13>Apr 27 10:41:20 rpmi: libtinfo-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486782 installed <13>Apr 27 10:41:20 rpmi: libncurses-devel-6.3.20220618-alt4 sisyphus+327286.4600.14.1 1711486782 installed <13>Apr 27 10:41:22 rpmi: python3-dev-3.12.2-alt1 sisyphus+341702.200.1.1 1709232959 installed <13>Apr 27 10:41:22 rpmi: python3-module-setuptools-1:69.5.1-alt1 sisyphus+345209.100.2.1 1713349328 installed <13>Apr 27 10:41:22 rpmi: python3-module-pytest-8.0.2-alt1 sisyphus+341429.100.2.1 1709025013 installed <13>Apr 27 10:41:22 rpmi: python3-module-wheel-0.43.0-alt1 sisyphus+342546.200.3.1 1710867409 installed Building target platforms: i586 Building for target i586 Wrote: /usr/src/in/nosrpm/python3-module-fastjsonschema-2.18.1-alt1.1.nosrc.rpm (w1.gzdio) Installing python3-module-fastjsonschema-2.18.1-alt1.1.src.rpm Building target platforms: i586 Building for target i586 Executing(%prep): /bin/sh -e /usr/src/tmp/rpm-tmp.2850 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + rm -rf python3-module-fastjsonschema-2.18.1 + echo 'Source #0 (python3-module-fastjsonschema-2.18.1.tar):' Source #0 (python3-module-fastjsonschema-2.18.1.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-fastjsonschema-2.18.1.tar + cd python3-module-fastjsonschema-2.18.1 + echo 'Source #1 (python3-module-fastjsonschema-2.18.1-JSON-Schema-Test-Suite.tar):' Source #1 (python3-module-fastjsonschema-2.18.1-JSON-Schema-Test-Suite.tar): + /bin/tar -xf /usr/src/RPM/SOURCES/python3-module-fastjsonschema-2.18.1-JSON-Schema-Test-Suite.tar + /bin/chmod -c -Rf u+rwX,go-w . + echo 'Patch #0 (python3-module-fastjsonschema-2.18.1-alt.patch):' Patch #0 (python3-module-fastjsonschema-2.18.1-alt.patch): + /usr/bin/patch -p1 patching file tests/json_schema/utils.py + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show pep518 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync --verify pep518 INFO : pyproject.toml was not found, using defaults + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show pep517 + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync --verify pep517 INFO : pyproject.toml was not found, using defaults + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show metadata + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync --verify metadata INFO : Building metadata INFO : Building metadata with prepare_metadata_for_build_wheel INFO : Source tree: /usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1 INFO : Output dir: /usr/src/tmp/tmp0xox4ing INFO : pyproject.toml was not found, using defaults + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json show check + /usr/bin/python3 -m pyproject_installer deps --depsconfig /usr/src/RPM/SOURCES/pyproject_deps.json sync --verify check + exit 0 Executing(%build): /bin/sh -e /usr/src/tmp/rpm-tmp.14482 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-fastjsonschema-2.18.1 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + /usr/bin/python3 -m pyproject_installer -v build INFO : pyproject_installer.build_cmd._build : Building wheel INFO : pyproject_installer.build_cmd._build : Source tree: /usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1 INFO : pyproject_installer.build_cmd._build : Output dir: /usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/dist DEBUG : pyproject_installer.lib.build_backend : Validating source path DEBUG : pyproject_installer.lib.build_backend : Checking for PEP517 spec INFO : pyproject_installer.lib.build_backend : pyproject.toml was not found, using defaults INFO : backend_caller.py : Calling hook build_wheel in subprocess INFO : backend_caller.py : Build backend: setuptools.build_meta:__legacy__ INFO : backend_caller.py : Hook args: ['/usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/dist'] INFO : backend_caller.py : Hook kwargs: {'config_settings': None} INFO : root : running bdist_wheel INFO : root : running build INFO : root : running build_py INFO : root : creating build INFO : root : creating build/lib INFO : root : creating build/lib/fastjsonschema INFO : root : copying fastjsonschema/version.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/ref_resolver.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/indent.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/generator.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/exceptions.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/draft07.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/draft06.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/draft04.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/__main__.py -> build/lib/fastjsonschema INFO : root : copying fastjsonschema/__init__.py -> build/lib/fastjsonschema INFO : wheel : installing to build/bdist.linux-i686/wheel INFO : root : running install INFO : root : running install_lib INFO : root : creating build/bdist.linux-i686 INFO : root : creating build/bdist.linux-i686/wheel INFO : root : creating build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/__init__.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/__main__.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/draft04.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/draft06.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/draft07.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/exceptions.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/generator.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/indent.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/ref_resolver.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : copying build/lib/fastjsonschema/version.py -> build/bdist.linux-i686/wheel/fastjsonschema INFO : root : running install_egg_info INFO : root : running egg_info INFO : root : writing fastjsonschema.egg-info/PKG-INFO INFO : root : writing dependency_links to fastjsonschema.egg-info/dependency_links.txt INFO : root : writing requirements to fastjsonschema.egg-info/requires.txt INFO : root : writing top-level names to fastjsonschema.egg-info/top_level.txt INFO : root : reading manifest file 'fastjsonschema.egg-info/SOURCES.txt' INFO : root : reading manifest template 'MANIFEST.in' WARNING : root : warning: no previously-included files matching '*.pyc' found anywhere in distribution INFO : root : adding license file 'LICENSE' INFO : root : adding license file 'AUTHORS' INFO : root : writing manifest file 'fastjsonschema.egg-info/SOURCES.txt' INFO : root : Copying fastjsonschema.egg-info to build/bdist.linux-i686/wheel/fastjsonschema-2.18.1-py3.12.egg-info INFO : root : running install_scripts INFO : wheel : creating build/bdist.linux-i686/wheel/fastjsonschema-2.18.1.dist-info/WHEEL INFO : wheel : creating '/usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/dist/.tmp-iz_7vnh9/fastjsonschema-2.18.1-py3-none-any.whl' and adding 'build/bdist.linux-i686/wheel' to it INFO : wheel : adding 'fastjsonschema/__init__.py' INFO : wheel : adding 'fastjsonschema/__main__.py' INFO : wheel : adding 'fastjsonschema/draft04.py' INFO : wheel : adding 'fastjsonschema/draft06.py' INFO : wheel : adding 'fastjsonschema/draft07.py' INFO : wheel : adding 'fastjsonschema/exceptions.py' INFO : wheel : adding 'fastjsonschema/generator.py' INFO : wheel : adding 'fastjsonschema/indent.py' INFO : wheel : adding 'fastjsonschema/ref_resolver.py' INFO : wheel : adding 'fastjsonschema/version.py' INFO : wheel : adding 'fastjsonschema-2.18.1.dist-info/AUTHORS' INFO : wheel : adding 'fastjsonschema-2.18.1.dist-info/LICENSE' INFO : wheel : adding 'fastjsonschema-2.18.1.dist-info/METADATA' INFO : wheel : adding 'fastjsonschema-2.18.1.dist-info/WHEEL' INFO : wheel : adding 'fastjsonschema-2.18.1.dist-info/top_level.txt' INFO : wheel : adding 'fastjsonschema-2.18.1.dist-info/RECORD' INFO : wheel : removing build/bdist.linux-i686/wheel INFO : pyproject_installer.build_cmd._build : Built wheel: fastjsonschema-2.18.1-py3-none-any.whl + exit 0 Executing(%install): /bin/sh -e /usr/src/tmp/rpm-tmp.23902 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + /bin/chmod -Rf u+rwX -- /usr/src/tmp/python3-module-fastjsonschema-buildroot + : + /bin/rm -rf -- /usr/src/tmp/python3-module-fastjsonschema-buildroot + PATH=/usr/libexec/rpm-build:/usr/src/bin:/usr/bin:/bin:/usr/local/bin:/usr/games + cd python3-module-fastjsonschema-2.18.1 + /usr/bin/python3 -m pyproject_installer -v install --destdir=/usr/src/tmp/python3-module-fastjsonschema-buildroot INFO : pyproject_installer.install_cmd._install : Installing wheel INFO : pyproject_installer.install_cmd._install : Wheel directory: /usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/dist INFO : pyproject_installer.install_cmd._install : Wheel filename: fastjsonschema-2.18.1-py3-none-any.whl INFO : pyproject_installer.install_cmd._install : Destination: /usr/src/tmp/python3-module-fastjsonschema-buildroot DEBUG : pyproject_installer.lib.wheel : Parsing wheel filename DEBUG : pyproject_installer.lib.wheel : Validating wheel file DEBUG : pyproject_installer.lib.wheel : Validating wheel spec version DEBUG : pyproject_installer.lib.wheel : Parsing wheel spec metadata DEBUG : pyproject_installer.lib.wheel : Validating RECORD INFO : pyproject_installer.install_cmd._install : Wheel installation root: /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages INFO : pyproject_installer.install_cmd._install : Extracting wheel DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: fastjsonschema-2.18.1.dist-info/AUTHORS DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: fastjsonschema-2.18.1.dist-info/LICENSE DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: fastjsonschema-2.18.1.dist-info/WHEEL DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: fastjsonschema-2.18.1.dist-info/top_level.txt DEBUG : pyproject_installer.install_cmd._install : Filtering out not allowed file: fastjsonschema-2.18.1.dist-info/RECORD INFO : pyproject_installer.install_cmd._install : Wheel was installed + /usr/lib/rpm/brp-alt Cleaning files in /usr/src/tmp/python3-module-fastjsonschema-buildroot (auto) Verifying and fixing files in /usr/src/tmp/python3-module-fastjsonschema-buildroot (binconfig,pkgconfig,libtool,desktop,gnuconfig) Checking contents of files in /usr/src/tmp/python3-module-fastjsonschema-buildroot/ (default) Compressing files in /usr/src/tmp/python3-module-fastjsonschema-buildroot (auto) Adjusting library links in /usr/src/tmp/python3-module-fastjsonschema-buildroot ./usr/lib: (from :0) Verifying ELF objects in /usr/src/tmp/python3-module-fastjsonschema-buildroot (arch=normal,fhs=normal,lfs=relaxed,lint=relaxed,rpath=normal,stack=normal,textrel=normal,unresolved=normal) Splitting links to aliased files under /{,s}bin in /usr/src/tmp/python3-module-fastjsonschema-buildroot Bytecompiling python3 modules in /usr/src/tmp/python3-module-fastjsonschema-buildroot using /usr/bin/python3 compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__main__.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft04.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft06.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft07.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/exceptions.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/generator.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/indent.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/ref_resolver.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/version.py Bytecompiling python3 modules with optimization in /usr/src/tmp/python3-module-fastjsonschema-buildroot using /usr/bin/python3 -O compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__main__.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft04.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft06.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft07.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/exceptions.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/generator.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/indent.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/ref_resolver.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/version.py Bytecompiling python3 modules with optimization-2 in /usr/src/tmp/python3-module-fastjsonschema-buildroot using /usr/bin/python3 -OO compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__main__.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft04.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft06.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft07.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/exceptions.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/generator.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/indent.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/ref_resolver.py compile /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/version.py Hardlinking identical .pyc and .opt-?.pyc files './usr/lib/python3/site-packages/fastjsonschema/__pycache__/__init__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/__init__.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/__main__.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/__main__.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/__main__.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/__main__.cpython-312.opt-1.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/draft04.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/draft04.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/draft06.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/draft06.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/draft07.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/draft07.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/exceptions.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/exceptions.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/indent.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/indent.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/ref_resolver.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/ref_resolver.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/version.cpython-312.opt-1.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/version.cpython-312.pyc' './usr/lib/python3/site-packages/fastjsonschema/__pycache__/version.cpython-312.opt-2.pyc' => './usr/lib/python3/site-packages/fastjsonschema/__pycache__/version.cpython-312.opt-1.pyc' Executing(%check): /bin/sh -e /usr/src/tmp/rpm-tmp.23902 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-fastjsonschema-2.18.1 + export 'CFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + CFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'CXXFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + CXXFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export 'FFLAGS=-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + FFLAGS='-pipe -frecord-gcc-switches -Wall -g -O2 -flto=auto -march=i586 -mtune=generic' + export NO_INTERNET=YES + NO_INTERNET=YES + /usr/bin/python3 -m pyproject_installer run -- python3 -m pytest -m 'not benchmark' -vra -W ignore::pytest.PytestRemovedIn8Warning INFO : Creating venv INFO : Installing console scripts INFO : Installing package: /usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/dist/fastjsonschema-2.18.1-py3-none-any.whl INFO : Running command: ['/usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/.run_venv/bin/python3', '-m', 'pyproject_installer', 'install', '/usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/dist/fastjsonschema-2.18.1-py3-none-any.whl'] INFO : Running command: ['python3', '-m', 'pytest', '-m', 'not benchmark', '-vra', '-W', 'ignore::pytest.PytestRemovedIn8Warning'] ============================= test session starts ============================== platform linux -- Python 3.12.2, pytest-8.0.2, pluggy-1.5.0 -- /usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1/.run_venv/bin/python3 cachedir: .pytest_cache rootdir: /usr/src/RPM/BUILD/python3-module-fastjsonschema-2.18.1 collecting ... collected 2081 items / 12 deselected / 2069 selected tests/json_schema/test_draft04.py::test[additionalItems.json / additionalItems as schema / additional items match schema] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / additionalItems as schema / additional items do not match schema] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / items is schema, no additionalItems / all items match schema] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / array of items with no additionalItems / fewer number of items present] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / array of items with no additionalItems / equal number of items present] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / array of items with no additionalItems / additional items are not permitted] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / additionalItems as false without items / items defaults to empty schema so everything is valid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / additionalItems as false without items / ignores non-arrays] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalItems.json / additionalItems are allowed by default / only the first item is validated] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / no additional properties is valid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / an additional property is invalid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores arrays] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores strings] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores other non-objects] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / patternProperties are not additional properties] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / non-ASCII pattern with additionalProperties / matching the pattern is valid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / non-ASCII pattern with additionalProperties / not matching the pattern is invalid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / no additional properties is valid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / an additional valid property is valid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / an additional invalid property is invalid] PASSED [ 0%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties can exist by itself / an additional valid property is valid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties can exist by itself / an additional invalid property is invalid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties are allowed by default / additional properties are allowed] PASSED [ 1%] tests/json_schema/test_draft04.py::test[additionalProperties.json / additionalProperties should not look in applicators / properties defined in allOf are not allowed] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf / allOf] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf / mismatch second] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf / mismatch first] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf / wrong type] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with base schema / valid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with base schema / mismatch base schema] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with base schema / mismatch first allOf] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with base schema / mismatch second allOf] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with base schema / mismatch both] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf simple types / valid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf simple types / mismatch one] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with one empty schema / any data is valid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with two empty schemas / any data is valid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with the first empty schema / number is valid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with the first empty schema / string is invalid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with the last empty schema / number is valid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[allOf.json / allOf with the last empty schema / string is invalid] PASSED [ 1%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf / first anyOf valid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf / second anyOf valid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf / both anyOf valid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf / neither anyOf valid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf with base schema / mismatch base schema] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf with base schema / one anyOf valid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf with base schema / both anyOf invalid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf complex types / first anyOf valid (complex)] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf complex types / second anyOf valid (complex)] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf complex types / both anyOf valid (complex)] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf complex types / neither anyOf valid (complex)] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf with one empty schema / string is valid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[anyOf.json / anyOf with one empty schema / number is valid] PASSED [ 2%] tests/json_schema/test_draft04.py::test[default.json / invalid type for default / valid when property is specified] PASSED [ 2%] tests/json_schema/test_draft04.py::test[default.json / invalid type for default / still valid when the invalid default is used] PASSED [ 2%] tests/json_schema/test_draft04.py::test[default.json / invalid string value for default / valid when property is specified] PASSED [ 2%] tests/json_schema/test_draft04.py::test[default.json / invalid string value for default / still valid when the invalid default is used] PASSED [ 2%] tests/json_schema/test_draft04.py::test[definitions.json / valid definition / valid definition schema] XFAIL [ 2%] tests/json_schema/test_draft04.py::test[definitions.json / invalid definition / invalid definition schema] XFAIL [ 2%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies / neither] PASSED [ 2%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies / nondependant] PASSED [ 2%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies / with dependency] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies / missing dependency] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies / ignores arrays] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies / ignores strings] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies / ignores other non-objects] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies / neither] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies / nondependants] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies / with dependencies] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies / missing dependency] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies / missing other dependency] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies / missing both dependencies] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies subschema / valid] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies subschema / no dependency] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies subschema / wrong type] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies subschema / wrong type other] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / multiple dependencies subschema / wrong type both] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies with escaped characters / valid object 1] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies with escaped characters / valid object 2] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies with escaped characters / valid object 3] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies with escaped characters / invalid object 1] PASSED [ 3%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies with escaped characters / invalid object 2] PASSED [ 4%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies with escaped characters / invalid object 3] PASSED [ 4%] tests/json_schema/test_draft04.py::test[dependencies.json / dependencies with escaped characters / invalid object 4] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / simple enum validation / one of the enum is valid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / simple enum validation / something else is invalid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / heterogeneous enum validation / one of the enum is valid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / heterogeneous enum validation / something else is invalid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / heterogeneous enum validation / objects are deep compared] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / enums in properties / both properties are valid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / enums in properties / missing optional property is valid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / enums in properties / missing required property is invalid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / enums in properties / missing all properties is invalid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / enum with escaped characters / member 1 is valid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / enum with escaped characters / member 2 is valid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[enum.json / enum with escaped characters / another string is invalid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[items.json / a schema given for items / valid items] PASSED [ 4%] tests/json_schema/test_draft04.py::test[items.json / a schema given for items / wrong type of items] PASSED [ 4%] tests/json_schema/test_draft04.py::test[items.json / a schema given for items / ignores non-arrays] PASSED [ 4%] tests/json_schema/test_draft04.py::test[items.json / a schema given for items / JavaScript pseudo-array is valid] PASSED [ 4%] tests/json_schema/test_draft04.py::test[items.json / an array of schemas for items / correct types] PASSED [ 4%] tests/json_schema/test_draft04.py::test[items.json / an array of schemas for items / wrong types] PASSED [ 4%] tests/json_schema/test_draft04.py::test[items.json / an array of schemas for items / incomplete array of items] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / an array of schemas for items / array with additional items] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / an array of schemas for items / empty array] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / an array of schemas for items / JavaScript pseudo-array is valid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / items and subitems / valid items] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / items and subitems / too many items] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / items and subitems / too many sub-items] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / items and subitems / wrong item] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / items and subitems / wrong sub-item] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / items and subitems / fewer items is valid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / nested items / valid nested array] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / nested items / nested array with invalid type] PASSED [ 5%] tests/json_schema/test_draft04.py::test[items.json / nested items / not deep enough] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxItems.json / maxItems validation / shorter is valid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxItems.json / maxItems validation / exact length is valid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxItems.json / maxItems validation / too long is invalid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxItems.json / maxItems validation / ignores non-arrays] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxLength.json / maxLength validation / shorter is valid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxLength.json / maxLength validation / exact length is valid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxLength.json / maxLength validation / too long is invalid] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxLength.json / maxLength validation / ignores non-strings] PASSED [ 5%] tests/json_schema/test_draft04.py::test[maxLength.json / maxLength validation / two supplementary Unicode code points is long enough] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maxProperties.json / maxProperties validation / shorter is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maxProperties.json / maxProperties validation / exact length is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maxProperties.json / maxProperties validation / too long is invalid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maxProperties.json / maxProperties validation / ignores arrays] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maxProperties.json / maxProperties validation / ignores strings] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maxProperties.json / maxProperties validation / ignores other non-objects] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation / below the maximum is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation / boundary point is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation / above the maximum is invalid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation / ignores non-numbers] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation (explicit false exclusivity) / below the maximum is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation (explicit false exclusivity) / boundary point is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation (explicit false exclusivity) / above the maximum is invalid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / maximum validation (explicit false exclusivity) / ignores non-numbers] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / exclusiveMaximum validation / below the maximum is still valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[maximum.json / exclusiveMaximum validation / boundary point is invalid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[minItems.json / minItems validation / longer is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[minItems.json / minItems validation / exact length is valid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[minItems.json / minItems validation / too short is invalid] PASSED [ 6%] tests/json_schema/test_draft04.py::test[minItems.json / minItems validation / ignores non-arrays] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minLength.json / minLength validation / longer is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minLength.json / minLength validation / exact length is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minLength.json / minLength validation / too short is invalid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minLength.json / minLength validation / ignores non-strings] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minLength.json / minLength validation / one supplementary Unicode code point is not long enough] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minProperties.json / minProperties validation / longer is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minProperties.json / minProperties validation / exact length is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minProperties.json / minProperties validation / too short is invalid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minProperties.json / minProperties validation / ignores arrays] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minProperties.json / minProperties validation / ignores strings] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minProperties.json / minProperties validation / ignores other non-objects] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation / above the minimum is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation / boundary point is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation / below the minimum is invalid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation / ignores non-numbers] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation (explicit false exclusivity) / above the minimum is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation (explicit false exclusivity) / boundary point is valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation (explicit false exclusivity) / below the minimum is invalid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation (explicit false exclusivity) / ignores non-numbers] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / exclusiveMinimum validation / above the minimum is still valid] PASSED [ 7%] tests/json_schema/test_draft04.py::test[minimum.json / exclusiveMinimum validation / boundary point is invalid] PASSED [ 8%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation with signed integer / negative above the minimum is valid] PASSED [ 8%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation with signed integer / positive above the minimum is valid] PASSED [ 8%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation with signed integer / boundary point is valid] PASSED [ 8%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation with signed integer / below the minimum is invalid] PASSED [ 8%] tests/json_schema/test_draft04.py::test[minimum.json / minimum validation with signed integer / ignores non-numbers] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by int / int by int] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by int / int by int fail] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by int / ignores non-numbers] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by number / zero is multiple of anything] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by number / 4.5 is multiple of 1.5] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by number / 35 is not multiple of 1.5] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by small number / 0.0075 is multiple of 0.0001] PASSED [ 8%] tests/json_schema/test_draft04.py::test[multipleOf.json / by small number / 0.00751 is not multiple of 0.0001] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not / allowed] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not / disallowed] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not multiple types / valid] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not multiple types / mismatch] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not multiple types / other mismatch] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not more complex schema / match] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not more complex schema / other match] PASSED [ 8%] tests/json_schema/test_draft04.py::test[not.json / not more complex schema / mismatch] PASSED [ 9%] tests/json_schema/test_draft04.py::test[not.json / forbidden property / property present] PASSED [ 9%] tests/json_schema/test_draft04.py::test[not.json / forbidden property / property absent] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf / first oneOf valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf / second oneOf valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf / both oneOf valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf / neither oneOf valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with base schema / mismatch base schema] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with base schema / one oneOf valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with base schema / both oneOf valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf complex types / first oneOf valid (complex)] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf complex types / second oneOf valid (complex)] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf complex types / both oneOf valid (complex)] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf complex types / neither oneOf valid (complex)] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with empty schema / one valid - valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with empty schema / both valid - invalid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with required / both invalid - invalid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with required / first valid - valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with required / second valid - valid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[oneOf.json / oneOf with required / both valid - invalid] PASSED [ 9%] tests/json_schema/test_draft04.py::test[bignum.json / integer / a bignum is an integer] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / number / a bignum is a number] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / integer / a negative bignum is an integer] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / number / a negative bignum is a number] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / string / a bignum is not a string] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / integer comparison / comparison works for high numbers] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / float comparison with high precision / comparison works for high numbers] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / integer comparison / comparison works for very negative numbers] PASSED [ 10%] tests/json_schema/test_draft04.py::test[bignum.json / float comparison with high precision on negative numbers / comparison works for very negative numbers] PASSED [ 10%] tests/json_schema/test_draft04.py::test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] XFAIL [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / a valid date-time string] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / a valid date-time string without second fraction] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / a valid date-time string with plus offset] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / a valid date-time string with minus offset] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / a invalid day in date-time string] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / an invalid offset in date-time string] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / an invalid date-time string] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / case-insensitive T and Z] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of date-time strings / only RFC3339 not all of ISO 8601 are valid] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL with anchor tag] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL with anchor tag and parantheses] PASSED [ 10%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL with URL-encoded stuff] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid puny-coded URL ] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL with many special characters] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL based on IPv4] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL with ftp scheme] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL for a simple text file] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URL ] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid mailto URI] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid newsgroup URI] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid tel URI] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / a valid URN] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / an invalid protocol-relative URI Reference] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / an invalid relative URI Reference] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / an invalid URI] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / an invalid URI though valid URI reference] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / an invalid URI with spaces] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of URIs / an invalid URI with spaces and missing scheme] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of e-mail addresses / a valid e-mail address] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of e-mail addresses / an invalid e-mail address] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of IP addresses / a valid IP address] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of IP addresses / an IP address with too many components] PASSED [ 11%] tests/json_schema/test_draft04.py::test[format.json / validation of IP addresses / an IP address with out-of-range values] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of IP addresses / an IP address without 4 components] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of IP addresses / an IP address as an integer] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of IPv6 addresses / a valid IPv6 address] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of IPv6 addresses / an IPv6 address with out-of-range values] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of IPv6 addresses / an IPv6 address with too many components] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of IPv6 addresses / an IPv6 address containing illegal characters] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of host names / a valid host name] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of host names / a host name starting with an illegal character] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of host names / a host name containing illegal characters] PASSED [ 12%] tests/json_schema/test_draft04.py::test[format.json / validation of host names / a host name with a component too long] PASSED [ 12%] tests/json_schema/test_draft04.py::test[zeroTerminatedFloats.json / some languages do not distinguish between different types of numeric value / a float is not an integer even without fractional part] PASSED [ 12%] tests/json_schema/test_draft04.py::test[pattern.json / pattern validation / a matching pattern is valid] PASSED [ 12%] tests/json_schema/test_draft04.py::test[pattern.json / pattern validation / a non-matching pattern is invalid] PASSED [ 12%] tests/json_schema/test_draft04.py::test[pattern.json / pattern validation / ignores non-strings] PASSED [ 12%] tests/json_schema/test_draft04.py::test[pattern.json / pattern is not anchored / matches a substring] PASSED [ 12%] tests/json_schema/test_draft04.py::test[patternProperties.json / patternProperties validates properties matching a regex / a single valid match is valid] PASSED [ 12%] tests/json_schema/test_draft04.py::test[patternProperties.json / patternProperties validates properties matching a regex / multiple valid matches is valid] PASSED [ 12%] tests/json_schema/test_draft04.py::test[patternProperties.json / patternProperties validates properties matching a regex / a single invalid match is invalid] PASSED [ 12%] tests/json_schema/test_draft04.py::test[patternProperties.json / patternProperties validates properties matching a regex / multiple invalid matches is invalid] PASSED [ 12%] tests/json_schema/test_draft04.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores arrays] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores strings] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores other non-objects] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / a single valid match is valid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / a simultaneous match is valid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / multiple matches is valid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to one is invalid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to the other is invalid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to both is invalid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / non recognized members are ignored] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / recognized members are accounted for] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / regexes are case sensitive] PASSED [ 13%] tests/json_schema/test_draft04.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / regexes are case sensitive, 2] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / object properties validation / both properties present and valid is valid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / object properties validation / one property invalid is invalid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / object properties validation / both properties invalid is invalid] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / object properties validation / doesn't invalidate other properties] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / object properties validation / ignores arrays] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / object properties validation / ignores other non-objects] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / property validates property] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / property invalidates property] PASSED [ 13%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty invalidates property] PASSED [ 14%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty validates nonproperty] PASSED [ 14%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty invalidates nonproperty] PASSED [ 14%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty ignores property] PASSED [ 14%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty validates others] PASSED [ 14%] tests/json_schema/test_draft04.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty invalidates others] PASSED [ 14%] tests/json_schema/test_draft04.py::test[properties.json / properties with escaped characters / object with all numbers is valid] PASSED [ 14%] tests/json_schema/test_draft04.py::test[properties.json / properties with escaped characters / object with strings is invalid] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / root pointer ref / match] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / root pointer ref / recursive match] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / root pointer ref / mismatch] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / root pointer ref / recursive mismatch] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / relative pointer ref to object / match] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / relative pointer ref to object / mismatch] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / relative pointer ref to array / match array] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / relative pointer ref to array / mismatch array] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / escaped pointer ref / slash invalid] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / escaped pointer ref / tilda invalid] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / escaped pointer ref / percent invalid] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / escaped pointer ref / slash valid] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / escaped pointer ref / tilda valid] PASSED [ 14%] tests/json_schema/test_draft04.py::test[ref.json / escaped pointer ref / percent valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / nested refs / nested ref valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / nested refs / nested ref invalid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / ref overrides any sibling keywords / ref valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / ref overrides any sibling keywords / ref valid, maxItems ignored] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / ref overrides any sibling keywords / ref invalid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / remote ref, containing refs itself / remote ref valid] XFAIL [ 15%] tests/json_schema/test_draft04.py::test[ref.json / remote ref, containing refs itself / remote ref invalid] XFAIL [ 15%] tests/json_schema/test_draft04.py::test[ref.json / property named $ref that is not a reference / property named $ref valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / property named $ref that is not a reference / property named $ref invalid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / Recursive references between schemas / valid tree] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / Recursive references between schemas / invalid tree] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / refs with quote / object with numbers is valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[ref.json / refs with quote / object with strings is invalid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / remote ref / remote ref valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / remote ref / remote ref invalid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / fragment within remote ref / remote fragment valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / fragment within remote ref / remote fragment invalid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / ref within remote ref / ref within ref valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / ref within remote ref / ref within ref invalid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / base URI change / base URI change ref valid] PASSED [ 15%] tests/json_schema/test_draft04.py::test[refRemote.json / base URI change / base URI change ref invalid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[refRemote.json / base URI change - change folder / number is valid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[refRemote.json / base URI change - change folder / string is invalid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[refRemote.json / base URI change - change folder in subschema / number is valid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[refRemote.json / base URI change - change folder in subschema / string is invalid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[refRemote.json / root ref in remote ref / string is valid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[refRemote.json / root ref in remote ref / null is valid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[refRemote.json / root ref in remote ref / object is invalid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required validation / present required property is valid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required validation / non-present required property is invalid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required validation / ignores arrays] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required validation / ignores strings] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required validation / ignores other non-objects] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required default validation / not required by default] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required with escaped characters / object with all properties present is valid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[required.json / required with escaped characters / object with some properties missing is invalid] PASSED [ 16%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / an integer is an integer] PASSED [ 16%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / a float is not an integer] PASSED [ 16%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / a string is not an integer] PASSED [ 16%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / a string is still not an integer, even if it looks like one] PASSED [ 16%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / an object is not an integer] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / an array is not an integer] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / a boolean is not an integer] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / integer type matches integers / null is not an integer] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / an integer is a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / a float is a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / a string is not a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / a string is still not a number, even if it looks like one] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / an object is not a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / an array is not a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / a boolean is not a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / number type matches numbers / null is not a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / 1 is not a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / a float is not a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / a string is a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / a string is still a string, even if it looks like a number] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / an empty string is still a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / an object is not a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / an array is not a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / a boolean is not a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / string type matches strings / null is not a string] PASSED [ 17%] tests/json_schema/test_draft04.py::test[type.json / object type matches objects / an integer is not an object] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / object type matches objects / a float is not an object] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / object type matches objects / a string is not an object] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / object type matches objects / an object is an object] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / object type matches objects / an array is not an object] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / object type matches objects / a boolean is not an object] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / object type matches objects / null is not an object] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / array type matches arrays / an integer is not an array] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / array type matches arrays / a float is not an array] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / array type matches arrays / a string is not an array] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / array type matches arrays / an object is not an array] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / array type matches arrays / an array is an array] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / array type matches arrays / a boolean is not an array] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / array type matches arrays / null is not an array] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / an integer is not a boolean] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / zero is not a boolean] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / a float is not a boolean] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / a string is not a boolean] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / an empty string is not a boolean] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / an object is not a boolean] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / an array is not a boolean] PASSED [ 18%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / true is a boolean] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / false is a boolean] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / boolean type matches booleans / null is not a boolean] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / an integer is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / a float is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / zero is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / a string is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / an empty string is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / an object is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / an array is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / true is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / false is not null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / null type matches only the null object / null is null] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / multiple types can be specified in an array / an integer is valid] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / multiple types can be specified in an array / a string is valid] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / multiple types can be specified in an array / a float is invalid] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / multiple types can be specified in an array / an object is invalid] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / multiple types can be specified in an array / an array is invalid] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / multiple types can be specified in an array / a boolean is invalid] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / multiple types can be specified in an array / null is invalid] PASSED [ 19%] tests/json_schema/test_draft04.py::test[type.json / type as array with one item / string is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type as array with one item / number is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array or object / array is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array or object / object is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array or object / number is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array or object / string is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array or object / null is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array, object or null / array is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array, object or null / object is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array, object or null / null is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array, object or null / number is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[type.json / type: array, object or null / string is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / unique array of integers is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / non-unique array of integers is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / numbers are unique if mathematically unequal] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / unique array of objects is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / non-unique array of objects is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / unique array of nested objects is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / non-unique array of nested objects is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / unique array of arrays is valid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / non-unique array of arrays is invalid] PASSED [ 20%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / 1 and true are unique] PASSED [ 21%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / 0 and false are unique] PASSED [ 21%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / unique heterogeneous types are valid] PASSED [ 21%] tests/json_schema/test_draft04.py::test[uniqueItems.json / uniqueItems validation / non-unique heterogeneous types are invalid] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / additionalItems as schema / additional items match schema] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / additionalItems as schema / additional items do not match schema] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / items is schema, no additionalItems / all items match schema] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / array of items with no additionalItems / fewer number of items present] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / array of items with no additionalItems / equal number of items present] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / array of items with no additionalItems / additional items are not permitted] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / additionalItems as false without items / items defaults to empty schema so everything is valid] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / additionalItems as false without items / ignores non-arrays] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalItems.json / additionalItems are allowed by default / only the first item is validated] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / no additional properties is valid] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / an additional property is invalid] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores arrays] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores strings] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores other non-objects] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / patternProperties are not additional properties] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / non-ASCII pattern with additionalProperties / matching the pattern is valid] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / non-ASCII pattern with additionalProperties / not matching the pattern is invalid] PASSED [ 21%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / no additional properties is valid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / an additional valid property is valid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / an additional invalid property is invalid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties can exist by itself / an additional valid property is valid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties can exist by itself / an additional invalid property is invalid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties are allowed by default / additional properties are allowed] PASSED [ 22%] tests/json_schema/test_draft06.py::test[additionalProperties.json / additionalProperties should not look in applicators / properties defined in allOf are not allowed] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf / allOf] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf / mismatch second] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf / mismatch first] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf / wrong type] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with base schema / valid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with base schema / mismatch base schema] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with base schema / mismatch first allOf] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with base schema / mismatch second allOf] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with base schema / mismatch both] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf simple types / valid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf simple types / mismatch one] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with boolean schemas, all true / any value is valid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with boolean schemas, some false / any value is invalid] PASSED [ 22%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with boolean schemas, all false / any value is invalid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with one empty schema / any data is valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with two empty schemas / any data is valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with the first empty schema / number is valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with the first empty schema / string is invalid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with the last empty schema / number is valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[allOf.json / allOf with the last empty schema / string is invalid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf / first anyOf valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf / second anyOf valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf / both anyOf valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf / neither anyOf valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with base schema / mismatch base schema] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with base schema / one anyOf valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with base schema / both anyOf invalid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with boolean schemas, all true / any value is valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with boolean schemas, some true / any value is valid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with boolean schemas, all false / any value is invalid] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf complex types / first anyOf valid (complex)] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf complex types / second anyOf valid (complex)] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf complex types / both anyOf valid (complex)] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf complex types / neither anyOf valid (complex)] PASSED [ 23%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with one empty schema / string is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[anyOf.json / anyOf with one empty schema / number is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / number is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / string is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / boolean true is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / boolean false is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / null is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / object is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / empty object is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / array is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'true' / empty array is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / number is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / string is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / boolean true is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / boolean false is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / null is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / object is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / empty object is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / array is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[boolean_schema.json / boolean schema 'false' / empty array is invalid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[const.json / const validation / same value is valid] PASSED [ 24%] tests/json_schema/test_draft06.py::test[const.json / const validation / another value is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const validation / another type is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with object / same object is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with object / same object with different property order is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with object / another object is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with object / another type is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with array / same array is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with array / another array item is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with array / array with additional items is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with null / null is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[const.json / const with null / not null is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword validation / array with item matching schema (5) is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword validation / array with item matching schema (6) is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword validation / array with two items matching schema (5, 6) is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword validation / array without items matching schema is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword validation / empty array is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword validation / not array is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword with const keyword / array with item 5 is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword with const keyword / array with two items 5 is valid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword with const keyword / array without item 5 is invalid] PASSED [ 25%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword with boolean schema true / any non-empty array is valid] PASSED [ 26%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword with boolean schema true / empty array is invalid] PASSED [ 26%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword with boolean schema false / any non-empty array is invalid] PASSED [ 26%] tests/json_schema/test_draft06.py::test[contains.json / contains keyword with boolean schema false / empty array is invalid] PASSED [ 26%] tests/json_schema/test_draft06.py::test[default.json / invalid type for default / valid when property is specified] PASSED [ 26%] tests/json_schema/test_draft06.py::test[default.json / invalid type for default / still valid when the invalid default is used] PASSED [ 26%] tests/json_schema/test_draft06.py::test[default.json / invalid string value for default / valid when property is specified] PASSED [ 26%] tests/json_schema/test_draft06.py::test[default.json / invalid string value for default / still valid when the invalid default is used] PASSED [ 26%] tests/json_schema/test_draft06.py::test[definitions.json / valid definition / valid definition schema] XFAIL [ 26%] tests/json_schema/test_draft06.py::test[definitions.json / invalid definition / invalid definition schema] XFAIL [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies / neither] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies / nondependant] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies / with dependency] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies / missing dependency] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies / ignores arrays] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies / ignores strings] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies / ignores other non-objects] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with empty array / empty object] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with empty array / object with one property] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies / neither] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies / nondependants] PASSED [ 26%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies / with dependencies] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies / missing dependency] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies / missing other dependency] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies / missing both dependencies] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies subschema / valid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies subschema / no dependency] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies subschema / wrong type] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies subschema / wrong type other] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / multiple dependencies subschema / wrong type both] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with boolean subschemas / object with property having schema true is valid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with boolean subschemas / object with property having schema false is invalid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with boolean subschemas / object with both properties is invalid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with boolean subschemas / empty object is valid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / empty array of dependencies / object with property is valid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / empty array of dependencies / empty object is valid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / empty array of dependencies / non-object is valid] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with escaped characters / valid object 1] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with escaped characters / valid object 2] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with escaped characters / valid object 3] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with escaped characters / invalid object 1] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with escaped characters / invalid object 2] PASSED [ 27%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with escaped characters / invalid object 3] PASSED [ 28%] tests/json_schema/test_draft06.py::test[dependencies.json / dependencies with escaped characters / invalid object 4] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / simple enum validation / one of the enum is valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / simple enum validation / something else is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / heterogeneous enum validation / one of the enum is valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / heterogeneous enum validation / something else is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / heterogeneous enum validation / objects are deep compared] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / enums in properties / both properties are valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / enums in properties / missing optional property is valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / enums in properties / missing required property is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / enums in properties / missing all properties is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / enum with escaped characters / member 1 is valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / enum with escaped characters / member 2 is valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[enum.json / enum with escaped characters / another string is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMaximum.json / exclusiveMaximum validation / below the exclusiveMaximum is valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMaximum.json / exclusiveMaximum validation / boundary point is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMaximum.json / exclusiveMaximum validation / above the exclusiveMaximum is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMaximum.json / exclusiveMaximum validation / ignores non-numbers] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMinimum.json / exclusiveMinimum validation / above the exclusiveMinimum is valid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMinimum.json / exclusiveMinimum validation / boundary point is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMinimum.json / exclusiveMinimum validation / below the exclusiveMinimum is invalid] PASSED [ 28%] tests/json_schema/test_draft06.py::test[exclusiveMinimum.json / exclusiveMinimum validation / ignores non-numbers] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / a schema given for items / valid items] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / a schema given for items / wrong type of items] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / a schema given for items / ignores non-arrays] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / a schema given for items / JavaScript pseudo-array is valid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / an array of schemas for items / correct types] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / an array of schemas for items / wrong types] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / an array of schemas for items / incomplete array of items] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / an array of schemas for items / array with additional items] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / an array of schemas for items / empty array] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / an array of schemas for items / JavaScript pseudo-array is valid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items with boolean schema (true) / any array is valid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items with boolean schema (true) / empty array is valid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items with boolean schema (false) / any non-empty array is invalid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items with boolean schema (false) / empty array is valid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items with boolean schemas / array with one item is valid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items with boolean schemas / array with two items is invalid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items with boolean schemas / empty array is valid] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items and subitems / valid items] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items and subitems / too many items] PASSED [ 29%] tests/json_schema/test_draft06.py::test[items.json / items and subitems / too many sub-items] PASSED [ 30%] tests/json_schema/test_draft06.py::test[items.json / items and subitems / wrong item] PASSED [ 30%] tests/json_schema/test_draft06.py::test[items.json / items and subitems / wrong sub-item] PASSED [ 30%] tests/json_schema/test_draft06.py::test[items.json / items and subitems / fewer items is valid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[items.json / nested items / valid nested array] PASSED [ 30%] tests/json_schema/test_draft06.py::test[items.json / nested items / nested array with invalid type] PASSED [ 30%] tests/json_schema/test_draft06.py::test[items.json / nested items / not deep enough] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxItems.json / maxItems validation / shorter is valid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxItems.json / maxItems validation / exact length is valid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxItems.json / maxItems validation / too long is invalid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxItems.json / maxItems validation / ignores non-arrays] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxLength.json / maxLength validation / shorter is valid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxLength.json / maxLength validation / exact length is valid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxLength.json / maxLength validation / too long is invalid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxLength.json / maxLength validation / ignores non-strings] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxLength.json / maxLength validation / two supplementary Unicode code points is long enough] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxProperties.json / maxProperties validation / shorter is valid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxProperties.json / maxProperties validation / exact length is valid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxProperties.json / maxProperties validation / too long is invalid] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxProperties.json / maxProperties validation / ignores arrays] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxProperties.json / maxProperties validation / ignores strings] PASSED [ 30%] tests/json_schema/test_draft06.py::test[maxProperties.json / maxProperties validation / ignores other non-objects] PASSED [ 31%] tests/json_schema/test_draft06.py::test[maximum.json / maximum validation / below the maximum is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[maximum.json / maximum validation / boundary point is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[maximum.json / maximum validation / above the maximum is invalid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[maximum.json / maximum validation / ignores non-numbers] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minItems.json / minItems validation / longer is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minItems.json / minItems validation / exact length is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minItems.json / minItems validation / too short is invalid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minItems.json / minItems validation / ignores non-arrays] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minLength.json / minLength validation / longer is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minLength.json / minLength validation / exact length is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minLength.json / minLength validation / too short is invalid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minLength.json / minLength validation / ignores non-strings] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minLength.json / minLength validation / one supplementary Unicode code point is not long enough] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minProperties.json / minProperties validation / longer is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minProperties.json / minProperties validation / exact length is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minProperties.json / minProperties validation / too short is invalid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minProperties.json / minProperties validation / ignores arrays] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minProperties.json / minProperties validation / ignores strings] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minProperties.json / minProperties validation / ignores other non-objects] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation / above the minimum is valid] PASSED [ 31%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation / boundary point is valid] PASSED [ 32%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation / below the minimum is invalid] PASSED [ 32%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation / ignores non-numbers] PASSED [ 32%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation with signed integer / negative above the minimum is valid] PASSED [ 32%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation with signed integer / positive above the minimum is valid] PASSED [ 32%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation with signed integer / boundary point is valid] PASSED [ 32%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation with signed integer / below the minimum is invalid] PASSED [ 32%] tests/json_schema/test_draft06.py::test[minimum.json / minimum validation with signed integer / ignores non-numbers] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by int / int by int] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by int / int by int fail] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by int / ignores non-numbers] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by number / zero is multiple of anything] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by number / 4.5 is multiple of 1.5] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by number / 35 is not multiple of 1.5] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by small number / 0.0075 is multiple of 0.0001] PASSED [ 32%] tests/json_schema/test_draft06.py::test[multipleOf.json / by small number / 0.00751 is not multiple of 0.0001] PASSED [ 32%] tests/json_schema/test_draft06.py::test[not.json / not / allowed] PASSED [ 32%] tests/json_schema/test_draft06.py::test[not.json / not / disallowed] PASSED [ 32%] tests/json_schema/test_draft06.py::test[not.json / not multiple types / valid] PASSED [ 32%] tests/json_schema/test_draft06.py::test[not.json / not multiple types / mismatch] PASSED [ 32%] tests/json_schema/test_draft06.py::test[not.json / not multiple types / other mismatch] PASSED [ 33%] tests/json_schema/test_draft06.py::test[not.json / not more complex schema / match] PASSED [ 33%] tests/json_schema/test_draft06.py::test[not.json / not more complex schema / other match] PASSED [ 33%] tests/json_schema/test_draft06.py::test[not.json / not more complex schema / mismatch] PASSED [ 33%] tests/json_schema/test_draft06.py::test[not.json / forbidden property / property present] PASSED [ 33%] tests/json_schema/test_draft06.py::test[not.json / forbidden property / property absent] PASSED [ 33%] tests/json_schema/test_draft06.py::test[not.json / not with boolean schema true / any value is invalid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[not.json / not with boolean schema false / any value is valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf / first oneOf valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf / second oneOf valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf / both oneOf valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf / neither oneOf valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with base schema / mismatch base schema] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with base schema / one oneOf valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with base schema / both oneOf valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with boolean schemas, all true / any value is invalid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with boolean schemas, one true / any value is valid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with boolean schemas, more than one true / any value is invalid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with boolean schemas, all false / any value is invalid] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf complex types / first oneOf valid (complex)] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf complex types / second oneOf valid (complex)] PASSED [ 33%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf complex types / both oneOf valid (complex)] PASSED [ 34%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf complex types / neither oneOf valid (complex)] PASSED [ 34%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with empty schema / one valid - valid] PASSED [ 34%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with empty schema / both valid - invalid] PASSED [ 34%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with required / both invalid - invalid] PASSED [ 34%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with required / first valid - valid] PASSED [ 34%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with required / second valid - valid] PASSED [ 34%] tests/json_schema/test_draft06.py::test[oneOf.json / oneOf with required / both valid - invalid] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / integer / a bignum is an integer] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / number / a bignum is a number] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / integer / a negative bignum is an integer] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / number / a negative bignum is a number] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / string / a bignum is not a string] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / integer comparison / comparison works for high numbers] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / float comparison with high precision / comparison works for high numbers] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / integer comparison / comparison works for very negative numbers] PASSED [ 34%] tests/json_schema/test_draft06.py::test[bignum.json / float comparison with high precision on negative numbers / comparison works for very negative numbers] PASSED [ 34%] tests/json_schema/test_draft06.py::test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] XFAIL [ 34%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / a valid date-time string] PASSED [ 34%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / a valid date-time string without second fraction] PASSED [ 34%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / a valid date-time string with plus offset] PASSED [ 34%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / a valid date-time string with minus offset] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / a invalid day in date-time string] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / an invalid offset in date-time string] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / an invalid closing Z after time-zone offset] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / an invalid date-time string] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / case-insensitive T and Z] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of date-time strings / only RFC3339 not all of ISO 8601 are valid] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL with anchor tag] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL with anchor tag and parantheses] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL with URL-encoded stuff] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid puny-coded URL ] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL with many special characters] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL based on IPv4] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL with ftp scheme] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL for a simple text file] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URL ] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid mailto URI] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid newsgroup URI] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid tel URI] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / a valid URN] PASSED [ 35%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / an invalid protocol-relative URI Reference] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / an invalid relative URI Reference] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / an invalid URI] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / an invalid URI though valid URI reference] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / an invalid URI with spaces] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URIs / an invalid URI with spaces and missing scheme] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URI References / a valid URI] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URI References / a valid protocol-relative URI Reference] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URI References / a valid relative URI Reference] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URI References / an invalid URI Reference] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URI References / a valid URI Reference] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URI References / a valid URI fragment] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of URI References / an invalid URI fragment] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / format: uri-template / a valid uri-template] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / format: uri-template / an invalid uri-template] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / format: uri-template / a valid uri-template without variables] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / format: uri-template / a valid relative uri-template] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of e-mail addresses / a valid e-mail address] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of e-mail addresses / an invalid e-mail address] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of IP addresses / a valid IP address] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of IP addresses / an IP address with too many components] PASSED [ 36%] tests/json_schema/test_draft06.py::test[format.json / validation of IP addresses / an IP address with out-of-range values] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of IP addresses / an IP address without 4 components] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of IP addresses / an IP address as an integer] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of IPv6 addresses / a valid IPv6 address] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of IPv6 addresses / an IPv6 address with out-of-range values] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of IPv6 addresses / an IPv6 address with too many components] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of IPv6 addresses / an IPv6 address containing illegal characters] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of host names / a valid host name] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of host names / a host name starting with an illegal character] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of host names / a host name containing illegal characters] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of host names / a host name with a component too long] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / a valid JSON-pointer] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (~ not escaped)] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer with empty segment] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer with the last empty segment] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #1] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #2] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #3] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #4] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #5] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #6] PASSED [ 37%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #7] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #8] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #9] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #10] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #11] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #12] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer used adding to the last array position] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (- used as object member name)] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (multiple escaped characters)] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (escaped with fraction part) #1] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (escaped with fraction part) #2] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (URI Fragment Identifier) #1] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (URI Fragment Identifier) #2] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (URI Fragment Identifier) #3] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (some escaped, but not all) #1] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (some escaped, but not all) #2] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (wrong escape character) #1] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (wrong escape character) #2] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (multiple characters not escaped)] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (isn't empty nor starts with /) #1] PASSED [ 38%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (isn't empty nor starts with /) #2] PASSED [ 39%] tests/json_schema/test_draft06.py::test[format.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (isn't empty nor starts with /) #3] PASSED [ 39%] tests/json_schema/test_draft06.py::test[zeroTerminatedFloats.json / some languages do not distinguish between different types of numeric value / a float without fractional part is an integer] PASSED [ 39%] tests/json_schema/test_draft06.py::test[pattern.json / pattern validation / a matching pattern is valid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[pattern.json / pattern validation / a non-matching pattern is invalid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[pattern.json / pattern validation / ignores non-strings] PASSED [ 39%] tests/json_schema/test_draft06.py::test[pattern.json / pattern is not anchored / matches a substring] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties validates properties matching a regex / a single valid match is valid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties validates properties matching a regex / multiple valid matches is valid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties validates properties matching a regex / a single invalid match is invalid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties validates properties matching a regex / multiple invalid matches is invalid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores arrays] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores strings] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores other non-objects] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / a single valid match is valid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / a simultaneous match is valid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / multiple matches is valid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to one is invalid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to the other is invalid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to both is invalid] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / non recognized members are ignored] PASSED [ 39%] tests/json_schema/test_draft06.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / recognized members are accounted for] PASSED [ 40%] tests/json_schema/test_draft06.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / regexes are case sensitive] PASSED [ 40%] tests/json_schema/test_draft06.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / regexes are case sensitive, 2] PASSED [ 40%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties with boolean schemas / object with property matching schema true is valid] PASSED [ 40%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties with boolean schemas / object with property matching schema false is invalid] PASSED [ 40%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties with boolean schemas / object with both properties is invalid] PASSED [ 40%] tests/json_schema/test_draft06.py::test[patternProperties.json / patternProperties with boolean schemas / empty object is valid] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / object properties validation / both properties present and valid is valid] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / object properties validation / one property invalid is invalid] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / object properties validation / both properties invalid is invalid] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / object properties validation / doesn't invalidate other properties] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / object properties validation / ignores arrays] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / object properties validation / ignores other non-objects] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / property validates property] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / property invalidates property] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty invalidates property] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty validates nonproperty] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty invalidates nonproperty] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty ignores property] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty validates others] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty invalidates others] PASSED [ 40%] tests/json_schema/test_draft06.py::test[properties.json / properties with boolean schema / no property present is valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[properties.json / properties with boolean schema / only 'true' property present is valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[properties.json / properties with boolean schema / only 'false' property present is invalid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[properties.json / properties with boolean schema / both properties present is invalid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[properties.json / properties with escaped characters / object with all numbers is valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[properties.json / properties with escaped characters / object with strings is invalid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames validation / all property names valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames validation / some property names invalid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames validation / object without properties is valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames validation / ignores arrays] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames validation / ignores strings] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames validation / ignores other non-objects] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames with boolean schema true / object with any properties is valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames with boolean schema true / empty object is valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames with boolean schema false / object with any properties is invalid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[propertyNames.json / propertyNames with boolean schema false / empty object is valid] PASSED [ 41%] tests/json_schema/test_draft06.py::test[ref.json / root pointer ref / match] PASSED [ 41%] tests/json_schema/test_draft06.py::test[ref.json / root pointer ref / recursive match] PASSED [ 41%] tests/json_schema/test_draft06.py::test[ref.json / root pointer ref / mismatch] PASSED [ 41%] tests/json_schema/test_draft06.py::test[ref.json / root pointer ref / recursive mismatch] PASSED [ 41%] tests/json_schema/test_draft06.py::test[ref.json / relative pointer ref to object / match] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / relative pointer ref to object / mismatch] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / relative pointer ref to array / match array] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / relative pointer ref to array / mismatch array] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / escaped pointer ref / slash invalid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / escaped pointer ref / tilda invalid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / escaped pointer ref / percent invalid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / escaped pointer ref / slash valid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / escaped pointer ref / tilda valid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / escaped pointer ref / percent valid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / nested refs / nested ref valid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / nested refs / nested ref invalid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / ref overrides any sibling keywords / ref valid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / ref overrides any sibling keywords / ref valid, maxItems ignored] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / ref overrides any sibling keywords / ref invalid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / remote ref, containing refs itself / remote ref valid] XFAIL [ 42%] tests/json_schema/test_draft06.py::test[ref.json / remote ref, containing refs itself / remote ref invalid] XFAIL [ 42%] tests/json_schema/test_draft06.py::test[ref.json / property named $ref that is not a reference / property named $ref valid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / property named $ref that is not a reference / property named $ref invalid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / $ref to boolean schema true / any value is valid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / $ref to boolean schema false / any value is invalid] PASSED [ 42%] tests/json_schema/test_draft06.py::test[ref.json / Recursive references between schemas / valid tree] PASSED [ 43%] tests/json_schema/test_draft06.py::test[ref.json / Recursive references between schemas / invalid tree] PASSED [ 43%] tests/json_schema/test_draft06.py::test[ref.json / refs with quote / object with numbers is valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[ref.json / refs with quote / object with strings is invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / remote ref / remote ref valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / remote ref / remote ref invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / fragment within remote ref / remote fragment valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / fragment within remote ref / remote fragment invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / ref within remote ref / ref within ref valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / ref within remote ref / ref within ref invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / base URI change / base URI change ref valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / base URI change / base URI change ref invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / base URI change - change folder / number is valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / base URI change - change folder / string is invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / base URI change - change folder in subschema / number is valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / base URI change - change folder in subschema / string is invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / root ref in remote ref / string is valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / root ref in remote ref / null is valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[refRemote.json / root ref in remote ref / object is invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[required.json / required validation / present required property is valid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[required.json / required validation / non-present required property is invalid] PASSED [ 43%] tests/json_schema/test_draft06.py::test[required.json / required validation / ignores arrays] PASSED [ 44%] tests/json_schema/test_draft06.py::test[required.json / required validation / ignores strings] PASSED [ 44%] tests/json_schema/test_draft06.py::test[required.json / required validation / ignores other non-objects] PASSED [ 44%] tests/json_schema/test_draft06.py::test[required.json / required default validation / not required by default] PASSED [ 44%] tests/json_schema/test_draft06.py::test[required.json / required with empty array / property not required] PASSED [ 44%] tests/json_schema/test_draft06.py::test[required.json / required with escaped characters / object with all properties present is valid] PASSED [ 44%] tests/json_schema/test_draft06.py::test[required.json / required with escaped characters / object with some properties missing is invalid] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / an integer is an integer] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / a float is not an integer] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / a string is not an integer] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / a string is still not an integer, even if it looks like one] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / an object is not an integer] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / an array is not an integer] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / a boolean is not an integer] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / integer type matches integers / null is not an integer] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / an integer is a number] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / a float is a number] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / a string is not a number] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / a string is still not a number, even if it looks like one] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / an object is not a number] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / an array is not a number] PASSED [ 44%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / a boolean is not a number] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / number type matches numbers / null is not a number] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / 1 is not a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / a float is not a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / a string is a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / a string is still a string, even if it looks like a number] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / an empty string is still a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / an object is not a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / an array is not a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / a boolean is not a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / string type matches strings / null is not a string] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / object type matches objects / an integer is not an object] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / object type matches objects / a float is not an object] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / object type matches objects / a string is not an object] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / object type matches objects / an object is an object] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / object type matches objects / an array is not an object] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / object type matches objects / a boolean is not an object] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / object type matches objects / null is not an object] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / array type matches arrays / an integer is not an array] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / array type matches arrays / a float is not an array] PASSED [ 45%] tests/json_schema/test_draft06.py::test[type.json / array type matches arrays / a string is not an array] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / array type matches arrays / an object is not an array] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / array type matches arrays / an array is an array] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / array type matches arrays / a boolean is not an array] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / array type matches arrays / null is not an array] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / an integer is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / zero is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / a float is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / a string is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / an empty string is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / an object is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / an array is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / true is a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / false is a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / boolean type matches booleans / null is not a boolean] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / an integer is not null] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / a float is not null] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / zero is not null] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / a string is not null] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / an empty string is not null] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / an object is not null] PASSED [ 46%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / an array is not null] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / true is not null] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / false is not null] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / null type matches only the null object / null is null] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / multiple types can be specified in an array / an integer is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / multiple types can be specified in an array / a string is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / multiple types can be specified in an array / a float is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / multiple types can be specified in an array / an object is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / multiple types can be specified in an array / an array is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / multiple types can be specified in an array / a boolean is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / multiple types can be specified in an array / null is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type as array with one item / string is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type as array with one item / number is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array or object / array is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array or object / object is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array or object / number is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array or object / string is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array or object / null is invalid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array, object or null / array is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array, object or null / object is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array, object or null / null is valid] PASSED [ 47%] tests/json_schema/test_draft06.py::test[type.json / type: array, object or null / number is invalid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[type.json / type: array, object or null / string is invalid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / unique array of integers is valid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / non-unique array of integers is invalid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / numbers are unique if mathematically unequal] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / unique array of objects is valid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / non-unique array of objects is invalid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / unique array of nested objects is valid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / non-unique array of nested objects is invalid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / unique array of arrays is valid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / non-unique array of arrays is invalid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / 1 and true are unique] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / 0 and false are unique] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / unique heterogeneous types are valid] PASSED [ 48%] tests/json_schema/test_draft06.py::test[uniqueItems.json / uniqueItems validation / non-unique heterogeneous types are invalid] PASSED [ 48%] tests/json_schema/test_draft07.py::test[additionalItems.json / additionalItems as schema / additional items match schema] PASSED [ 48%] tests/json_schema/test_draft07.py::test[additionalItems.json / additionalItems as schema / additional items do not match schema] PASSED [ 48%] tests/json_schema/test_draft07.py::test[additionalItems.json / items is schema, no additionalItems / all items match schema] PASSED [ 48%] tests/json_schema/test_draft07.py::test[additionalItems.json / array of items with no additionalItems / fewer number of items present] PASSED [ 48%] tests/json_schema/test_draft07.py::test[additionalItems.json / array of items with no additionalItems / equal number of items present] PASSED [ 48%] tests/json_schema/test_draft07.py::test[additionalItems.json / array of items with no additionalItems / additional items are not permitted] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalItems.json / additionalItems as false without items / items defaults to empty schema so everything is valid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalItems.json / additionalItems as false without items / ignores non-arrays] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalItems.json / additionalItems are allowed by default / only the first item is validated] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / no additional properties is valid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / an additional property is invalid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores arrays] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores strings] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / ignores other non-objects] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties being false does not allow other properties / patternProperties are not additional properties] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / non-ASCII pattern with additionalProperties / matching the pattern is valid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / non-ASCII pattern with additionalProperties / not matching the pattern is invalid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / no additional properties is valid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / an additional valid property is valid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties allows a schema which should validate / an additional invalid property is invalid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties can exist by itself / an additional valid property is valid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties can exist by itself / an additional invalid property is invalid] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties are allowed by default / additional properties are allowed] PASSED [ 49%] tests/json_schema/test_draft07.py::test[additionalProperties.json / additionalProperties should not look in applicators / properties defined in allOf are not allowed] PASSED [ 49%] tests/json_schema/test_draft07.py::test[allOf.json / allOf / allOf] PASSED [ 49%] tests/json_schema/test_draft07.py::test[allOf.json / allOf / mismatch second] PASSED [ 49%] tests/json_schema/test_draft07.py::test[allOf.json / allOf / mismatch first] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf / wrong type] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with base schema / valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with base schema / mismatch base schema] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with base schema / mismatch first allOf] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with base schema / mismatch second allOf] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with base schema / mismatch both] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf simple types / valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf simple types / mismatch one] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with boolean schemas, all true / any value is valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with boolean schemas, some false / any value is invalid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with boolean schemas, all false / any value is invalid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with one empty schema / any data is valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with two empty schemas / any data is valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with the first empty schema / number is valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with the first empty schema / string is invalid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with the last empty schema / number is valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[allOf.json / allOf with the last empty schema / string is invalid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf / first anyOf valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf / second anyOf valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf / both anyOf valid] PASSED [ 50%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf / neither anyOf valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with base schema / mismatch base schema] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with base schema / one anyOf valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with base schema / both anyOf invalid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with boolean schemas, all true / any value is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with boolean schemas, some true / any value is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with boolean schemas, all false / any value is invalid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf complex types / first anyOf valid (complex)] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf complex types / second anyOf valid (complex)] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf complex types / both anyOf valid (complex)] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf complex types / neither anyOf valid (complex)] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with one empty schema / string is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[anyOf.json / anyOf with one empty schema / number is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / number is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / string is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / boolean true is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / boolean false is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / null is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / object is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / empty object is valid] PASSED [ 51%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / array is valid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'true' / empty array is valid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / number is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / string is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / boolean true is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / boolean false is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / null is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / object is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / empty object is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / array is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[boolean_schema.json / boolean schema 'false' / empty array is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const validation / same value is valid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const validation / another value is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const validation / another type is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with object / same object is valid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with object / same object with different property order is valid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with object / another object is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with object / another type is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with array / same array is valid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with array / another array item is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with array / array with additional items is invalid] PASSED [ 52%] tests/json_schema/test_draft07.py::test[const.json / const with null / null is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[const.json / const with null / not null is invalid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword validation / array with item matching schema (5) is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword validation / array with item matching schema (6) is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword validation / array with two items matching schema (5, 6) is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword validation / array without items matching schema is invalid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword validation / empty array is invalid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword validation / not array is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword with const keyword / array with item 5 is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword with const keyword / array with two items 5 is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword with const keyword / array without item 5 is invalid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword with boolean schema true / any non-empty array is valid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword with boolean schema true / empty array is invalid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword with boolean schema false / any non-empty array is invalid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[contains.json / contains keyword with boolean schema false / empty array is invalid] PASSED [ 53%] tests/json_schema/test_draft07.py::test[default.json / invalid type for default / valid when property is specified] PASSED [ 53%] tests/json_schema/test_draft07.py::test[default.json / invalid type for default / still valid when the invalid default is used] PASSED [ 53%] tests/json_schema/test_draft07.py::test[default.json / invalid string value for default / valid when property is specified] PASSED [ 53%] tests/json_schema/test_draft07.py::test[default.json / invalid string value for default / still valid when the invalid default is used] PASSED [ 53%] tests/json_schema/test_draft07.py::test[definitions.json / valid definition / valid definition schema] XFAIL [ 53%] tests/json_schema/test_draft07.py::test[definitions.json / invalid definition / invalid definition schema] XFAIL [ 53%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies / neither] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies / nondependant] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies / with dependency] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies / missing dependency] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies / ignores arrays] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies / ignores strings] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies / ignores other non-objects] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with empty array / empty object] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with empty array / object with one property] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies / neither] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies / nondependants] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies / with dependencies] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies / missing dependency] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies / missing other dependency] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies / missing both dependencies] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies subschema / valid] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies subschema / no dependency] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies subschema / wrong type] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies subschema / wrong type other] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / multiple dependencies subschema / wrong type both] PASSED [ 54%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with boolean subschemas / object with property having schema true is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with boolean subschemas / object with property having schema false is invalid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with boolean subschemas / object with both properties is invalid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with boolean subschemas / empty object is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / empty array of dependencies / object with property is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / empty array of dependencies / empty object is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / empty array of dependencies / non-object is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with escaped characters / valid object 1] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with escaped characters / valid object 2] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with escaped characters / valid object 3] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with escaped characters / invalid object 1] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with escaped characters / invalid object 2] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with escaped characters / invalid object 3] PASSED [ 55%] tests/json_schema/test_draft07.py::test[dependencies.json / dependencies with escaped characters / invalid object 4] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / simple enum validation / one of the enum is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / simple enum validation / something else is invalid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / heterogeneous enum validation / one of the enum is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / heterogeneous enum validation / something else is invalid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / heterogeneous enum validation / objects are deep compared] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / enums in properties / both properties are valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / enums in properties / missing optional property is valid] PASSED [ 55%] tests/json_schema/test_draft07.py::test[enum.json / enums in properties / missing required property is invalid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[enum.json / enums in properties / missing all properties is invalid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[enum.json / enum with escaped characters / member 1 is valid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[enum.json / enum with escaped characters / member 2 is valid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[enum.json / enum with escaped characters / another string is invalid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMaximum.json / exclusiveMaximum validation / below the exclusiveMaximum is valid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMaximum.json / exclusiveMaximum validation / boundary point is invalid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMaximum.json / exclusiveMaximum validation / above the exclusiveMaximum is invalid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMaximum.json / exclusiveMaximum validation / ignores non-numbers] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMinimum.json / exclusiveMinimum validation / above the exclusiveMinimum is valid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMinimum.json / exclusiveMinimum validation / boundary point is invalid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMinimum.json / exclusiveMinimum validation / below the exclusiveMinimum is invalid] PASSED [ 56%] tests/json_schema/test_draft07.py::test[exclusiveMinimum.json / exclusiveMinimum validation / ignores non-numbers] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / ignore if without then or else / valid when valid against lone if] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / ignore if without then or else / valid when invalid against lone if] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / ignore then without if / valid when valid against lone then] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / ignore then without if / valid when invalid against lone then] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / ignore else without if / valid when valid against lone else] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / ignore else without if / valid when invalid against lone else] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / if and then without else / valid through then] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / if and then without else / invalid through then] PASSED [ 56%] tests/json_schema/test_draft07.py::test[if-then-else.json / if and then without else / valid when if test fails] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / if and else without then / valid when if test passes] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / if and else without then / valid through else] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / if and else without then / invalid through else] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / validate against correct branch, then vs else / valid through then] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / validate against correct branch, then vs else / invalid through then] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / validate against correct branch, then vs else / valid through else] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / validate against correct branch, then vs else / invalid through else] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / non-interference across combined schemas / valid, but woud have been invalid through then] PASSED [ 57%] tests/json_schema/test_draft07.py::test[if-then-else.json / non-interference across combined schemas / valid, but would have been invalid through else] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / a schema given for items / valid items] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / a schema given for items / wrong type of items] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / a schema given for items / ignores non-arrays] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / a schema given for items / JavaScript pseudo-array is valid] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / an array of schemas for items / correct types] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / an array of schemas for items / wrong types] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / an array of schemas for items / incomplete array of items] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / an array of schemas for items / array with additional items] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / an array of schemas for items / empty array] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / an array of schemas for items / JavaScript pseudo-array is valid] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / items with boolean schema (true) / any array is valid] PASSED [ 57%] tests/json_schema/test_draft07.py::test[items.json / items with boolean schema (true) / empty array is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items with boolean schema (false) / any non-empty array is invalid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items with boolean schema (false) / empty array is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items with boolean schemas / array with one item is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items with boolean schemas / array with two items is invalid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items with boolean schemas / empty array is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items and subitems / valid items] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items and subitems / too many items] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items and subitems / too many sub-items] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items and subitems / wrong item] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items and subitems / wrong sub-item] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / items and subitems / fewer items is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / nested items / valid nested array] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / nested items / nested array with invalid type] PASSED [ 58%] tests/json_schema/test_draft07.py::test[items.json / nested items / not deep enough] PASSED [ 58%] tests/json_schema/test_draft07.py::test[maxItems.json / maxItems validation / shorter is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[maxItems.json / maxItems validation / exact length is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[maxItems.json / maxItems validation / too long is invalid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[maxItems.json / maxItems validation / ignores non-arrays] PASSED [ 58%] tests/json_schema/test_draft07.py::test[maxLength.json / maxLength validation / shorter is valid] PASSED [ 58%] tests/json_schema/test_draft07.py::test[maxLength.json / maxLength validation / exact length is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxLength.json / maxLength validation / too long is invalid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxLength.json / maxLength validation / ignores non-strings] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxLength.json / maxLength validation / two supplementary Unicode code points is long enough] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxProperties.json / maxProperties validation / shorter is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxProperties.json / maxProperties validation / exact length is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxProperties.json / maxProperties validation / too long is invalid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxProperties.json / maxProperties validation / ignores arrays] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxProperties.json / maxProperties validation / ignores strings] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maxProperties.json / maxProperties validation / ignores other non-objects] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maximum.json / maximum validation / below the maximum is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maximum.json / maximum validation / boundary point is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maximum.json / maximum validation / above the maximum is invalid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[maximum.json / maximum validation / ignores non-numbers] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minItems.json / minItems validation / longer is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minItems.json / minItems validation / exact length is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minItems.json / minItems validation / too short is invalid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minItems.json / minItems validation / ignores non-arrays] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minLength.json / minLength validation / longer is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minLength.json / minLength validation / exact length is valid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minLength.json / minLength validation / too short is invalid] PASSED [ 59%] tests/json_schema/test_draft07.py::test[minLength.json / minLength validation / ignores non-strings] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minLength.json / minLength validation / one supplementary Unicode code point is not long enough] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minProperties.json / minProperties validation / longer is valid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minProperties.json / minProperties validation / exact length is valid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minProperties.json / minProperties validation / too short is invalid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minProperties.json / minProperties validation / ignores arrays] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minProperties.json / minProperties validation / ignores strings] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minProperties.json / minProperties validation / ignores other non-objects] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation / above the minimum is valid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation / boundary point is valid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation / below the minimum is invalid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation / ignores non-numbers] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation with signed integer / negative above the minimum is valid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation with signed integer / positive above the minimum is valid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation with signed integer / boundary point is valid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation with signed integer / below the minimum is invalid] PASSED [ 60%] tests/json_schema/test_draft07.py::test[minimum.json / minimum validation with signed integer / ignores non-numbers] PASSED [ 60%] tests/json_schema/test_draft07.py::test[multipleOf.json / by int / int by int] PASSED [ 60%] tests/json_schema/test_draft07.py::test[multipleOf.json / by int / int by int fail] PASSED [ 60%] tests/json_schema/test_draft07.py::test[multipleOf.json / by int / ignores non-numbers] PASSED [ 60%] tests/json_schema/test_draft07.py::test[multipleOf.json / by number / zero is multiple of anything] PASSED [ 60%] tests/json_schema/test_draft07.py::test[multipleOf.json / by number / 4.5 is multiple of 1.5] PASSED [ 61%] tests/json_schema/test_draft07.py::test[multipleOf.json / by number / 35 is not multiple of 1.5] PASSED [ 61%] tests/json_schema/test_draft07.py::test[multipleOf.json / by small number / 0.0075 is multiple of 0.0001] PASSED [ 61%] tests/json_schema/test_draft07.py::test[multipleOf.json / by small number / 0.00751 is not multiple of 0.0001] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not / allowed] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not / disallowed] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not multiple types / valid] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not multiple types / mismatch] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not multiple types / other mismatch] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not more complex schema / match] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not more complex schema / other match] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not more complex schema / mismatch] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / forbidden property / property present] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / forbidden property / property absent] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not with boolean schema true / any value is invalid] PASSED [ 61%] tests/json_schema/test_draft07.py::test[not.json / not with boolean schema false / any value is valid] PASSED [ 61%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf / first oneOf valid] PASSED [ 61%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf / second oneOf valid] PASSED [ 61%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf / both oneOf valid] PASSED [ 61%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf / neither oneOf valid] PASSED [ 61%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with base schema / mismatch base schema] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with base schema / one oneOf valid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with base schema / both oneOf valid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with boolean schemas, all true / any value is invalid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with boolean schemas, one true / any value is valid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with boolean schemas, more than one true / any value is invalid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with boolean schemas, all false / any value is invalid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf complex types / first oneOf valid (complex)] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf complex types / second oneOf valid (complex)] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf complex types / both oneOf valid (complex)] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf complex types / neither oneOf valid (complex)] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with empty schema / one valid - valid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with empty schema / both valid - invalid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with required / both invalid - invalid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with required / first valid - valid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with required / second valid - valid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[oneOf.json / oneOf with required / both valid - invalid] PASSED [ 62%] tests/json_schema/test_draft07.py::test[bignum.json / integer / a bignum is an integer] PASSED [ 62%] tests/json_schema/test_draft07.py::test[bignum.json / number / a bignum is a number] PASSED [ 62%] tests/json_schema/test_draft07.py::test[bignum.json / integer / a negative bignum is an integer] PASSED [ 62%] tests/json_schema/test_draft07.py::test[bignum.json / number / a negative bignum is a number] PASSED [ 62%] tests/json_schema/test_draft07.py::test[bignum.json / string / a bignum is not a string] PASSED [ 63%] tests/json_schema/test_draft07.py::test[bignum.json / integer comparison / comparison works for high numbers] PASSED [ 63%] tests/json_schema/test_draft07.py::test[bignum.json / float comparison with high precision / comparison works for high numbers] PASSED [ 63%] tests/json_schema/test_draft07.py::test[bignum.json / integer comparison / comparison works for very negative numbers] PASSED [ 63%] tests/json_schema/test_draft07.py::test[bignum.json / float comparison with high precision on negative numbers / comparison works for very negative numbers] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of string-encoded content based on media type / a valid JSON document] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of string-encoded content based on media type / an invalid JSON document] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of string-encoded content based on media type / ignores non-strings] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of binary string-encoding / a valid base64 string] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of binary string-encoding / an invalid base64 string (% is not a valid character)] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of binary string-encoding / ignores non-strings] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of binary-encoded media type documents / a valid base64-encoded JSON document] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of binary-encoded media type documents / a validly-encoded invalid JSON document] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of binary-encoded media type documents / an invalid base64 string that is valid JSON] PASSED [ 63%] tests/json_schema/test_draft07.py::test[content.json / validation of binary-encoded media type documents / ignores non-strings] PASSED [ 63%] tests/json_schema/test_draft07.py::test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] XFAIL [ 63%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / a valid date-time string] PASSED [ 63%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / a valid date-time string without second fraction] PASSED [ 63%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / a valid date-time string with plus offset] PASSED [ 63%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / a valid date-time string with minus offset] PASSED [ 63%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / a invalid day in date-time string] PASSED [ 63%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / an invalid offset in date-time string] PASSED [ 64%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / an invalid date-time string] PASSED [ 64%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / case-insensitive T and Z] PASSED [ 64%] tests/json_schema/test_draft07.py::test[date-time.json / validation of date-time strings / only RFC3339 not all of ISO 8601 are valid] PASSED [ 64%] tests/json_schema/test_draft07.py::test[date.json / validation of date strings / a valid date string] PASSED [ 64%] tests/json_schema/test_draft07.py::test[date.json / validation of date strings / an invalid date-time string] PASSED [ 64%] tests/json_schema/test_draft07.py::test[date.json / validation of date strings / only RFC3339 not all of ISO 8601 are valid] PASSED [ 64%] tests/json_schema/test_draft07.py::test[email.json / validation of e-mail addresses / a valid e-mail address] PASSED [ 64%] tests/json_schema/test_draft07.py::test[email.json / validation of e-mail addresses / an invalid e-mail address] PASSED [ 64%] tests/json_schema/test_draft07.py::test[hostname.json / validation of host names / a valid host name] PASSED [ 64%] tests/json_schema/test_draft07.py::test[hostname.json / validation of host names / a valid punycoded IDN hostname] PASSED [ 64%] tests/json_schema/test_draft07.py::test[hostname.json / validation of host names / a host name starting with an illegal character] PASSED [ 64%] tests/json_schema/test_draft07.py::test[hostname.json / validation of host names / a host name containing illegal characters] PASSED [ 64%] tests/json_schema/test_draft07.py::test[hostname.json / validation of host names / a host name with a component too long] PASSED [ 64%] tests/json_schema/test_draft07.py::test[idn-email.json / validation of an internationalized e-mail addresses / a valid idn e-mail (example@example.test in Hangul)] PASSED [ 64%] tests/json_schema/test_draft07.py::test[idn-email.json / validation of an internationalized e-mail addresses / an invalid idn e-mail address] PASSED [ 64%] tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / a valid host name (example.test in Hangul)] XFAIL [ 64%] tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / illegal first char U+302E Hangul single dot tone mark] XFAIL [ 64%] tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / contains illegal char U+302E Hangul single dot tone mark] XFAIL [ 64%] tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / a host name with a component too long] XFAIL [ 64%] tests/json_schema/test_draft07.py::test[ipv4.json / validation of IP addresses / a valid IP address] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv4.json / validation of IP addresses / an IP address with too many components] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv4.json / validation of IP addresses / an IP address with out-of-range values] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv4.json / validation of IP addresses / an IP address without 4 components] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv4.json / validation of IP addresses / an IP address as an integer] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv6.json / validation of IPv6 addresses / a valid IPv6 address] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv6.json / validation of IPv6 addresses / an IPv6 address with out-of-range values] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv6.json / validation of IPv6 addresses / an IPv6 address with too many components] PASSED [ 65%] tests/json_schema/test_draft07.py::test[ipv6.json / validation of IPv6 addresses / an IPv6 address containing illegal characters] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri-reference.json / validation of IRI References / a valid IRI] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri-reference.json / validation of IRI References / a valid protocol-relative IRI Reference] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri-reference.json / validation of IRI References / a valid relative IRI Reference] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri-reference.json / validation of IRI References / an invalid IRI Reference] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri-reference.json / validation of IRI References / a valid IRI Reference] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri-reference.json / validation of IRI References / a valid IRI fragment] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri-reference.json / validation of IRI References / an invalid IRI fragment] PASSED [ 65%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with anchor tag] XPASS [ 65%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with anchor tag and parantheses] XPASS [ 65%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with URL-encoded stuff] XPASS [ 65%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with many special characters] XPASS [ 65%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI based on IPv6] XPASS [ 65%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid IRI based on IPv6] XFAIL [ 66%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid relative IRI Reference] XPASS [ 66%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid IRI] XPASS [ 66%] tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid IRI though valid IRI reference] XPASS [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / a valid JSON-pointer] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (~ not escaped)] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer with empty segment] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer with the last empty segment] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #1] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #2] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #3] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #4] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #5] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #6] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #7] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #8] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #9] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #10] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #11] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer as stated in RFC 6901 #12] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer used adding to the last array position] PASSED [ 66%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (- used as object member name)] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (multiple escaped characters)] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (escaped with fraction part) #1] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / valid JSON-pointer (escaped with fraction part) #2] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (URI Fragment Identifier) #1] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (URI Fragment Identifier) #2] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (URI Fragment Identifier) #3] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (some escaped, but not all) #1] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (some escaped, but not all) #2] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (wrong escape character) #1] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (wrong escape character) #2] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (multiple characters not escaped)] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (isn't empty nor starts with /) #1] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (isn't empty nor starts with /) #2] PASSED [ 67%] tests/json_schema/test_draft07.py::test[json-pointer.json / validation of JSON-pointers (JSON String Representation) / not a valid JSON-pointer (isn't empty nor starts with /) #3] PASSED [ 67%] tests/json_schema/test_draft07.py::test[regex.json / validation of regular expressions / a valid regular expression] PASSED [ 67%] tests/json_schema/test_draft07.py::test[regex.json / validation of regular expressions / a regular expression with unclosed parens is invalid] PASSED [ 67%] tests/json_schema/test_draft07.py::test[relative-json-pointer.json / validation of Relative JSON Pointers (RJP) / a valid upwards RJP] PASSED [ 67%] tests/json_schema/test_draft07.py::test[relative-json-pointer.json / validation of Relative JSON Pointers (RJP) / a valid downwards RJP] PASSED [ 67%] tests/json_schema/test_draft07.py::test[relative-json-pointer.json / validation of Relative JSON Pointers (RJP) / a valid up and then down RJP, with array index] PASSED [ 67%] tests/json_schema/test_draft07.py::test[relative-json-pointer.json / validation of Relative JSON Pointers (RJP) / a valid RJP taking the member or index name] PASSED [ 68%] tests/json_schema/test_draft07.py::test[relative-json-pointer.json / validation of Relative JSON Pointers (RJP) / an invalid RJP that is a valid JSON Pointer] PASSED [ 68%] tests/json_schema/test_draft07.py::test[time.json / validation of time strings / a valid time string] PASSED [ 68%] tests/json_schema/test_draft07.py::test[time.json / validation of time strings / an invalid time string] PASSED [ 68%] tests/json_schema/test_draft07.py::test[time.json / validation of time strings / only RFC3339 not all of ISO 8601 are valid] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-reference.json / validation of URI References / a valid URI] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-reference.json / validation of URI References / a valid protocol-relative URI Reference] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-reference.json / validation of URI References / a valid relative URI Reference] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-reference.json / validation of URI References / an invalid URI Reference] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-reference.json / validation of URI References / a valid URI Reference] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-reference.json / validation of URI References / a valid URI fragment] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-reference.json / validation of URI References / an invalid URI fragment] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-template.json / format: uri-template / a valid uri-template] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-template.json / format: uri-template / an invalid uri-template] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-template.json / format: uri-template / a valid uri-template without variables] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri-template.json / format: uri-template / a valid relative uri-template] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL with anchor tag] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL with anchor tag and parantheses] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL with URL-encoded stuff] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid puny-coded URL ] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL with many special characters] PASSED [ 68%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL based on IPv4] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL with ftp scheme] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL for a simple text file] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URL ] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid mailto URI] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid newsgroup URI] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid tel URI] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / a valid URN] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / an invalid protocol-relative URI Reference] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / an invalid relative URI Reference] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / an invalid URI] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / an invalid URI though valid URI reference] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / an invalid URI with spaces] PASSED [ 69%] tests/json_schema/test_draft07.py::test[uri.json / validation of URIs / an invalid URI with spaces and missing scheme] PASSED [ 69%] tests/json_schema/test_draft07.py::test[zeroTerminatedFloats.json / some languages do not distinguish between different types of numeric value / a float without fractional part is an integer] PASSED [ 69%] tests/json_schema/test_draft07.py::test[pattern.json / pattern validation / a matching pattern is valid] PASSED [ 69%] tests/json_schema/test_draft07.py::test[pattern.json / pattern validation / a non-matching pattern is invalid] PASSED [ 69%] tests/json_schema/test_draft07.py::test[pattern.json / pattern validation / ignores non-strings] PASSED [ 69%] tests/json_schema/test_draft07.py::test[pattern.json / pattern is not anchored / matches a substring] PASSED [ 69%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties validates properties matching a regex / a single valid match is valid] PASSED [ 69%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties validates properties matching a regex / multiple valid matches is valid] PASSED [ 69%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties validates properties matching a regex / a single invalid match is invalid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties validates properties matching a regex / multiple invalid matches is invalid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores arrays] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores strings] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties validates properties matching a regex / ignores other non-objects] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / a single valid match is valid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / a simultaneous match is valid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / multiple matches is valid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to one is invalid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to the other is invalid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / multiple simultaneous patternProperties are validated / an invalid due to both is invalid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / non recognized members are ignored] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / recognized members are accounted for] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / regexes are case sensitive] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / regexes are not anchored by default and are case sensitive / regexes are case sensitive, 2] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties with boolean schemas / object with property matching schema true is valid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties with boolean schemas / object with property matching schema false is invalid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties with boolean schemas / object with both properties is invalid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[patternProperties.json / patternProperties with boolean schemas / empty object is valid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[properties.json / object properties validation / both properties present and valid is valid] PASSED [ 70%] tests/json_schema/test_draft07.py::test[properties.json / object properties validation / one property invalid is invalid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / object properties validation / both properties invalid is invalid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / object properties validation / doesn't invalidate other properties] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / object properties validation / ignores arrays] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / object properties validation / ignores other non-objects] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / property validates property] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / property invalidates property] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty invalidates property] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty validates nonproperty] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / patternProperty invalidates nonproperty] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty ignores property] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty validates others] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties, patternProperties, additionalProperties interaction / additionalProperty invalidates others] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties with boolean schema / no property present is valid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties with boolean schema / only 'true' property present is valid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties with boolean schema / only 'false' property present is invalid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties with boolean schema / both properties present is invalid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties with escaped characters / object with all numbers is valid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[properties.json / properties with escaped characters / object with strings is invalid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames validation / all property names valid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames validation / some property names invalid] PASSED [ 71%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames validation / object without properties is valid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames validation / ignores arrays] PASSED [ 72%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames validation / ignores strings] PASSED [ 72%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames validation / ignores other non-objects] PASSED [ 72%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames with boolean schema true / object with any properties is valid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames with boolean schema true / empty object is valid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames with boolean schema false / object with any properties is invalid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[propertyNames.json / propertyNames with boolean schema false / empty object is valid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / root pointer ref / match] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / root pointer ref / recursive match] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / root pointer ref / mismatch] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / root pointer ref / recursive mismatch] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / relative pointer ref to object / match] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / relative pointer ref to object / mismatch] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / relative pointer ref to array / match array] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / relative pointer ref to array / mismatch array] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / escaped pointer ref / slash invalid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / escaped pointer ref / tilda invalid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / escaped pointer ref / percent invalid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / escaped pointer ref / slash valid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / escaped pointer ref / tilda valid] PASSED [ 72%] tests/json_schema/test_draft07.py::test[ref.json / escaped pointer ref / percent valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / nested refs / nested ref valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / nested refs / nested ref invalid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / ref overrides any sibling keywords / ref valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / ref overrides any sibling keywords / ref valid, maxItems ignored] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / ref overrides any sibling keywords / ref invalid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / remote ref, containing refs itself / remote ref valid] XFAIL [ 73%] tests/json_schema/test_draft07.py::test[ref.json / remote ref, containing refs itself / remote ref invalid] XFAIL [ 73%] tests/json_schema/test_draft07.py::test[ref.json / property named $ref that is not a reference / property named $ref valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / property named $ref that is not a reference / property named $ref invalid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / $ref to boolean schema true / any value is valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / $ref to boolean schema false / any value is invalid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / Recursive references between schemas / valid tree] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / Recursive references between schemas / invalid tree] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / refs with quote / object with numbers is valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[ref.json / refs with quote / object with strings is invalid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[refRemote.json / remote ref / remote ref valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[refRemote.json / remote ref / remote ref invalid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[refRemote.json / fragment within remote ref / remote fragment valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[refRemote.json / fragment within remote ref / remote fragment invalid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[refRemote.json / ref within remote ref / ref within ref valid] PASSED [ 73%] tests/json_schema/test_draft07.py::test[refRemote.json / ref within remote ref / ref within ref invalid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / base URI change / base URI change ref valid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / base URI change / base URI change ref invalid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / base URI change - change folder / number is valid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / base URI change - change folder / string is invalid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / base URI change - change folder in subschema / number is valid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / base URI change - change folder in subschema / string is invalid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / root ref in remote ref / string is valid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / root ref in remote ref / null is valid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[refRemote.json / root ref in remote ref / object is invalid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required validation / present required property is valid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required validation / non-present required property is invalid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required validation / ignores arrays] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required validation / ignores strings] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required validation / ignores other non-objects] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required default validation / not required by default] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required with empty array / property not required] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required with escaped characters / object with all properties present is valid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[required.json / required with escaped characters / object with some properties missing is invalid] PASSED [ 74%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / an integer is an integer] PASSED [ 74%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / a float is not an integer] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / a string is not an integer] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / a string is still not an integer, even if it looks like one] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / an object is not an integer] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / an array is not an integer] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / a boolean is not an integer] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / integer type matches integers / null is not an integer] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / an integer is a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / a float is a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / a string is not a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / a string is still not a number, even if it looks like one] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / an object is not a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / an array is not a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / a boolean is not a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / number type matches numbers / null is not a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / 1 is not a string] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / a float is not a string] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / a string is a string] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / a string is still a string, even if it looks like a number] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / an empty string is still a string] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / an object is not a string] PASSED [ 75%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / an array is not a string] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / a boolean is not a string] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / string type matches strings / null is not a string] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / object type matches objects / an integer is not an object] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / object type matches objects / a float is not an object] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / object type matches objects / a string is not an object] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / object type matches objects / an object is an object] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / object type matches objects / an array is not an object] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / object type matches objects / a boolean is not an object] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / object type matches objects / null is not an object] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / array type matches arrays / an integer is not an array] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / array type matches arrays / a float is not an array] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / array type matches arrays / a string is not an array] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / array type matches arrays / an object is not an array] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / array type matches arrays / an array is an array] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / array type matches arrays / a boolean is not an array] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / array type matches arrays / null is not an array] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / an integer is not a boolean] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / zero is not a boolean] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / a float is not a boolean] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / a string is not a boolean] PASSED [ 76%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / an empty string is not a boolean] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / an object is not a boolean] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / an array is not a boolean] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / true is a boolean] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / false is a boolean] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / boolean type matches booleans / null is not a boolean] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / an integer is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / a float is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / zero is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / a string is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / an empty string is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / an object is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / an array is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / true is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / false is not null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / null type matches only the null object / null is null] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / multiple types can be specified in an array / an integer is valid] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / multiple types can be specified in an array / a string is valid] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / multiple types can be specified in an array / a float is invalid] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / multiple types can be specified in an array / an object is invalid] PASSED [ 77%] tests/json_schema/test_draft07.py::test[type.json / multiple types can be specified in an array / an array is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / multiple types can be specified in an array / a boolean is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / multiple types can be specified in an array / null is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type as array with one item / string is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type as array with one item / number is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array or object / array is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array or object / object is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array or object / number is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array or object / string is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array or object / null is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array, object or null / array is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array, object or null / object is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array, object or null / null is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array, object or null / number is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[type.json / type: array, object or null / string is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / unique array of integers is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / non-unique array of integers is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / numbers are unique if mathematically unequal] PASSED [ 78%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / unique array of objects is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / non-unique array of objects is invalid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / unique array of nested objects is valid] PASSED [ 78%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / non-unique array of nested objects is invalid] PASSED [ 79%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / unique array of arrays is valid] PASSED [ 79%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / non-unique array of arrays is invalid] PASSED [ 79%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / 1 and true are unique] PASSED [ 79%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / 0 and false are unique] PASSED [ 79%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / unique heterogeneous types are valid] PASSED [ 79%] tests/json_schema/test_draft07.py::test[uniqueItems.json / uniqueItems validation / non-unique heterogeneous types are invalid] PASSED [ 79%] tests/test_array.py::test_array[0-expected0] PASSED [ 79%] tests/test_array.py::test_array[None-expected1] PASSED [ 79%] tests/test_array.py::test_array[True-expected2] PASSED [ 79%] tests/test_array.py::test_array[False-expected3] PASSED [ 79%] tests/test_array.py::test_array[abc-expected4] PASSED [ 79%] tests/test_array.py::test_array[value5-expected5] PASSED [ 79%] tests/test_array.py::test_array[value6-expected6] PASSED [ 79%] tests/test_array.py::test_array[value7-expected7] PASSED [ 79%] tests/test_array.py::test_max_items[value0-expected0] PASSED [ 79%] tests/test_array.py::test_max_items[value1-expected1] PASSED [ 79%] tests/test_array.py::test_max_items[value2-expected2] PASSED [ 79%] tests/test_array.py::test_max_items[value3-expected3] PASSED [ 79%] tests/test_array.py::test_min_items[value0-expected0] PASSED [ 79%] tests/test_array.py::test_min_items[value1-expected1] PASSED [ 79%] tests/test_array.py::test_min_items[value2-expected2] PASSED [ 80%] tests/test_array.py::test_min_items[value3-expected3] PASSED [ 80%] tests/test_array.py::test_unique_items[value0-expected0] PASSED [ 80%] tests/test_array.py::test_unique_items[value1-expected1] PASSED [ 80%] tests/test_array.py::test_unique_items[value2-expected2] PASSED [ 80%] tests/test_array.py::test_unique_items[value3-expected3] PASSED [ 80%] tests/test_array.py::test_unique_items[value4-expected4] PASSED [ 80%] tests/test_array.py::test_unique_items[value5-expected5] PASSED [ 80%] tests/test_array.py::test_unique_items[value6-expected6] PASSED [ 80%] tests/test_array.py::test_unique_items[value7-expected7] PASSED [ 80%] tests/test_array.py::test_unique_items[value8-expected8] PASSED [ 80%] tests/test_array.py::test_unique_items[value9-expected9] PASSED [ 80%] tests/test_array.py::test_unique_items[value10-expected10] PASSED [ 80%] tests/test_array.py::test_unique_items[value11-expected11] PASSED [ 80%] tests/test_array.py::test_unique_items[value12-expected12] PASSED [ 80%] tests/test_array.py::test_unique_items[value13-expected13] PASSED [ 80%] tests/test_array.py::test_unique_items[value14-expected14] PASSED [ 80%] tests/test_array.py::test_unique_items[value15-expected15] PASSED [ 80%] tests/test_array.py::test_unique_items[value16-expected16] PASSED [ 80%] tests/test_array.py::test_unique_items[value17-expected17] PASSED [ 80%] tests/test_array.py::test_not_unique_items PASSED [ 81%] tests/test_array.py::test_min_and_unique_items PASSED [ 81%] tests/test_array.py::test_items_all_same[value0-expected0] PASSED [ 81%] tests/test_array.py::test_items_all_same[value1-expected1] PASSED [ 81%] tests/test_array.py::test_items_all_same[value2-expected2] PASSED [ 81%] tests/test_array.py::test_different_items[value0-expected0] PASSED [ 81%] tests/test_array.py::test_different_items[value1-expected1] PASSED [ 81%] tests/test_array.py::test_different_items[value2-expected2] PASSED [ 81%] tests/test_array.py::test_different_items[value3-expected3] PASSED [ 81%] tests/test_array.py::test_different_items[value4-expected4] PASSED [ 81%] tests/test_array.py::test_different_items[value5-expected5] PASSED [ 81%] tests/test_array.py::test_different_items_with_additional_items[value0-expected0] PASSED [ 81%] tests/test_array.py::test_different_items_with_additional_items[value1-expected1] PASSED [ 81%] tests/test_array.py::test_different_items_with_additional_items[value2-expected2] PASSED [ 81%] tests/test_array.py::test_different_items_with_additional_items[value3-expected3] PASSED [ 81%] tests/test_array.py::test_different_items_with_additional_items[value4-expected4] PASSED [ 81%] tests/test_array.py::test_different_items_with_additional_items[value5-expected5] PASSED [ 81%] tests/test_array.py::test_different_items_without_additional_items[value0-expected0] PASSED [ 81%] tests/test_array.py::test_different_items_without_additional_items[value1-expected1] PASSED [ 81%] tests/test_array.py::test_different_items_without_additional_items[value2-expected2] PASSED [ 81%] tests/test_array.py::test_different_items_without_additional_items[value3-expected3] PASSED [ 81%] tests/test_array.py::test_different_items_without_additional_items[value4-expected4] PASSED [ 82%] tests/test_array.py::test_different_items_without_additional_items[value5-expected5] PASSED [ 82%] tests/test_array.py::test_tuples_as_arrays[value0-expected0] PASSED [ 82%] tests/test_array.py::test_tuples_as_arrays[value1-expected1] PASSED [ 82%] tests/test_array.py::test_tuples_as_arrays[value2-expected2] PASSED [ 82%] tests/test_array.py::test_tuples_as_arrays[value3-expected3] PASSED [ 82%] tests/test_array.py::test_mixed_arrays[value0-expected0] PASSED [ 82%] tests/test_array.py::test_mixed_arrays[value1-expected1] PASSED [ 82%] tests/test_array.py::test_issue_114 PASSED [ 82%] tests/test_boolean.py::test_boolean[0-expected0] PASSED [ 82%] tests/test_boolean.py::test_boolean[None-expected1] PASSED [ 82%] tests/test_boolean.py::test_boolean[True-True] PASSED [ 82%] tests/test_boolean.py::test_boolean[False-False] PASSED [ 82%] tests/test_boolean.py::test_boolean[abc-expected4] PASSED [ 82%] tests/test_boolean.py::test_boolean[value5-expected5] PASSED [ 82%] tests/test_boolean.py::test_boolean[value6-expected6] PASSED [ 82%] tests/test_boolean_schema.py::test_boolean_schema_true_in_then[1-1] PASSED [ 82%] tests/test_boolean_schema.py::test_boolean_schema_true_in_then[2-2] PASSED [ 82%] tests/test_boolean_schema.py::test_boolean_schema_false_in_then[1-expected0] PASSED [ 82%] tests/test_boolean_schema.py::test_boolean_schema_false_in_then[2-2] PASSED [ 82%] tests/test_boolean_schema.py::test_boolean_schema_true_in_else[1-1] PASSED [ 82%] tests/test_boolean_schema.py::test_boolean_schema_true_in_else[2-2] PASSED [ 83%] tests/test_boolean_schema.py::test_boolean_schema_false_in_else[1-1] PASSED [ 83%] tests/test_boolean_schema.py::test_boolean_schema_false_in_else[2-expected1] PASSED [ 83%] tests/test_common.py::test_enum[1-1] PASSED [ 83%] tests/test_common.py::test_enum[2-2] PASSED [ 83%] tests/test_common.py::test_enum[12-expected2] PASSED [ 83%] tests/test_common.py::test_enum[a-a] PASSED [ 83%] tests/test_common.py::test_enum[aa-expected4] PASSED [ 83%] tests/test_common.py::test_types[0-0] PASSED [ 83%] tests/test_common.py::test_types[None-expected1] PASSED [ 83%] tests/test_common.py::test_types[True-expected2] PASSED [ 83%] tests/test_common.py::test_types[abc-abc] PASSED [ 83%] tests/test_common.py::test_types[value4-expected4] PASSED [ 83%] tests/test_common.py::test_types[value5-expected5] PASSED [ 83%] tests/test_common.py::test_all_of[qwert-qwert] PASSED [ 83%] tests/test_common.py::test_all_of[qwertz-expected1] PASSED [ 83%] tests/test_common.py::test_any_of[0-0] PASSED [ 83%] tests/test_common.py::test_any_of[None-expected1] PASSED [ 83%] tests/test_common.py::test_any_of[True-expected2] PASSED [ 83%] tests/test_common.py::test_any_of[abc-abc] PASSED [ 83%] tests/test_common.py::test_any_of[value4-expected4] PASSED [ 84%] tests/test_common.py::test_any_of[value5-expected5] PASSED [ 84%] tests/test_common.py::test_one_of[0-expected0] PASSED [ 84%] tests/test_common.py::test_one_of[2-expected1] PASSED [ 84%] tests/test_common.py::test_one_of[9-9] PASSED [ 84%] tests/test_common.py::test_one_of[10-10] PASSED [ 84%] tests/test_common.py::test_one_of[15-expected4] PASSED [ 84%] tests/test_common.py::test_one_of_factorized[0-expected0] PASSED [ 84%] tests/test_common.py::test_one_of_factorized[2-expected1] PASSED [ 84%] tests/test_common.py::test_one_of_factorized[9-9] PASSED [ 84%] tests/test_common.py::test_one_of_factorized[10-10] PASSED [ 84%] tests/test_common.py::test_one_of_factorized[15-expected4] PASSED [ 84%] tests/test_common.py::test_not[0-expected0] PASSED [ 84%] tests/test_common.py::test_not[True-True] PASSED [ 84%] tests/test_common.py::test_not[abc-abc] PASSED [ 84%] tests/test_common.py::test_not[value3-expected3] PASSED [ 84%] tests/test_common.py::test_not[value4-expected4] PASSED [ 84%] tests/test_compile_to_code.py::test_compile_to_code PASSED [ 84%] tests/test_compile_to_code.py::test_compile_to_code_ipv6_regex PASSED [ 84%] tests/test_compile_to_code.py::test_compile_complex_one_of_all_of PASSED [ 84%] tests/test_compile_to_code.py::test_compile_to_code_custom_format PASSED [ 84%] tests/test_compile_to_code.py::test_compile_to_code_custom_format_with_refs PASSED [ 85%] tests/test_composition.py::test_composition[oneOf-10] PASSED [ 85%] tests/test_composition.py::test_composition[allOf-15] PASSED [ 85%] tests/test_composition.py::test_composition[anyOf-9] PASSED [ 85%] tests/test_composition.py::test_ref_is_expanded_on_composition_error[oneOf-2] PASSED [ 85%] tests/test_composition.py::test_ref_is_expanded_on_composition_error[anyOf-2] PASSED [ 85%] tests/test_composition.py::test_ref_is_expanded_on_composition_error[allOf-3] PASSED [ 85%] tests/test_composition.py::test_ref_is_expanded_with_resolver[oneOf-2] PASSED [ 85%] tests/test_composition.py::test_ref_is_expanded_with_resolver[anyOf-2] PASSED [ 85%] tests/test_composition.py::test_ref_is_expanded_with_resolver[allOf-3] PASSED [ 85%] tests/test_composition.py::test_ref_in_conditional PASSED [ 85%] tests/test_const.py::test_const[foo-False] PASSED [ 85%] tests/test_const.py::test_const[42-False] PASSED [ 85%] tests/test_const.py::test_const[False-False] PASSED [ 85%] tests/test_const.py::test_const[value3-False] PASSED [ 85%] tests/test_const.py::test_const['"-False0] PASSED [ 85%] tests/test_const.py::test_const[foo-True] PASSED [ 85%] tests/test_const.py::test_const['"-False1] PASSED [ 85%] tests/test_default.py::test_default_in_object[None-expected0] PASSED [ 85%] tests/test_default.py::test_default_in_object[value1-expected1] PASSED [ 85%] tests/test_default.py::test_default_in_object[value2-expected2] PASSED [ 85%] tests/test_default.py::test_default_in_object[value3-expected3] PASSED [ 86%] tests/test_default.py::test_default_in_object[value4-expected4] PASSED [ 86%] tests/test_default.py::test_default_in_array[None-expected0] PASSED [ 86%] tests/test_default.py::test_default_in_array[value1-expected1] PASSED [ 86%] tests/test_default.py::test_default_in_array[value2-expected2] PASSED [ 86%] tests/test_default.py::test_default_in_array[value3-expected3] PASSED [ 86%] tests/test_default.py::test_default_turned_off PASSED [ 86%] tests/test_examples.py::test_validate[path_with_definition] PASSED [ 86%] tests/test_examples.py::test_validate[issue-109] PASSED [ 86%] tests/test_examples.py::test_validate[issue-109-regex-only] PASSED [ 86%] tests/test_examples.py::test_validate[conditional] PASSED [ 86%] tests/test_exceptions.py::test_exception_variable_path[data-expected0] PASSED [ 86%] tests/test_exceptions.py::test_exception_variable_path[data[0]-expected1] PASSED [ 86%] tests/test_exceptions.py::test_exception_variable_path[data.foo-expected2] PASSED [ 86%] tests/test_exceptions.py::test_exception_variable_path[data[1].bar-expected3] PASSED [ 86%] tests/test_exceptions.py::test_exception_variable_path[data.foo[2]-expected4] PASSED [ 86%] tests/test_exceptions.py::test_exception_variable_path[data.foo.bar[1][2]-expected5] PASSED [ 86%] tests/test_exceptions.py::test_exception_variable_path[data[1][2].foo.bar-expected6] PASSED [ 86%] tests/test_exceptions.py::test_exception_rule_definition[None-None-None] PASSED [ 86%] tests/test_exceptions.py::test_exception_rule_definition[definition1-None-None] PASSED [ 86%] tests/test_exceptions.py::test_exception_rule_definition[definition2-None-None] PASSED [ 86%] tests/test_exceptions.py::test_exception_rule_definition[definition3-unique-None] PASSED [ 87%] tests/test_exceptions.py::test_exception_rule_definition[definition4-type-string] PASSED [ 87%] tests/test_exceptions.py::test_exception_rule_definition[None-type-None] PASSED [ 87%] tests/test_format.py::test_datetime[-expected0] PASSED [ 87%] tests/test_format.py::test_datetime[bla-expected1] PASSED [ 87%] tests/test_format.py::test_datetime[2018-02-05T14:17:10.00-expected2] PASSED [ 87%] tests/test_format.py::test_datetime[2018-02-05T14:17:10.00Z\n-expected3] PASSED [ 87%] tests/test_format.py::test_datetime[2018-02-05T14:17:10.00Z-2018-02-05T14:17:10.00Z] PASSED [ 87%] tests/test_format.py::test_datetime[2018-02-05T14:17:10Z-2018-02-05T14:17:10Z] PASSED [ 87%] tests/test_format.py::test_datetime[2020-09-09T01:01:01+0100-2020-09-09T01:01:01+0100] PASSED [ 87%] tests/test_format.py::test_hostname[-expected0] PASSED [ 87%] tests/test_format.py::test_hostname[LDhsjf878&d-expected1] PASSED [ 87%] tests/test_format.py::test_hostname[bla.bla--expected2] PASSED [ 87%] tests/test_format.py::test_hostname[example.example.com--expected3] PASSED [ 87%] tests/test_format.py::test_hostname[example.example.com\n-expected4] PASSED [ 87%] tests/test_format.py::test_hostname[localhost-localhost] PASSED [ 87%] tests/test_format.py::test_hostname[example.com-example.com] PASSED [ 87%] tests/test_format.py::test_hostname[example.de-example.de] PASSED [ 87%] tests/test_format.py::test_hostname[example.fr-example.fr] PASSED [ 87%] tests/test_format.py::test_hostname[example.example.com-example.example.com] PASSED [ 87%] tests/test_format.py::test_custom_format[-expected0-^[ab]$] PASSED [ 88%] tests/test_format.py::test_custom_format[-expected1-] PASSED [ 88%] tests/test_format.py::test_custom_format[a-a-^[ab]$] PASSED [ 88%] tests/test_format.py::test_custom_format[a-a-] PASSED [ 88%] tests/test_format.py::test_custom_format[c-expected4-^[ab]$] PASSED [ 88%] tests/test_format.py::test_custom_format[c-expected5-] PASSED [ 88%] tests/test_format.py::test_custom_format_override PASSED [ 88%] tests/test_integration.py::test_integration[value0-expected0] PASSED [ 88%] tests/test_integration.py::test_integration[value1-expected1] PASSED [ 88%] tests/test_integration.py::test_integration[value2-expected2] PASSED [ 88%] tests/test_integration.py::test_integration[value3-expected3] PASSED [ 88%] tests/test_integration.py::test_integration[value4-expected4] PASSED [ 88%] tests/test_integration.py::test_integration[value5-expected5] PASSED [ 88%] tests/test_integration.py::test_integration[value6-expected6] PASSED [ 88%] tests/test_integration.py::test_integration[value7-expected7] PASSED [ 88%] tests/test_integration.py::test_integration[value8-expected8] PASSED [ 88%] tests/test_integration.py::test_integration[value9-expected9] PASSED [ 88%] tests/test_integration.py::test_integration[value10-expected10] PASSED [ 88%] tests/test_integration.py::test_integration[value11-expected11] PASSED [ 88%] tests/test_integration.py::test_integration[value12-expected12] PASSED [ 88%] tests/test_integration.py::test_integration[value13-expected13] PASSED [ 88%] tests/test_integration.py::test_integration[value14-expected14] PASSED [ 89%] tests/test_integration.py::test_any_of_with_patterns PASSED [ 89%] tests/test_integration.py::test_swap_handlers PASSED [ 89%] tests/test_null.py::test_null[0-expected0] PASSED [ 89%] tests/test_null.py::test_null[None-None] PASSED [ 89%] tests/test_null.py::test_null[True-expected2] PASSED [ 89%] tests/test_null.py::test_null[abc-expected3] PASSED [ 89%] tests/test_null.py::test_null[value4-expected4] PASSED [ 89%] tests/test_null.py::test_null[value5-expected5] PASSED [ 89%] tests/test_number.py::test_number[number--5--5] PASSED [ 89%] tests/test_number.py::test_number[number-0-0] PASSED [ 89%] tests/test_number.py::test_number[number-5-5] PASSED [ 89%] tests/test_number.py::test_number[number-None-expected3] PASSED [ 89%] tests/test_number.py::test_number[number-True-expected4] PASSED [ 89%] tests/test_number.py::test_number[number-abc-expected5] PASSED [ 89%] tests/test_number.py::test_number[number-value6-expected6] PASSED [ 89%] tests/test_number.py::test_number[number-value7-expected7] PASSED [ 89%] tests/test_number.py::test_number[integer--5--5] PASSED [ 89%] tests/test_number.py::test_number[integer-0-0] PASSED [ 89%] tests/test_number.py::test_number[integer-5-5] PASSED [ 89%] tests/test_number.py::test_number[integer-None-expected3] PASSED [ 89%] tests/test_number.py::test_number[integer-True-expected4] PASSED [ 90%] tests/test_number.py::test_number[integer-abc-expected5] PASSED [ 90%] tests/test_number.py::test_number[integer-value6-expected6] PASSED [ 90%] tests/test_number.py::test_number[integer-value7-expected7] PASSED [ 90%] tests/test_number.py::test_maximum[number--5--5] PASSED [ 90%] tests/test_number.py::test_maximum[number-5-5] PASSED [ 90%] tests/test_number.py::test_maximum[number-9-9] PASSED [ 90%] tests/test_number.py::test_maximum[number-10-10] PASSED [ 90%] tests/test_number.py::test_maximum[number-11-expected4] PASSED [ 90%] tests/test_number.py::test_maximum[number-20-expected5] PASSED [ 90%] tests/test_number.py::test_maximum[integer--5--5] PASSED [ 90%] tests/test_number.py::test_maximum[integer-5-5] PASSED [ 90%] tests/test_number.py::test_maximum[integer-9-9] PASSED [ 90%] tests/test_number.py::test_maximum[integer-10-10] PASSED [ 90%] tests/test_number.py::test_maximum[integer-11-expected4] PASSED [ 90%] tests/test_number.py::test_maximum[integer-20-expected5] PASSED [ 90%] tests/test_number.py::test_exclusive_maximum[number--5--5] PASSED [ 90%] tests/test_number.py::test_exclusive_maximum[number-5-5] PASSED [ 90%] tests/test_number.py::test_exclusive_maximum[number-9-9] PASSED [ 90%] tests/test_number.py::test_exclusive_maximum[number-10-expected3] PASSED [ 90%] tests/test_number.py::test_exclusive_maximum[number-11-expected4] PASSED [ 91%] tests/test_number.py::test_exclusive_maximum[number-20-expected5] PASSED [ 91%] tests/test_number.py::test_exclusive_maximum[integer--5--5] PASSED [ 91%] tests/test_number.py::test_exclusive_maximum[integer-5-5] PASSED [ 91%] tests/test_number.py::test_exclusive_maximum[integer-9-9] PASSED [ 91%] tests/test_number.py::test_exclusive_maximum[integer-10-expected3] PASSED [ 91%] tests/test_number.py::test_exclusive_maximum[integer-11-expected4] PASSED [ 91%] tests/test_number.py::test_exclusive_maximum[integer-20-expected5] PASSED [ 91%] tests/test_number.py::test_minimum[number--5-expected0] PASSED [ 91%] tests/test_number.py::test_minimum[number-9-expected1] PASSED [ 91%] tests/test_number.py::test_minimum[number-10-10] PASSED [ 91%] tests/test_number.py::test_minimum[number-11-11] PASSED [ 91%] tests/test_number.py::test_minimum[number-20-20] PASSED [ 91%] tests/test_number.py::test_minimum[integer--5-expected0] PASSED [ 91%] tests/test_number.py::test_minimum[integer-9-expected1] PASSED [ 91%] tests/test_number.py::test_minimum[integer-10-10] PASSED [ 91%] tests/test_number.py::test_minimum[integer-11-11] PASSED [ 91%] tests/test_number.py::test_minimum[integer-20-20] PASSED [ 91%] tests/test_number.py::test_exclusive_minimum[number--5-expected0] PASSED [ 91%] tests/test_number.py::test_exclusive_minimum[number-9-expected1] PASSED [ 91%] tests/test_number.py::test_exclusive_minimum[number-10-expected2] PASSED [ 91%] tests/test_number.py::test_exclusive_minimum[number-11-11] PASSED [ 92%] tests/test_number.py::test_exclusive_minimum[number-20-20] PASSED [ 92%] tests/test_number.py::test_exclusive_minimum[integer--5-expected0] PASSED [ 92%] tests/test_number.py::test_exclusive_minimum[integer-9-expected1] PASSED [ 92%] tests/test_number.py::test_exclusive_minimum[integer-10-expected2] PASSED [ 92%] tests/test_number.py::test_exclusive_minimum[integer-11-11] PASSED [ 92%] tests/test_number.py::test_exclusive_minimum[integer-20-20] PASSED [ 92%] tests/test_number.py::test_multiple_of[number--4-expected0] PASSED [ 92%] tests/test_number.py::test_multiple_of[number--3--3] PASSED [ 92%] tests/test_number.py::test_multiple_of[number--2-expected2] PASSED [ 92%] tests/test_number.py::test_multiple_of[number--1-expected3] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-0-0] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-1-expected5] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-2-expected6] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-3-3] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-4-expected8] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-5-expected9] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-6-6] PASSED [ 92%] tests/test_number.py::test_multiple_of[number-7-expected11] PASSED [ 92%] tests/test_number.py::test_multiple_of[integer--4-expected0] PASSED [ 92%] tests/test_number.py::test_multiple_of[integer--3--3] PASSED [ 92%] tests/test_number.py::test_multiple_of[integer--2-expected2] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer--1-expected3] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-0-0] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-1-expected5] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-2-expected6] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-3-3] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-4-expected8] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-5-expected9] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-6-6] PASSED [ 93%] tests/test_number.py::test_multiple_of[integer-7-expected11] PASSED [ 93%] tests/test_number.py::test_multiple_of_float[0.00751-expected0] PASSED [ 93%] tests/test_number.py::test_multiple_of_float[0.0075-0.0075] PASSED [ 93%] tests/test_number.py::test_multiple_of_float_1_5[0-0] PASSED [ 93%] tests/test_number.py::test_multiple_of_float_1_5[0.01-0.01] PASSED [ 93%] tests/test_number.py::test_multiple_of_float_1_5[0.1-0.1] PASSED [ 93%] tests/test_number.py::test_multiple_of_float_1_5[19.01-19.01] PASSED [ 93%] tests/test_number.py::test_multiple_of_float_1_5[0.001-expected4] PASSED [ 93%] tests/test_number.py::test_multiple_of_float_1_5[19.001-expected5] PASSED [ 93%] tests/test_number.py::test_integer_is_not_number[1.0] PASSED [ 93%] tests/test_number.py::test_integer_is_not_number[0.1] PASSED [ 93%] tests/test_number.py::test_integer_is_not_number[0.01] PASSED [ 94%] tests/test_number.py::test_integer_is_not_number[0.001] PASSED [ 94%] tests/test_number.py::test_number_allows_float[1.0] PASSED [ 94%] tests/test_number.py::test_number_allows_float[0.1] PASSED [ 94%] tests/test_number.py::test_number_allows_float[0.01] PASSED [ 94%] tests/test_number.py::test_number_allows_float[0.001] PASSED [ 94%] tests/test_number.py::test_number_allows_decimal[value0] PASSED [ 94%] tests/test_number.py::test_number_allows_decimal[value1] PASSED [ 94%] tests/test_number.py::test_number_allows_decimal[value2] PASSED [ 94%] tests/test_number.py::test_number_allows_decimal[value3] PASSED [ 94%] tests/test_object.py::test_object[0-expected0] PASSED [ 94%] tests/test_object.py::test_object[None-expected1] PASSED [ 94%] tests/test_object.py::test_object[True-expected2] PASSED [ 94%] tests/test_object.py::test_object[False-expected3] PASSED [ 94%] tests/test_object.py::test_object[abc-expected4] PASSED [ 94%] tests/test_object.py::test_object[value5-expected5] PASSED [ 94%] tests/test_object.py::test_object[value6-expected6] PASSED [ 94%] tests/test_object.py::test_object[value7-expected7] PASSED [ 94%] tests/test_object.py::test_max_properties[value0-expected0] PASSED [ 94%] tests/test_object.py::test_max_properties[value1-expected1] PASSED [ 94%] tests/test_object.py::test_max_properties[value2-expected2] PASSED [ 94%] tests/test_object.py::test_min_properties[value0-expected0] PASSED [ 95%] tests/test_object.py::test_min_properties[value1-expected1] PASSED [ 95%] tests/test_object.py::test_min_properties[value2-expected2] PASSED [ 95%] tests/test_object.py::test_required[value0-expected0] PASSED [ 95%] tests/test_object.py::test_required[value1-expected1] PASSED [ 95%] tests/test_object.py::test_required[value2-expected2] PASSED [ 95%] tests/test_object.py::test_properties[value0-expected0] PASSED [ 95%] tests/test_object.py::test_properties[value1-expected1] PASSED [ 95%] tests/test_object.py::test_properties[value2-expected2] PASSED [ 95%] tests/test_object.py::test_properties[value3-expected3] PASSED [ 95%] tests/test_object.py::test_properties[value4-expected4] PASSED [ 95%] tests/test_object.py::test_invalid_properties PASSED [ 95%] tests/test_object.py::test_properties_with_additional_properties[value0-expected0] PASSED [ 95%] tests/test_object.py::test_properties_with_additional_properties[value1-expected1] PASSED [ 95%] tests/test_object.py::test_properties_with_additional_properties[value2-expected2] PASSED [ 95%] tests/test_object.py::test_properties_with_additional_properties[value3-expected3] PASSED [ 95%] tests/test_object.py::test_properties_with_additional_properties[value4-expected4] PASSED [ 95%] tests/test_object.py::test_properties_with_additional_properties[value5-expected5] PASSED [ 95%] tests/test_object.py::test_properties_without_additional_properties[value0-expected0] PASSED [ 95%] tests/test_object.py::test_properties_without_additional_properties[value1-expected1] PASSED [ 95%] tests/test_object.py::test_properties_without_additional_properties[value2-expected2] PASSED [ 95%] tests/test_object.py::test_properties_without_additional_properties[value3-expected3] PASSED [ 96%] tests/test_object.py::test_properties_without_additional_properties[value4-expected4] PASSED [ 96%] tests/test_object.py::test_properties_without_additional_properties[value5-expected5] PASSED [ 96%] tests/test_object.py::test_properties_without_additional_properties[value6-expected6] PASSED [ 96%] tests/test_object.py::test_pattern_properties[value0-expected0] PASSED [ 96%] tests/test_object.py::test_pattern_properties[value1-expected1] PASSED [ 96%] tests/test_object.py::test_pattern_properties[value2-expected2] PASSED [ 96%] tests/test_object.py::test_pattern_properties[value3-expected3] PASSED [ 96%] tests/test_object.py::test_pattern_properties[value4-expected4] PASSED [ 96%] tests/test_object.py::test_additional_properties[value0-expected0] PASSED [ 96%] tests/test_object.py::test_additional_properties[value1-expected1] PASSED [ 96%] tests/test_object.py::test_additional_properties[value2-expected2] PASSED [ 96%] tests/test_object.py::test_additional_properties[value3-expected3] PASSED [ 96%] tests/test_object.py::test_additional_properties[value4-expected4] PASSED [ 96%] tests/test_object.py::test_any_additional_properties[value0-expected0] PASSED [ 96%] tests/test_object.py::test_any_additional_properties[value1-expected1] PASSED [ 96%] tests/test_object.py::test_any_additional_properties[value2-expected2] PASSED [ 96%] tests/test_object.py::test_any_additional_properties[value3-expected3] PASSED [ 96%] tests/test_object.py::test_any_additional_properties[value4-expected4] PASSED [ 96%] tests/test_object.py::test_any_additional_properties[value5-expected5] PASSED [ 96%] tests/test_object.py::test_any_additional_properties[value6-expected6] PASSED [ 97%] tests/test_object.py::test_any_additional_properties[value7-expected7] PASSED [ 97%] tests/test_object.py::test_object_with_id_property[value0-expected0] PASSED [ 97%] tests/test_object.py::test_object_with_id_property[value1-expected1] PASSED [ 97%] tests/test_object.py::test_object_with_ref_property[value0-expected0] PASSED [ 97%] tests/test_object.py::test_object_with_ref_property[value1-expected1] PASSED [ 97%] tests/test_object.py::test_dependencies[value0-expected0] PASSED [ 97%] tests/test_object.py::test_dependencies[value1-expected1] PASSED [ 97%] tests/test_object.py::test_dependencies[value2-expected2] PASSED [ 97%] tests/test_object.py::test_full_name_after_ref[value0-expected0] PASSED [ 97%] tests/test_pattern_properties.py::test_dont_override_variable_names PASSED [ 97%] tests/test_pattern_properties.py::test_clear_variables PASSED [ 97%] tests/test_pattern_properties.py::test_pattern_with_escape PASSED [ 97%] tests/test_pattern_properties.py::test_pattern_with_escape_no_warnings PASSED [ 97%] tests/test_pattern_serialization.py::test_serialize_regexes PASSED [ 97%] tests/test_security.py::test_not_generate_code_from_definition[schema0] PASSED [ 97%] tests/test_security.py::test_not_generate_code_from_definition[schema1] PASSED [ 97%] tests/test_security.py::test_not_generate_code_from_definition[schema2] PASSED [ 97%] tests/test_security.py::test_not_generate_code_from_definition[schema3] PASSED [ 97%] tests/test_security.py::test_not_generate_code_from_definition[schema4] PASSED [ 97%] tests/test_security.py::test_not_generate_code_from_definition[schema5] PASSED [ 97%] tests/test_security.py::test_not_generate_code_from_definition[schema6] PASSED [ 98%] tests/test_security.py::test_not_generate_code_from_definition[schema7] PASSED [ 98%] tests/test_security.py::test_not_generate_code_from_definition[schema8] PASSED [ 98%] tests/test_security.py::test_not_generate_code_from_definition[schema9] PASSED [ 98%] tests/test_security.py::test_not_generate_code_from_definition[schema10] PASSED [ 98%] tests/test_security.py::test_not_generate_code_from_definition[schema11] PASSED [ 98%] tests/test_security.py::test_not_generate_code_from_definition[schema12] PASSED [ 98%] tests/test_security.py::test_not_generate_code_from_definition[schema13] PASSED [ 98%] tests/test_security.py::test_generate_code_with_proper_variable_names[schema0-validate(10)] PASSED [ 98%] tests/test_security.py::test_generate_code_with_proper_variable_names[schema1-" validate"10" "] PASSED [ 98%] tests/test_security.py::test_generate_code_with_proper_variable_names[schema2-' validate'10' '] PASSED [ 98%] tests/test_security.py::test_generate_code_with_proper_variable_names[schema3-' validate"10" '] PASSED [ 98%] tests/test_security.py::test_generate_code_with_proper_variable_names[schema4-value4] PASSED [ 98%] tests/test_security.py::test_generate_code_with_proper_variable_names[schema5-value5] PASSED [ 98%] tests/test_security.py::test_generate_code_without_overriding_variables PASSED [ 98%] tests/test_string.py::test_string[0-expected0] PASSED [ 98%] tests/test_string.py::test_string[None-expected1] PASSED [ 98%] tests/test_string.py::test_string[True-expected2] PASSED [ 98%] tests/test_string.py::test_string[-] PASSED [ 98%] tests/test_string.py::test_string[abc-abc] PASSED [ 98%] tests/test_string.py::test_string[value5-expected5] PASSED [ 98%] tests/test_string.py::test_string[value6-expected6] PASSED [ 99%] tests/test_string.py::test_max_length[-] PASSED [ 99%] tests/test_string.py::test_max_length[qwer-qwer] PASSED [ 99%] tests/test_string.py::test_max_length[qwert-qwert] PASSED [ 99%] tests/test_string.py::test_max_length[qwertz-expected3] PASSED [ 99%] tests/test_string.py::test_max_length[qwertzuiop-expected4] PASSED [ 99%] tests/test_string.py::test_min_length[-expected0] PASSED [ 99%] tests/test_string.py::test_min_length[qwer-expected1] PASSED [ 99%] tests/test_string.py::test_min_length[qwert-qwert] PASSED [ 99%] tests/test_string.py::test_min_length[qwertz-qwertz] PASSED [ 99%] tests/test_string.py::test_min_length[qwertzuiop-qwertzuiop] PASSED [ 99%] tests/test_string.py::test_pattern[-expected0] PASSED [ 99%] tests/test_string.py::test_pattern[aacc-expected1] PASSED [ 99%] tests/test_string.py::test_pattern[aaccc-aaccc] PASSED [ 99%] tests/test_string.py::test_pattern[aacd-aacd] PASSED [ 99%] tests/test_string.py::test_pattern[aacd\n-expected4] PASSED [ 99%] tests/test_string.py::test_pattern_with_space[ ] PASSED [ 99%] tests/test_string.py::test_pattern_with_space[\\x20] PASSED [ 99%] tests/test_string.py::test_pattern_with_escape_no_warnings PASSED [ 99%] tests/test_string.py::test_regex_pattern[[a-z]-[a-z]] PASSED [ 99%] tests/test_string.py::test_regex_pattern[[a-z-expected1] PASSED [100%] ================================== XFAILURES =================================== _____ test[definitions.json / valid definition / valid definition schema] ______ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-04/schema' schema = {'$ref': 'http://json-schema.org/draft-04/schema#'} data = {'definitions': {'foo': {'type': 'integer'}}}, is_valid = True def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError ___ test[definitions.json / invalid definition / invalid definition schema] ____ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-04/schema' schema = {'$ref': 'http://json-schema.org/draft-04/schema#'} data = {'definitions': {'foo': {'type': 1}}}, is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError _ test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] _ schema_version = 'http://json-schema.org/draft-04/schema' schema = {'$schema': 'http://json-schema.org/draft-04/schema', 'format': 'regex'} data = '^\\S(|(.|\\n)*\\S)\\Z', is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) print(debug_generator.global_state_code) print(debug_generator.func_code) # JSON schema test suits do not contain schema version. # Our library needs to know that or it would use always the latest implementation. if isinstance(schema, dict): schema.setdefault('$schema', schema_version) validate = compile(schema, handlers={'http': remotes_handler}) try: result = validate(data) print('Validate result:', result) except JsonSchemaValueException: if is_valid: raise else: if not is_valid: > pytest.fail('Test should not pass') E Failed: Test should not pass tests/json_schema/utils.py:98: Failed ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal from fastjsonschema import JsonSchemaValueException NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): try: re.compile(data) except Exception: raise JsonSchemaValueException("" + (name_prefix or "data") + " must be a valid regex", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'regex'}, rule='format') return data Validate result: ^\S(|(.|\n)*\S)\Z ____ test[ref.json / remote ref, containing refs itself / remote ref valid] ____ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-04/schema' schema = {'$ref': 'http://json-schema.org/draft-04/schema#'} data = {'minLength': 1}, is_valid = True def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError ___ test[ref.json / remote ref, containing refs itself / remote ref invalid] ___ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-04/schema' schema = {'$ref': 'http://json-schema.org/draft-04/schema#'} data = {'minLength': -1}, is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError _____ test[definitions.json / valid definition / valid definition schema] ______ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-06/schema' schema = {'$ref': 'http://json-schema.org/draft-06/schema#'} data = {'definitions': {'foo': {'type': 'integer'}}}, is_valid = True def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError ___ test[definitions.json / invalid definition / invalid definition schema] ____ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-06/schema' schema = {'$ref': 'http://json-schema.org/draft-06/schema#'} data = {'definitions': {'foo': {'type': 1}}}, is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError _ test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] _ schema_version = 'http://json-schema.org/draft-06/schema' schema = {'$schema': 'http://json-schema.org/draft-06/schema', 'format': 'regex'} data = '^\\S(|(.|\\n)*\\S)\\Z', is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) print(debug_generator.global_state_code) print(debug_generator.func_code) # JSON schema test suits do not contain schema version. # Our library needs to know that or it would use always the latest implementation. if isinstance(schema, dict): schema.setdefault('$schema', schema_version) validate = compile(schema, handlers={'http': remotes_handler}) try: result = validate(data) print('Validate result:', result) except JsonSchemaValueException: if is_valid: raise else: if not is_valid: > pytest.fail('Test should not pass') E Failed: Test should not pass tests/json_schema/utils.py:98: Failed ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal from fastjsonschema import JsonSchemaValueException NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): try: re.compile(data) except Exception: raise JsonSchemaValueException("" + (name_prefix or "data") + " must be a valid regex", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'regex'}, rule='format') return data Validate result: ^\S(|(.|\n)*\S)\Z ____ test[ref.json / remote ref, containing refs itself / remote ref valid] ____ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-06/schema' schema = {'$ref': 'http://json-schema.org/draft-06/schema#'} data = {'minLength': 1}, is_valid = True def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError ___ test[ref.json / remote ref, containing refs itself / remote ref invalid] ___ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-06/schema' schema = {'$ref': 'http://json-schema.org/draft-06/schema#'} data = {'minLength': -1}, is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError _____ test[definitions.json / valid definition / valid definition schema] ______ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-07/schema' schema = {'$ref': 'http://json-schema.org/draft-07/schema#'} data = {'definitions': {'foo': {'type': 'integer'}}}, is_valid = True def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError ___ test[definitions.json / invalid definition / invalid definition schema] ____ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-07/schema' schema = {'$ref': 'http://json-schema.org/draft-07/schema#'} data = {'definitions': {'foo': {'type': 1}}}, is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError _ test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] _ schema_version = 'http://json-schema.org/draft-07/schema' schema = {'$schema': 'http://json-schema.org/draft-07/schema', 'format': 'regex'} data = '^\\S(|(.|\\n)*\\S)\\Z', is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) print(debug_generator.global_state_code) print(debug_generator.func_code) # JSON schema test suits do not contain schema version. # Our library needs to know that or it would use always the latest implementation. if isinstance(schema, dict): schema.setdefault('$schema', schema_version) validate = compile(schema, handlers={'http': remotes_handler}) try: result = validate(data) print('Validate result:', result) except JsonSchemaValueException: if is_valid: raise else: if not is_valid: > pytest.fail('Test should not pass') E Failed: Test should not pass tests/json_schema/utils.py:98: Failed ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal from fastjsonschema import JsonSchemaValueException NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): try: re.compile(data) except Exception: raise JsonSchemaValueException("" + (name_prefix or "data") + " must be a valid regex", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'regex'}, rule='format') return data Validate result: ^\S(|(.|\n)*\S)\Z _ test[idn-hostname.json / validation of internationalized host names / a valid host name (example.test in Hangul)] _ schema_version = 'http://json-schema.org/draft-07/schema' schema = {'format': 'idn-hostname'}, data = '실례.테스트', is_valid = True def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:145: in generate_validation_function self.generate_func_code_block(definition, 'data', 'data', clear_variables=True) fastjsonschema/generator.py:160: in generate_func_code_block count = self._generate_func_code_block(definition) fastjsonschema/draft06.py:36: in _generate_func_code_block self.run_generate_functions(definition) fastjsonschema/generator.py:182: in run_generate_functions func() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def generate_format(self): """ Means that value have to be in specified format. For example date, email or other. .. code-block:: python {'format': 'email'} Valid value for this definition is user@example.com but not @username """ with self.l('if isinstance({variable}, str):'): format_ = self._definition['format'] # Checking custom formats - user is allowed to override default formats. if format_ in self._custom_formats: custom_format = self._custom_formats[format_] if isinstance(custom_format, str): self._generate_format(format_, format_ + '_re_pattern', custom_format) else: with self.l('if not custom_formats["{}"]({variable}):', format_): self.exc('{name} must be {}', format_, rule='format') elif format_ in self.FORMAT_REGEXS: format_regex = self.FORMAT_REGEXS[format_] self._generate_format(format_, format_ + '_re_pattern', format_regex) # Format regex is used only in meta schemas. elif format_ == 'regex': with self.l('try:', optimize=False): self.l('re.compile({variable})') with self.l('except Exception:'): self.exc('{name} must be a valid regex', rule='format') else: > raise JsonSchemaDefinitionException('Unknown format: {}'.format(format_)) E fastjsonschema.exceptions.JsonSchemaDefinitionException: Unknown format: idn-hostname fastjsonschema/draft04.py:277: JsonSchemaDefinitionException _ test[idn-hostname.json / validation of internationalized host names / illegal first char U+302E Hangul single dot tone mark] _ schema_version = 'http://json-schema.org/draft-07/schema' schema = {'format': 'idn-hostname'}, data = '〮실례.테스트', is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:145: in generate_validation_function self.generate_func_code_block(definition, 'data', 'data', clear_variables=True) fastjsonschema/generator.py:160: in generate_func_code_block count = self._generate_func_code_block(definition) fastjsonschema/draft06.py:36: in _generate_func_code_block self.run_generate_functions(definition) fastjsonschema/generator.py:182: in run_generate_functions func() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def generate_format(self): """ Means that value have to be in specified format. For example date, email or other. .. code-block:: python {'format': 'email'} Valid value for this definition is user@example.com but not @username """ with self.l('if isinstance({variable}, str):'): format_ = self._definition['format'] # Checking custom formats - user is allowed to override default formats. if format_ in self._custom_formats: custom_format = self._custom_formats[format_] if isinstance(custom_format, str): self._generate_format(format_, format_ + '_re_pattern', custom_format) else: with self.l('if not custom_formats["{}"]({variable}):', format_): self.exc('{name} must be {}', format_, rule='format') elif format_ in self.FORMAT_REGEXS: format_regex = self.FORMAT_REGEXS[format_] self._generate_format(format_, format_ + '_re_pattern', format_regex) # Format regex is used only in meta schemas. elif format_ == 'regex': with self.l('try:', optimize=False): self.l('re.compile({variable})') with self.l('except Exception:'): self.exc('{name} must be a valid regex', rule='format') else: > raise JsonSchemaDefinitionException('Unknown format: {}'.format(format_)) E fastjsonschema.exceptions.JsonSchemaDefinitionException: Unknown format: idn-hostname fastjsonschema/draft04.py:277: JsonSchemaDefinitionException _ test[idn-hostname.json / validation of internationalized host names / contains illegal char U+302E Hangul single dot tone mark] _ schema_version = 'http://json-schema.org/draft-07/schema' schema = {'format': 'idn-hostname'}, data = '실〮례.테스트', is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:145: in generate_validation_function self.generate_func_code_block(definition, 'data', 'data', clear_variables=True) fastjsonschema/generator.py:160: in generate_func_code_block count = self._generate_func_code_block(definition) fastjsonschema/draft06.py:36: in _generate_func_code_block self.run_generate_functions(definition) fastjsonschema/generator.py:182: in run_generate_functions func() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def generate_format(self): """ Means that value have to be in specified format. For example date, email or other. .. code-block:: python {'format': 'email'} Valid value for this definition is user@example.com but not @username """ with self.l('if isinstance({variable}, str):'): format_ = self._definition['format'] # Checking custom formats - user is allowed to override default formats. if format_ in self._custom_formats: custom_format = self._custom_formats[format_] if isinstance(custom_format, str): self._generate_format(format_, format_ + '_re_pattern', custom_format) else: with self.l('if not custom_formats["{}"]({variable}):', format_): self.exc('{name} must be {}', format_, rule='format') elif format_ in self.FORMAT_REGEXS: format_regex = self.FORMAT_REGEXS[format_] self._generate_format(format_, format_ + '_re_pattern', format_regex) # Format regex is used only in meta schemas. elif format_ == 'regex': with self.l('try:', optimize=False): self.l('re.compile({variable})') with self.l('except Exception:'): self.exc('{name} must be a valid regex', rule='format') else: > raise JsonSchemaDefinitionException('Unknown format: {}'.format(format_)) E fastjsonschema.exceptions.JsonSchemaDefinitionException: Unknown format: idn-hostname fastjsonschema/draft04.py:277: JsonSchemaDefinitionException _ test[idn-hostname.json / validation of internationalized host names / a host name with a component too long] _ schema_version = 'http://json-schema.org/draft-07/schema' schema = {'format': 'idn-hostname'} data = '실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실례례테스트례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례테스트례례실례.테스트' is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:145: in generate_validation_function self.generate_func_code_block(definition, 'data', 'data', clear_variables=True) fastjsonschema/generator.py:160: in generate_func_code_block count = self._generate_func_code_block(definition) fastjsonschema/draft06.py:36: in _generate_func_code_block self.run_generate_functions(definition) fastjsonschema/generator.py:182: in run_generate_functions func() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def generate_format(self): """ Means that value have to be in specified format. For example date, email or other. .. code-block:: python {'format': 'email'} Valid value for this definition is user@example.com but not @username """ with self.l('if isinstance({variable}, str):'): format_ = self._definition['format'] # Checking custom formats - user is allowed to override default formats. if format_ in self._custom_formats: custom_format = self._custom_formats[format_] if isinstance(custom_format, str): self._generate_format(format_, format_ + '_re_pattern', custom_format) else: with self.l('if not custom_formats["{}"]({variable}):', format_): self.exc('{name} must be {}', format_, rule='format') elif format_ in self.FORMAT_REGEXS: format_regex = self.FORMAT_REGEXS[format_] self._generate_format(format_, format_ + '_re_pattern', format_regex) # Format regex is used only in meta schemas. elif format_ == 'regex': with self.l('try:', optimize=False): self.l('re.compile({variable})') with self.l('except Exception:'): self.exc('{name} must be a valid regex', rule='format') else: > raise JsonSchemaDefinitionException('Unknown format: {}'.format(format_)) E fastjsonschema.exceptions.JsonSchemaDefinitionException: Unknown format: idn-hostname fastjsonschema/draft04.py:277: JsonSchemaDefinitionException ______ test[iri.json / validation of IRIs / an invalid IRI based on IPv6] ______ schema_version = 'http://json-schema.org/draft-07/schema' schema = {'$schema': 'http://json-schema.org/draft-07/schema', 'format': 'iri'} data = 'http://2001:0db8:85a3:0000:0000:8a2e:0370:7334', is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) print(debug_generator.global_state_code) print(debug_generator.func_code) # JSON schema test suits do not contain schema version. # Our library needs to know that or it would use always the latest implementation. if isinstance(schema, dict): schema.setdefault('$schema', schema_version) validate = compile(schema, handlers={'http': remotes_handler}) try: result = validate(data) print('Validate result:', result) except JsonSchemaValueException: if is_valid: raise else: if not is_valid: > pytest.fail('Test should not pass') E Failed: Test should not pass tests/json_schema/utils.py:98: Failed ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data Validate result: http://2001:0db8:85a3:0000:0000:8a2e:0370:7334 ____ test[ref.json / remote ref, containing refs itself / remote ref valid] ____ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-07/schema' schema = {'$ref': 'http://json-schema.org/draft-07/schema#'} data = {'minLength': 1}, is_valid = True def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError ___ test[ref.json / remote ref, containing refs itself / remote ref invalid] ___ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: > h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) /usr/lib/python3.12/urllib/request.py:1344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.12/http/client.py:1331: in request self._send_request(method, url, body, headers, encode_chunked) /usr/lib/python3.12/http/client.py:1377: in _send_request self.endheaders(body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1326: in endheaders self._send_output(message_body, encode_chunked=encode_chunked) /usr/lib/python3.12/http/client.py:1085: in _send_output self.send(msg) /usr/lib/python3.12/http/client.py:1029: in send self.connect() /usr/lib/python3.12/http/client.py:995: in connect self.sock = self._create_connection( /usr/lib/python3.12/socket.py:828: in create_connection for res in getaddrinfo(host, port, 0, SOCK_STREAM): _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = 'json-schema.org', port = 80, family = 0 type = , proto = 0, flags = 0 def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): """Resolve host and port into list of address info entries. Translate the host/port argument into a sequence of 5-tuples that contain all the necessary arguments for creating a socket connected to that service. host is a domain name, a string representation of an IPv4/v6 address or None. port is a string service name such as 'http', a numeric port number or None. By passing None as the value of host and port, you can pass NULL to the underlying C API. The family, type and proto arguments can be optionally specified in order to narrow the list of addresses returned. Passing zero as a value for each of these arguments selects the full range of results. """ # We override this function since we want to translate the numeric family # and socket type values to enum constants. addrlist = [] > for res in _socket.getaddrinfo(host, port, family, type, proto, flags): E socket.gaierror: [Errno -3] Temporary failure in name resolution /usr/lib/python3.12/socket.py:963: gaierror During handling of the above exception, another exception occurred: schema_version = 'http://json-schema.org/draft-07/schema' schema = {'$ref': 'http://json-schema.org/draft-07/schema#'} data = {'minLength': -1}, is_valid = False def template_test(schema_version, schema, data, is_valid): """ Test function to be used (imported) in final test file to run the tests which are generated by `pytest_generate_tests` hook. """ # For debug purposes. When test fails, it will print stdout. resolver = RefResolver.from_schema(schema, handlers={'http': remotes_handler}) debug_generator = _get_code_generator_class(schema_version)(schema, resolver=resolver) > print(debug_generator.global_state_code) tests/json_schema/utils.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ fastjsonschema/generator.py:101: in global_state_code self._generate_func_code() fastjsonschema/generator.py:121: in _generate_func_code self.generate_func_code() fastjsonschema/generator.py:135: in generate_func_code self.generate_validation_function(uri, name) fastjsonschema/generator.py:143: in generate_validation_function with self._resolver.resolving(uri) as definition: /usr/lib/python3.12/contextlib.py:137: in __enter__ return next(self.gen) fastjsonschema/ref_resolver.py:134: in resolving schema = resolve_remote(uri, self.handlers) fastjsonschema/ref_resolver.py:59: in resolve_remote result = handlers[scheme](uri) tests/json_schema/utils.py:30: in remotes_handler req = urlopen(uri) /usr/lib/python3.12/urllib/request.py:215: in urlopen return opener.open(url, data, timeout) /usr/lib/python3.12/urllib/request.py:515: in open response = self._open(req, data) /usr/lib/python3.12/urllib/request.py:532: in _open result = self._call_chain(self.handle_open, protocol, protocol + /usr/lib/python3.12/urllib/request.py:492: in _call_chain result = func(*args) /usr/lib/python3.12/urllib/request.py:1373: in http_open return self.do_open(http.client.HTTPConnection, req) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = http_class = req = , http_conn_args = {} host = 'json-schema.org', h = headers = {'Connection': 'close', 'Host': 'json-schema.org', 'User-Agent': 'Python-urllib/3.12'} def do_open(self, http_class, req, **http_conn_args): """Return an HTTPResponse object for the request, using http_class. http_class must implement the HTTPConnection API from http.client. """ host = req.host if not host: raise URLError('no host given') # will parse host:port h = http_class(host, timeout=req.timeout, **http_conn_args) h.set_debuglevel(self._debuglevel) headers = dict(req.unredirected_hdrs) headers.update({k: v for k, v in req.headers.items() if k not in headers}) # TODO(jhylton): Should this be redesigned to handle # persistent connections? # We want to make an HTTP/1.1 request, but the addinfourl # class isn't prepared to deal with a persistent connection. # It will try to read all remaining data from the socket, # which will block while the server waits for the next request. # So make sure the connection gets closed after the (only) # request. headers["Connection"] = "close" headers = {name.title(): val for name, val in headers.items()} if req._tunnel_host: tunnel_headers = {} proxy_auth_hdr = "Proxy-Authorization" if proxy_auth_hdr in headers: tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] # Proxy-Authorization should not be sent to origin # server. del headers[proxy_auth_hdr] h.set_tunnel(req._tunnel_host, headers=tunnel_headers) try: try: h.request(req.get_method(), req.selector, req.data, headers, encode_chunked=req.has_header('Transfer-encoding')) except OSError as err: # timeout error > raise URLError(err) E urllib.error.URLError: /usr/lib/python3.12/urllib/request.py:1347: URLError =================================== XPASSES ==================================== ______ test[iri.json / validation of IRIs / a valid IRI with anchor tag] _______ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri'}, rule='format') return data Validate result: http://ƒøø.ßår/?∂éœ=πîx#πîüx _ test[iri.json / validation of IRIs / a valid IRI with anchor tag and parantheses] _ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data Validate result: http://ƒøø.com/blah_(wîkïpédiå)_blah#ßité-1 ___ test[iri.json / validation of IRIs / a valid IRI with URL-encoded stuff] ___ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data Validate result: http://ƒøø.ßår/?q=Test%20URL-encoded%20stuff _ test[iri.json / validation of IRIs / a valid IRI with many special characters] _ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data Validate result: http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com _______ test[iri.json / validation of IRIs / a valid IRI based on IPv6] ________ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data Validate result: http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334] ___ test[iri.json / validation of IRIs / an invalid relative IRI Reference] ____ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data _____________ test[iri.json / validation of IRIs / an invalid IRI] _____________ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data _ test[iri.json / validation of IRIs / an invalid IRI though valid IRI reference] _ ----------------------------- Captured stdout call ----------------------------- from decimal import Decimal import re from fastjsonschema import JsonSchemaValueException REGEX_PATTERNS = { 'iri_re_pattern': re.compile('^\\w+:(\\/?\\/?)[^\\s]+\\Z') } NoneType = type(None) def validate(data, custom_formats={}, name_prefix=None): if isinstance(data, str): if not REGEX_PATTERNS["iri_re_pattern"].match(data): raise JsonSchemaValueException("" + (name_prefix or "data") + " must be iri", value=data, name="" + (name_prefix or "data") + "", definition={'format': 'iri', '$schema': 'http://json-schema.org/draft-07/schema'}, rule='format') return data =========================== short test summary info ============================ XFAIL tests/json_schema/test_draft04.py::test[definitions.json / valid definition / valid definition schema] XFAIL tests/json_schema/test_draft04.py::test[definitions.json / invalid definition / invalid definition schema] XFAIL tests/json_schema/test_draft04.py::test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] XFAIL tests/json_schema/test_draft04.py::test[ref.json / remote ref, containing refs itself / remote ref valid] XFAIL tests/json_schema/test_draft04.py::test[ref.json / remote ref, containing refs itself / remote ref invalid] XFAIL tests/json_schema/test_draft06.py::test[definitions.json / valid definition / valid definition schema] XFAIL tests/json_schema/test_draft06.py::test[definitions.json / invalid definition / invalid definition schema] XFAIL tests/json_schema/test_draft06.py::test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] XFAIL tests/json_schema/test_draft06.py::test[ref.json / remote ref, containing refs itself / remote ref valid] XFAIL tests/json_schema/test_draft06.py::test[ref.json / remote ref, containing refs itself / remote ref invalid] XFAIL tests/json_schema/test_draft07.py::test[definitions.json / valid definition / valid definition schema] XFAIL tests/json_schema/test_draft07.py::test[definitions.json / invalid definition / invalid definition schema] XFAIL tests/json_schema/test_draft07.py::test[ecmascript-regex.json / ECMA 262 regex non-compliance / ECMA 262 has no support for \\Z anchor from .NET] XFAIL tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / a valid host name (example.test in Hangul)] XFAIL tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / illegal first char U+302E Hangul single dot tone mark] XFAIL tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / contains illegal char U+302E Hangul single dot tone mark] XFAIL tests/json_schema/test_draft07.py::test[idn-hostname.json / validation of internationalized host names / a host name with a component too long] XFAIL tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid IRI based on IPv6] XFAIL tests/json_schema/test_draft07.py::test[ref.json / remote ref, containing refs itself / remote ref valid] XFAIL tests/json_schema/test_draft07.py::test[ref.json / remote ref, containing refs itself / remote ref invalid] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with anchor tag] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with anchor tag and parantheses] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with URL-encoded stuff] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI with many special characters] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / a valid IRI based on IPv6] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid relative IRI Reference] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid IRI] XPASS tests/json_schema/test_draft07.py::test[iri.json / validation of IRIs / an invalid IRI though valid IRI reference] ========= 2041 passed, 12 deselected, 20 xfailed, 8 xpassed in 25.00s ========== INFO : Command's result: OK + exit 0 Processing files: python3-module-fastjsonschema-2.18.1-alt1.1 Executing(%doc): /bin/sh -e /usr/src/tmp/rpm-tmp.28809 + umask 022 + /bin/mkdir -p /usr/src/RPM/BUILD + cd /usr/src/RPM/BUILD + cd python3-module-fastjsonschema-2.18.1 + DOCDIR=/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/share/doc/python3-module-fastjsonschema-2.18.1 + export DOCDIR + rm -rf /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/share/doc/python3-module-fastjsonschema-2.18.1 + /bin/mkdir -p /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/share/doc/python3-module-fastjsonschema-2.18.1 + cp -prL README.rst AUTHORS CHANGELOG.txt /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/share/doc/python3-module-fastjsonschema-2.18.1 + chmod -R go-w /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/share/doc/python3-module-fastjsonschema-2.18.1 + chmod -R a+rX /usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/share/doc/python3-module-fastjsonschema-2.18.1 + exit 0 Finding Provides (using /usr/lib/rpm/find-provides) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.povxHv find-provides: running scripts (alternatives,debuginfo,lib,pam,perl,pkgconfig,python,python3,shell) Finding Requires (using /usr/lib/rpm/find-requires) Executing: /bin/sh -e /usr/src/tmp/rpm-tmp.MzD5us find-requires: running scripts (cpp,debuginfo,files,lib,pam,perl,pkgconfig,pkgconfiglib,python,python3,rpmlib,shebang,shell,static,symlinks,systemd-services) py3prov: detected potential module:fastjsonschema py3prov: detected potential module:fastjsonschema py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py: "fastjsonschema.draft04" lines:[108] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py: "fastjsonschema.draft06" lines:[109] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py: "fastjsonschema.draft07" lines:[110] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py: "fastjsonschema.exceptions" lines:[111] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py: "fastjsonschema.ref_resolver" lines:[112] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__init__.py: "fastjsonschema.version" lines:[113] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__main__.py: skipping "sys" lines:[2] py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/__main__.py: "fastjsonschema" lines:[4] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft04.py: "fastjsonschema.exceptions" lines:[4] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft04.py: "fastjsonschema.generator" lines:[5] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft06.py: "fastjsonschema.draft04" lines:[2] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft06.py: "fastjsonschema.exceptions" lines:[3] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft06.py: "fastjsonschema.generator" lines:[4] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/draft07.py: "fastjsonschema.draft06" lines:[1] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/generator.py: "fastjsonschema.exceptions" lines:[5] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/generator.py: "fastjsonschema.indent" lines:[6] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/generator.py: "fastjsonschema.ref_resolver" lines:[7] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/ref_resolver.py: "fastjsonschema.exceptions" lines:[15] is possibly a self-providing dependency, skip it py3req:/usr/src/tmp/python3-module-fastjsonschema-buildroot/usr/lib/python3/site-packages/fastjsonschema/ref_resolver.py: "urllib.request" lines:[[[61]]]: Ignore for REQ:slight Provides: python3(fastjsonschema), python3(fastjsonschema.__main__), python3(fastjsonschema.draft04), python3(fastjsonschema.draft06), python3(fastjsonschema.draft07), python3(fastjsonschema.exceptions), python3(fastjsonschema.generator), python3(fastjsonschema.indent), python3(fastjsonschema.ref_resolver), python3(fastjsonschema.version) Requires: /usr/lib/python3/site-packages, python3(collections) < 0, python3(contextlib) < 0, python3(decimal) < 0, python3(functools) < 0, python3(json) < 0, python3(re) < 0, python3(urllib) < 0, python3(urllib.parse) < 0 Wrote: /usr/src/RPM/RPMS/noarch/python3-module-fastjsonschema-2.18.1-alt1.1.noarch.rpm (w2.lzdio) 27.70user 2.45system 0:31.75elapsed 94%CPU (0avgtext+0avgdata 2686036maxresident)k 0inputs+0outputs (0major+943331minor)pagefaults 0swaps 6.72user 2.42system 0:49.94elapsed 18%CPU (0avgtext+0avgdata 127032maxresident)k 0inputs+0outputs (0major+275245minor)pagefaults 0swaps