schemathesis 3.39.6__tar.gz → 3.39.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {schemathesis-3.39.6 → schemathesis-3.39.8}/PKG-INFO +1 -1
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/changelog.rst +18 -1
- {schemathesis-3.39.6 → schemathesis-3.39.8}/pyproject.toml +1 -1
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_hypothesis.py +13 -10
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/generation/coverage.py +4 -4
- schemathesis-3.39.8/src/schemathesis/specs/openapi/patterns.py +305 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/coverage/test_combinations.py +9 -1
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/coverage/test_phase.py +100 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_patterns.py +31 -0
- schemathesis-3.39.6/.github/workflows/master_update.yml +0 -53
- schemathesis-3.39.6/src/schemathesis/specs/openapi/patterns.py +0 -137
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.dockerignore +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/FUNDING.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/dependabot.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/build.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/codeql-analysis.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/codspeed.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/commit.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/example-build.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/example-no-build.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/release.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/test-corpus.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/test-hypothesis.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.github/workflows/update-pre-commit.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.gitignore +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.pre-commit-config.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.readthedocs.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.relint.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.rstcheck.cfg +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/.yamllint +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/CITATION.cff +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/CODE_OF_CONDUCT.md +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/CONTRIBUTING.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/Dockerfile +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/Dockerfile.bookworm +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/LICENSE +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/README.md +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/SECURITY.md +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/benches/cli.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/benches/coverage_phase.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/benches/references.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/benches/schema.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/changelog.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/codecov.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/corpus/data/graphql.tar.gz +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/corpus/data/openapi-3.0.tar.gz +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/corpus/data/openapi-3.1.tar.gz +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/corpus/data/swagger-2.0.tar.gz +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/corpus/tools.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/Makefile +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/additional-content.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/api.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/auth.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/cli.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/compatibility.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/conf.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/continuous_integration.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/contrib.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/data-generation.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/examples.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/experimental.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/extending.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/faq.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/getting-started.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/graphql.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/index.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/python.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/recipes.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/requirements.txt +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/sanitizing.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/service.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/stateful.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/docs/targeted.rst +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/Dockerfile +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/README.md +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/compose.yml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/openapi.json +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/requirements-app.in +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/requirements-app.txt +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/requirements-pytest.in +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/requirements-pytest.txt +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/tests/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/tests/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/tests/extensions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/example/tests/test_app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/img/demo.gif +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/img/service_github_report.png +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/mypy.ini +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_compat.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_dependency_versions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_lazy_import.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_override.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_patches.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_rate_limiter.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/_xml.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/auths.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/checks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/__main__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/callbacks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/cassettes.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/constants.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/context.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/debug.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/handlers.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/junitxml.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/options.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/output/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/output/default.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/output/short.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/reporting.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/cli/sanitization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/code_samples.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/constants.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/contrib/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/contrib/openapi/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/contrib/openapi/fill_missing_examples.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/contrib/openapi/formats/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/contrib/openapi/formats/uuid.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/contrib/unique_data.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/exceptions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/experimental/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/extra/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/extra/_aiohttp.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/extra/_flask.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/extra/_server.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/extra/pytest_plugin.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/failures.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/filters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/fixups/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/fixups/fast_api.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/fixups/utf8_bom.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/generation/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/generation/_hypothesis.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/generation/_methods.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/graphql.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/hooks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/checks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/copy.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/datetime.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/deprecation.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/diff.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/extensions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/jsonschema.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/output.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/result.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/transformation.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/internal/validation.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/lazy.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/loaders.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/models.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/parameters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/py.typed +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/events.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/impl/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/impl/context.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/impl/core.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/impl/solo.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/impl/threadpool.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/probes.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/runner/serialization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/sanitization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/schemas.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/serializers.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/auth.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/ci.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/client.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/constants.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/events.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/extensions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/hosts.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/metadata.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/models.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/report.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/serialization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/service/usage.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/graphql/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/graphql/_cache.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/graphql/loaders.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/graphql/nodes.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/graphql/scalars.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/graphql/schemas.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/graphql/validation.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/_cache.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/_hypothesis.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/checks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/constants.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/converter.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/definitions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/examples.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/expressions/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/expressions/context.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/expressions/errors.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/expressions/extractors.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/expressions/lexer.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/expressions/nodes.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/expressions/parser.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/formats.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/links.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/loaders.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/media_types.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/negative/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/negative/mutations.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/negative/types.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/negative/utils.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/parameters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/references.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/schemas.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/security.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/serialization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/stateful/statistic.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/stateful/types.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/utils.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/specs/openapi/validation.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/config.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/context.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/events.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/runner.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/sink.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/state_machine.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/statistic.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/stateful/validation.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/targets.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/throttling.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/transports/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/transports/asgi.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/transports/auth.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/transports/content_types.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/transports/headers.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/transports/responses.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/types.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/src/schemathesis/utils.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/__snapshots__/test_dereferencing/test_global_security_schemes_with_custom_scope.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/__snapshots__/test_dereferencing/test_missing_file_in_resolution.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/__snapshots__/test_hypothesis/test_health_check_failed_large_base_example.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/__snapshots__/test_recoverable_errors/test_in_cli[1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/__snapshots__/test_recoverable_errors/test_in_cli[2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/__snapshots__/test_serialization/test_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/_graphql/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/_graphql/_fastapi/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/_graphql/_fastapi/app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/_graphql/_flask/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/_graphql/_flask/app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/_graphql/schema.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/cp1252_app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/hooks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/_aiohttp/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/_aiohttp/app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/_aiohttp/handlers.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/_fastapi/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/_fastapi/app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/_flask/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/_flask/app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/apps/openapi/schema.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__snapshots__/test_cli/test_conditional[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__snapshots__/test_cli/test_custom_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args0-Basic dXNlcjpwYXNz].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__snapshots__/test_cli/test_explicit_auth_precedence[Open API 3.0-args1-Bearer EXPLICIT].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__snapshots__/test_cli/test_multiple_auth_mechanisms_with_explicit_auth.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__snapshots__/test_cli/test_multiple_threads[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/__snapshots__/test_cli/test_requests_auth[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/test_cli.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/test_provider.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/auth/test_pytest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/checks/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/checks/test_checks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_cassettes/test_forbid_preserve_exact_bytes_without_cassette_path[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_cassettes/test_forbid_simultaneous_use_of_deprecated_and_new_options[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_deduplication_on_sanitized_header.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args10].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args3].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args4].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args5].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args6].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args7].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args8].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance[args9].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_checks/test_positive_data_acceptance_with_env_vars.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_add_case_output[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-Authorization].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_auth_and_authorization_header_are_disallowed[Open API 3.0-authorization].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 2.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0---auth='testwrong'].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_auth_override_on_protected_operation[Open API 3.0--H Authorization Basic J3Rlc3Q6d3Jvbmcn].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_binary_payload.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_certificate_only_key.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_chunked_encoding_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_cli_run_only_failure[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_commands_help.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_complex_urlencoded_example.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_error[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_connection_timeout[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_custom_cli_option[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_deprecated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_duplicated_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_empty_schema_file[args1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_explicit_example_failure_output.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_explicit_headers_in_output_on_errors[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_explicit_query_token_sanitization[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---exclude-by=x-property != 42].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_filter_by[Open API 3.0---include-by=x-property == 42].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_force_color_nocolor[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_get_request_with_body[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_graphql_asgi.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_graphql_url[foo-args1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_graphql_url[graphql-args1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_group_errors.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hooks_module_not_found.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hooks_with_inner_import_error.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_database_with_derandomize[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_hypothesis_failed_event[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_filter[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_operation_suggestion[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.0.2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_schema_with_disabled_validation[3.1.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_invalid_yaml.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_long_payload.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_malformed_json_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_max_response_time_invalid[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-None].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[cookie-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-None].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[header-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-None].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[path-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-None].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_missing_content_and_schema[query-http127.0.0.1apiv2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_multiple_errors.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_different_check[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_in_single_check.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_multiple_failures_single_check[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_nested_binary_in_yaml.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner[Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_filtered_out[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_generation_config[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_keyboard_interrupt[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_max_failures[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_new_stateful_runner_stateful_only_with_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_no_schema_in_media_type[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_no_useless_traceback.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_null_byte_in_header_probe.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_disabled[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 2.0-5].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[real-Open API 3.0-5].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 2.0-5].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_openapi_links_multiple_threads[wsgi-Open API 3.0-5].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_proxy_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_read_content_timeout[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_recursive_reference_error_message.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError(Custom check failed!)-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_register_check[AssertionError-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_remote_disconnected_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_payload_encoding[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_response_schema_conformance_deduplication[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args10].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args11].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args12].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args13].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args14].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args15].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args16].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args17].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args18].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args19].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args20].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args21].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args22].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args23].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args24].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args25].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args26].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args27].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args28].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args29].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args30].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args31].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args32].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args33].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args34].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args35].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args36].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args37].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args3].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args4].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args5].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args6].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args7].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args8].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_run_output[args9].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_schema_not_available[1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_schema_not_available[2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_schema_not_available_wsgi.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_stateful_explicit_examples_with_filters[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_status_code_conformance[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unknown_schema_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unresolvable_links[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unresolvable_reference_with_disabled_validation.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[real-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 2.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsatisfiable[wsgi-Open API 3.0-2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_unsupported_regex.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_useful_traceback[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_wait_for_schema_not_enough.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_commands/test_yaml_parsing_of_floats[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_hooks/test_after_call[real-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/__snapshots__/test_hooks/test_after_call[wsgi-Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/cert.pem +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/output/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/output/test_default.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_asgi.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_callbacks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_cassettes.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_checks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_commands.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_crashes.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_hooks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_junitxml.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_options.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_reporting.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/cli/test_targeted.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 2.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/code_samples/__snapshots__/test_python/test_cli_output[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/code_samples/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/code_samples/test_curl.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/code_samples/test_python.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_cli[None].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_cli[raw_schema2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_cli_failure.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_explicit_headers[2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/__snapshots__/test_unique_data/test_graphql_url.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/openapi/__snapshots__/test_fill_missing_examples/test_fills_missing_examples.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/openapi/formats/test_uuid.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/openapi/test_fill_missing_examples.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/test_install.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/contrib/test_unique_data.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/coverage/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/coverage/__snapshots__/test_phase/test_unspecified_http_methods.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/coverage/test_examples.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/petstore_v2.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/petstore_v3.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/relative_files/components/parameters.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/relative_files/components/responses.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/relative_files/components/schemas.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/relative_files/main.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/relative_files/paths/user-account.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/simple_openapi.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/data/simple_swagger.yaml +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/experimental/__snapshots__/test_experiments/test_not_enabled.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/experimental/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/experimental/test_experiments.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/experimental/test_openapi_3_1.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/extra/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/extra/test_aiohttp.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/filters/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/filters/test_expressions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/filters/test_matching.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/fixtures/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/fixtures/ctx.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/hooks/test_filter_operations.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/hooks/test_filters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/hooks/test_hooks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/loaders/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/loaders/test_app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/loaders/test_common.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/loaders/test_graphql.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/loaders/test_openapi.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/loaders/test_yaml.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/runner/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/runner/test_checks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/runner/test_events.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/runner/test_probes.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/runner/test_runner.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_client_error_on_project_details.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_client_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_error_in_another_handler[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_github_suggestion[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_not_authenticated_with_name.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_two_names.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_unauthorized.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_unknown_error_on_upload[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_upload_failure[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_cli/test_upload_success[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_connection_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_custom_format.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_dry_run[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_forbidden[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_graphql_scalars.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_internal_server_error[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-42].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_invalid_extension[Open API 3.0-extension1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_invalid_payload[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_media_type_extension[strategy1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_oversize_text[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch0-expected0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch1-expected1].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_schema_patches[patch2-expected2].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/__snapshots__/test_extensions/test_unknown_extension_in_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/test_auth.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/test_ci.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/test_cli.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/test_extensions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/test_report.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/test_serialization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/service/test_usage.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/__snapshots__/test_basic/test_disallow_null.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--exclude-name=Query.getBooks].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/__snapshots__/test_basic/test_filter_operations[--include-name=Query.getBooks].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n 123(created Int!) Int!n}-.whatever].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/__snapshots__/test_basic/test_schema_error[ntype Query {n func(created Unknown!) Int!n}-.gql].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/__snapshots__/test_custom_scalars/test_built_in_scalars_in_cli.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/__snapshots__/test_custom_scalars/test_custom_scalar_in_cli.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/test_basic.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/test_custom_scalars.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/graphql/test_pytest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[basic-post].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_checks/test_method_not_allowed[success-get].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[basic-Authorization-406].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-Authorization-200].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-200].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_checks/test_missing_required_header[success-X-API-Key-1-406].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_examples/test_network_error_with_flaky_generation.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_examples/test_parameter_override.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[cookie].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_auth_via_override_cli[query].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_explicit_auth_cli[Open API 3.0].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-False].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_ignored_auth/test_stateful_in_cli_no_error[Open API 3.0-True].raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/__snapshots__/test_media_types/test_explicit_example_with_custom_media_type.raw +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/blank.pdf +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/parameters/test_forms.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/parameters/test_non_payload.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/parameters/test_simple_payloads.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/stateful/__init__.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/stateful/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/stateful/test_config.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/stateful/test_runner.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/stateful/test_stateful.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_checks.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_examples.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_expressions.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_hypothesis.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_ignored_auth.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_links.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_media_types.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_negative.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_parameters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_randomized.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_schemas.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_security.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_serializing.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_utils.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/specs/openapi/test_validation.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_app.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_asgi.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_async.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_common_parameters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_converter.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_dereferencing.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_direct_access.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_examples.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_filters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_fixups.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_hypothesis.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_internal.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_lazy.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_models.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_output.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_package.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_parameters.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_parametrization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_petstore.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_pytest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_rate_limit.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_recoverable_errors.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_required.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_sanitizing_output.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_schemas.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_serialization.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_stateful.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_unittest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_utils.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/test_wsgi.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/transports/test_content_types.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test/utils.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test-corpus/conftest.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test-corpus/test_corpus.py +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/test_server.sh +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/tox.ini +0 -0
- {schemathesis-3.39.6 → schemathesis-3.39.8}/typos.toml +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: schemathesis
|
3
|
-
Version: 3.39.
|
3
|
+
Version: 3.39.8
|
4
4
|
Summary: Property-based testing framework for Open API and GraphQL based apps
|
5
5
|
Project-URL: Documentation, https://schemathesis.readthedocs.io/en/stable/
|
6
6
|
Project-URL: Changelog, https://schemathesis.readthedocs.io/en/stable/changelog.html
|
@@ -1,9 +1,26 @@
|
|
1
1
|
Changelog
|
2
2
|
=========
|
3
3
|
|
4
|
-
:version:`Unreleased <v3.39.
|
4
|
+
:version:`Unreleased <v3.39.8...HEAD>` - TBD
|
5
5
|
--------------------------------------------
|
6
6
|
|
7
|
+
.. _v3.39.8:
|
8
|
+
|
9
|
+
:version:`3.39.8 <v3.39.7...v3.39.8>` - 2025-01-25
|
10
|
+
--------------------------------------------------
|
11
|
+
|
12
|
+
**Fixed**
|
13
|
+
|
14
|
+
- Handling of complex regex patterns with multiple quantifiers to respect length constraints during test generation.
|
15
|
+
- Internal error during the coverage phase if negated parameter has no ``type``.
|
16
|
+
|
17
|
+
:version:`3.39.7 <v3.39.6...v3.39.7>` - 2025-01-16
|
18
|
+
--------------------------------------------------
|
19
|
+
|
20
|
+
**Changed**
|
21
|
+
|
22
|
+
- Rebuild Docker ``stable`` with the v3 branch.
|
23
|
+
|
7
24
|
.. _v3.39.6:
|
8
25
|
|
9
26
|
:version:`3.39.6 <v3.39.5...v3.39.6>` - 2025-01-12
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "schemathesis"
|
7
|
-
version = "3.39.
|
7
|
+
version = "3.39.8"
|
8
8
|
description = "Property-based testing framework for Open API and GraphQL based apps"
|
9
9
|
keywords = ["pytest", "hypothesis", "openapi", "graphql", "testing"]
|
10
10
|
authors = [{ name = "Dmitry Dygalo", email = "dmitry@dygalo.dev" }]
|
@@ -332,16 +332,19 @@ def _iter_coverage_cases(
|
|
332
332
|
if operation.query:
|
333
333
|
container = template["query"]
|
334
334
|
for parameter in operation.query:
|
335
|
-
value
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
335
|
+
# Could be absent if value schema can't be negated
|
336
|
+
# I.e. contains just `default` value without any other keywords
|
337
|
+
value = container.get(parameter.name, NOT_SET)
|
338
|
+
if value is not NOT_SET:
|
339
|
+
case = operation.make_case(**{**template, "query": {**container, parameter.name: [value, value]}})
|
340
|
+
case.data_generation_method = DataGenerationMethod.negative
|
341
|
+
case.meta = _make_meta(
|
342
|
+
description=f"Duplicate `{parameter.name}` query parameter",
|
343
|
+
location=None,
|
344
|
+
parameter=parameter.name,
|
345
|
+
parameter_location="query",
|
346
|
+
)
|
347
|
+
yield case
|
345
348
|
# Generate missing required parameters
|
346
349
|
for parameter in operation.iter_parameters():
|
347
350
|
if parameter.is_required and parameter.location != "path":
|
@@ -194,6 +194,10 @@ class CoverageContext:
|
|
194
194
|
re.compile(pattern)
|
195
195
|
except re.error:
|
196
196
|
raise Unsatisfiable from None
|
197
|
+
if "minLength" in schema or "maxLength" in schema:
|
198
|
+
min_length = schema.get("minLength")
|
199
|
+
max_length = schema.get("maxLength")
|
200
|
+
pattern = update_quantifier(pattern, min_length, max_length)
|
197
201
|
return cached_draw(st.from_regex(pattern))
|
198
202
|
if (keys == ["items", "type"] or keys == ["items", "minItems", "type"]) and isinstance(schema["items"], dict):
|
199
203
|
items = schema["items"]
|
@@ -514,11 +518,7 @@ def _positive_string(ctx: CoverageContext, schema: dict) -> Generator[GeneratedV
|
|
514
518
|
# Default positive value
|
515
519
|
yield PositiveValue(ctx.generate_from_schema(schema), description="Valid string")
|
516
520
|
elif "pattern" in schema:
|
517
|
-
# Without merging `maxLength` & `minLength` into a regex it is problematic
|
518
|
-
# to generate a valid value as the unredlying machinery will resort to filtering
|
519
|
-
# and it is unlikely that it will generate a string of that length
|
520
521
|
yield PositiveValue(ctx.generate_from_schema(schema), description="Valid string")
|
521
|
-
return
|
522
522
|
|
523
523
|
seen = set()
|
524
524
|
|
@@ -0,0 +1,305 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
import re
|
4
|
+
from functools import lru_cache
|
5
|
+
|
6
|
+
try: # pragma: no cover
|
7
|
+
import re._constants as sre
|
8
|
+
import re._parser as sre_parse
|
9
|
+
except ImportError:
|
10
|
+
import sre_constants as sre
|
11
|
+
import sre_parse
|
12
|
+
|
13
|
+
ANCHOR = sre.AT
|
14
|
+
REPEATS: tuple
|
15
|
+
if hasattr(sre, "POSSESSIVE_REPEAT"):
|
16
|
+
REPEATS = (sre.MIN_REPEAT, sre.MAX_REPEAT, sre.POSSESSIVE_REPEAT)
|
17
|
+
else:
|
18
|
+
REPEATS = (sre.MIN_REPEAT, sre.MAX_REPEAT)
|
19
|
+
LITERAL = sre.LITERAL
|
20
|
+
IN = sre.IN
|
21
|
+
MAXREPEAT = sre_parse.MAXREPEAT
|
22
|
+
|
23
|
+
|
24
|
+
@lru_cache()
|
25
|
+
def update_quantifier(pattern: str, min_length: int | None, max_length: int | None) -> str:
|
26
|
+
"""Update the quantifier of a regular expression based on given min and max lengths."""
|
27
|
+
if not pattern or (min_length in (None, 0) and max_length is None):
|
28
|
+
return pattern
|
29
|
+
|
30
|
+
try:
|
31
|
+
parsed = sre_parse.parse(pattern)
|
32
|
+
return _handle_parsed_pattern(parsed, pattern, min_length, max_length)
|
33
|
+
except re.error:
|
34
|
+
# Invalid pattern
|
35
|
+
return pattern
|
36
|
+
|
37
|
+
|
38
|
+
def _handle_parsed_pattern(parsed: list, pattern: str, min_length: int | None, max_length: int | None) -> str:
|
39
|
+
"""Handle the parsed pattern and update quantifiers based on different cases."""
|
40
|
+
if len(parsed) == 1:
|
41
|
+
op, value = parsed[0]
|
42
|
+
return _update_quantifier(op, value, pattern, min_length, max_length)
|
43
|
+
elif len(parsed) == 2:
|
44
|
+
if parsed[0][0] == ANCHOR:
|
45
|
+
# Starts with an anchor
|
46
|
+
op, value = parsed[1]
|
47
|
+
anchor_length = _get_anchor_length(parsed[0][1])
|
48
|
+
leading_anchor = pattern[:anchor_length]
|
49
|
+
return leading_anchor + _update_quantifier(op, value, pattern[anchor_length:], min_length, max_length)
|
50
|
+
if parsed[1][0] == ANCHOR:
|
51
|
+
# Ends with an anchor
|
52
|
+
op, value = parsed[0]
|
53
|
+
anchor_length = _get_anchor_length(parsed[1][1])
|
54
|
+
trailing_anchor = pattern[-anchor_length:]
|
55
|
+
return _update_quantifier(op, value, pattern[:-anchor_length], min_length, max_length) + trailing_anchor
|
56
|
+
elif len(parsed) == 3 and parsed[0][0] == ANCHOR and parsed[2][0] == ANCHOR:
|
57
|
+
op, value = parsed[1]
|
58
|
+
leading_anchor_length = _get_anchor_length(parsed[0][1])
|
59
|
+
trailing_anchor_length = _get_anchor_length(parsed[2][1])
|
60
|
+
leading_anchor = pattern[:leading_anchor_length]
|
61
|
+
trailing_anchor = pattern[-trailing_anchor_length:]
|
62
|
+
return (
|
63
|
+
leading_anchor
|
64
|
+
+ _update_quantifier(
|
65
|
+
op, value, pattern[leading_anchor_length:-trailing_anchor_length], min_length, max_length
|
66
|
+
)
|
67
|
+
+ trailing_anchor
|
68
|
+
)
|
69
|
+
elif (
|
70
|
+
len(parsed) > 3
|
71
|
+
and parsed[0][0] == ANCHOR
|
72
|
+
and parsed[-1][0] == ANCHOR
|
73
|
+
and all(op == LITERAL or op in REPEATS for op, _ in parsed[1:-1])
|
74
|
+
):
|
75
|
+
return _handle_anchored_pattern(parsed, pattern, min_length, max_length)
|
76
|
+
return pattern
|
77
|
+
|
78
|
+
|
79
|
+
def _handle_anchored_pattern(parsed: list, pattern: str, min_length: int | None, max_length: int | None) -> str:
|
80
|
+
"""Update regex pattern with multiple quantified patterns to satisfy length constraints."""
|
81
|
+
# Extract anchors
|
82
|
+
leading_anchor_length = _get_anchor_length(parsed[0][1])
|
83
|
+
trailing_anchor_length = _get_anchor_length(parsed[-1][1])
|
84
|
+
leading_anchor = pattern[:leading_anchor_length]
|
85
|
+
trailing_anchor = pattern[-trailing_anchor_length:]
|
86
|
+
|
87
|
+
pattern_parts = parsed[1:-1]
|
88
|
+
|
89
|
+
# Adjust length constraints by subtracting fixed literals length
|
90
|
+
fixed_length = sum(1 for op, _ in pattern_parts if op == LITERAL)
|
91
|
+
if min_length is not None:
|
92
|
+
min_length -= fixed_length
|
93
|
+
if min_length < 0:
|
94
|
+
return pattern
|
95
|
+
if max_length is not None:
|
96
|
+
max_length -= fixed_length
|
97
|
+
if max_length < 0:
|
98
|
+
return pattern
|
99
|
+
|
100
|
+
# Extract only min/max bounds from quantified parts
|
101
|
+
quantifier_bounds = [value[:2] for op, value in pattern_parts if op in REPEATS]
|
102
|
+
|
103
|
+
if not quantifier_bounds:
|
104
|
+
return pattern
|
105
|
+
|
106
|
+
length_distribution = _distribute_length_constraints(quantifier_bounds, min_length, max_length)
|
107
|
+
if not length_distribution:
|
108
|
+
return pattern
|
109
|
+
|
110
|
+
# Rebuild pattern with updated quantifiers
|
111
|
+
result = leading_anchor
|
112
|
+
current_position = leading_anchor_length
|
113
|
+
distribution_idx = 0
|
114
|
+
|
115
|
+
for op, value in pattern_parts:
|
116
|
+
if op == LITERAL:
|
117
|
+
if pattern[current_position] == "\\":
|
118
|
+
# Escaped value
|
119
|
+
current_position += 2
|
120
|
+
result += "\\"
|
121
|
+
else:
|
122
|
+
current_position += 1
|
123
|
+
result += chr(value)
|
124
|
+
else:
|
125
|
+
new_min, new_max = length_distribution[distribution_idx]
|
126
|
+
next_position = _find_quantified_end(pattern, current_position)
|
127
|
+
quantified_segment = pattern[current_position:next_position]
|
128
|
+
_, _, subpattern = value
|
129
|
+
new_value = (new_min, new_max, subpattern)
|
130
|
+
|
131
|
+
result += _update_quantifier(op, new_value, quantified_segment, new_min, new_max)
|
132
|
+
current_position = next_position
|
133
|
+
distribution_idx += 1
|
134
|
+
|
135
|
+
return result + trailing_anchor
|
136
|
+
|
137
|
+
|
138
|
+
def _find_quantified_end(pattern: str, start: int) -> int:
|
139
|
+
"""Find the end position of current quantified part."""
|
140
|
+
char_class_level = 0
|
141
|
+
group_level = 0
|
142
|
+
|
143
|
+
for i in range(start, len(pattern)):
|
144
|
+
char = pattern[i]
|
145
|
+
|
146
|
+
# Handle character class nesting
|
147
|
+
if char == "[":
|
148
|
+
char_class_level += 1
|
149
|
+
elif char == "]":
|
150
|
+
char_class_level -= 1
|
151
|
+
|
152
|
+
# Handle group nesting
|
153
|
+
elif char == "(":
|
154
|
+
group_level += 1
|
155
|
+
elif char == ")":
|
156
|
+
group_level -= 1
|
157
|
+
|
158
|
+
# Only process quantifiers when we're not inside any nested structure
|
159
|
+
elif char_class_level == 0 and group_level == 0:
|
160
|
+
if char in "*+?":
|
161
|
+
return i + 1
|
162
|
+
elif char == "{":
|
163
|
+
# Find matching }
|
164
|
+
while i < len(pattern) and pattern[i] != "}":
|
165
|
+
i += 1
|
166
|
+
return i + 1
|
167
|
+
|
168
|
+
return len(pattern)
|
169
|
+
|
170
|
+
|
171
|
+
def _distribute_length_constraints(
|
172
|
+
bounds: list[tuple[int, int]], min_length: int | None, max_length: int | None
|
173
|
+
) -> list[tuple[int, int]] | None:
|
174
|
+
"""Distribute length constraints among quantified pattern parts."""
|
175
|
+
# Handle exact length case with dynamic programming
|
176
|
+
if min_length == max_length:
|
177
|
+
assert min_length is not None
|
178
|
+
target = min_length
|
179
|
+
dp: dict[tuple[int, int], list[tuple[int, ...]] | None] = {}
|
180
|
+
|
181
|
+
def find_valid_combination(pos: int, remaining: int) -> list[tuple[int, ...]] | None:
|
182
|
+
if (pos, remaining) in dp:
|
183
|
+
return dp[(pos, remaining)]
|
184
|
+
|
185
|
+
if pos == len(bounds):
|
186
|
+
return [()] if remaining == 0 else None
|
187
|
+
|
188
|
+
max_len: int
|
189
|
+
min_len, max_len = bounds[pos]
|
190
|
+
if max_len == MAXREPEAT:
|
191
|
+
max_len = remaining + 1
|
192
|
+
else:
|
193
|
+
max_len += 1
|
194
|
+
|
195
|
+
# Try each possible length for current quantifier
|
196
|
+
for length in range(min_len, max_len):
|
197
|
+
rest = find_valid_combination(pos + 1, remaining - length)
|
198
|
+
if rest is not None:
|
199
|
+
dp[(pos, remaining)] = [(length,) + r for r in rest]
|
200
|
+
return dp[(pos, remaining)]
|
201
|
+
|
202
|
+
dp[(pos, remaining)] = None
|
203
|
+
return None
|
204
|
+
|
205
|
+
distribution = find_valid_combination(0, target)
|
206
|
+
if distribution:
|
207
|
+
return [(length, length) for length in distribution[0]]
|
208
|
+
return None
|
209
|
+
|
210
|
+
# Handle range case by distributing min/max bounds
|
211
|
+
result = []
|
212
|
+
remaining_min = min_length or 0
|
213
|
+
remaining_max = max_length or MAXREPEAT
|
214
|
+
|
215
|
+
for min_repeat, max_repeat in bounds:
|
216
|
+
if remaining_min > 0:
|
217
|
+
part_min = min(max_repeat, max(min_repeat, remaining_min))
|
218
|
+
else:
|
219
|
+
part_min = min_repeat
|
220
|
+
|
221
|
+
if remaining_max < MAXREPEAT:
|
222
|
+
part_max = min(max_repeat, remaining_max)
|
223
|
+
else:
|
224
|
+
part_max = max_repeat
|
225
|
+
|
226
|
+
if part_min > part_max:
|
227
|
+
return None
|
228
|
+
|
229
|
+
result.append((part_min, part_max))
|
230
|
+
|
231
|
+
remaining_min = max(0, remaining_min - part_min)
|
232
|
+
remaining_max -= part_max if part_max != MAXREPEAT else 0
|
233
|
+
|
234
|
+
if remaining_min > 0 or remaining_max < 0:
|
235
|
+
return None
|
236
|
+
|
237
|
+
return result
|
238
|
+
|
239
|
+
|
240
|
+
def _get_anchor_length(node_type: int) -> int:
|
241
|
+
"""Determine the length of the anchor based on its type."""
|
242
|
+
if node_type in {sre.AT_BEGINNING_STRING, sre.AT_END_STRING, sre.AT_BOUNDARY, sre.AT_NON_BOUNDARY}:
|
243
|
+
return 2 # \A, \Z, \b, or \B
|
244
|
+
return 1 # ^ or $ or their multiline/locale/unicode variants
|
245
|
+
|
246
|
+
|
247
|
+
def _update_quantifier(op: int, value: tuple, pattern: str, min_length: int | None, max_length: int | None) -> str:
|
248
|
+
"""Update the quantifier based on the operation type and given constraints."""
|
249
|
+
if op in REPEATS:
|
250
|
+
return _handle_repeat_quantifier(value, pattern, min_length, max_length)
|
251
|
+
if op in (LITERAL, IN) and max_length != 0:
|
252
|
+
return _handle_literal_or_in_quantifier(pattern, min_length, max_length)
|
253
|
+
return pattern
|
254
|
+
|
255
|
+
|
256
|
+
def _handle_repeat_quantifier(
|
257
|
+
value: tuple[int, int, tuple], pattern: str, min_length: int | None, max_length: int | None
|
258
|
+
) -> str:
|
259
|
+
"""Handle repeat quantifiers (e.g., '+', '*', '?')."""
|
260
|
+
min_repeat, max_repeat, _ = value
|
261
|
+
min_length, max_length = _build_size(min_repeat, max_repeat, min_length, max_length)
|
262
|
+
if min_length > max_length:
|
263
|
+
return pattern
|
264
|
+
return f"({_strip_quantifier(pattern).strip(')(')})" + _build_quantifier(min_length, max_length)
|
265
|
+
|
266
|
+
|
267
|
+
def _handle_literal_or_in_quantifier(pattern: str, min_length: int | None, max_length: int | None) -> str:
|
268
|
+
"""Handle literal or character class quantifiers."""
|
269
|
+
min_length = 1 if min_length is None else max(min_length, 1)
|
270
|
+
return f"({pattern.strip(')(')})" + _build_quantifier(min_length, max_length)
|
271
|
+
|
272
|
+
|
273
|
+
def _build_quantifier(minimum: int | None, maximum: int | None) -> str:
|
274
|
+
"""Construct a quantifier string based on min and max values."""
|
275
|
+
if maximum == MAXREPEAT or maximum is None:
|
276
|
+
return f"{{{minimum or 0},}}"
|
277
|
+
if minimum == maximum:
|
278
|
+
return f"{{{minimum}}}"
|
279
|
+
return f"{{{minimum or 0},{maximum}}}"
|
280
|
+
|
281
|
+
|
282
|
+
def _build_size(min_repeat: int, max_repeat: int, min_length: int | None, max_length: int | None) -> tuple[int, int]:
|
283
|
+
"""Merge the current repetition constraints with the provided min and max lengths."""
|
284
|
+
if min_length is not None:
|
285
|
+
min_repeat = max(min_repeat, min_length)
|
286
|
+
if max_length is not None:
|
287
|
+
if max_repeat == MAXREPEAT:
|
288
|
+
max_repeat = max_length
|
289
|
+
else:
|
290
|
+
max_repeat = min(max_repeat, max_length)
|
291
|
+
return min_repeat, max_repeat
|
292
|
+
|
293
|
+
|
294
|
+
def _strip_quantifier(pattern: str) -> str:
|
295
|
+
"""Remove quantifier from the pattern."""
|
296
|
+
# Lazy & posessive quantifiers
|
297
|
+
if pattern.endswith(("*?", "+?", "??", "*+", "?+", "++")):
|
298
|
+
return pattern[:-2]
|
299
|
+
if pattern.endswith(("?", "*", "+")):
|
300
|
+
pattern = pattern[:-1]
|
301
|
+
if pattern.endswith("}") and "{" in pattern:
|
302
|
+
# Find the start of the exact quantifier and drop everything since that index
|
303
|
+
idx = pattern.rfind("{")
|
304
|
+
pattern = pattern[:idx]
|
305
|
+
return pattern
|
@@ -153,7 +153,7 @@ def test_negative_primitive_schemas(nctx, schema, expected):
|
|
153
153
|
({"type": "string", "minLength": 5, "maxLength": 10}, {5, 6, 9, 10}),
|
154
154
|
({"type": "string", "minLength": 5, "maxLength": 6}, {5, 6}),
|
155
155
|
({"type": "string", "minLength": 5, "maxLength": 5}, {5}),
|
156
|
-
({"type": "string", "minLength": 0, "maxLength": 512, "pattern": "^[
|
156
|
+
({"type": "string", "minLength": 0, "maxLength": 512, "pattern": r"^[\w\W]+$"}, {1}),
|
157
157
|
],
|
158
158
|
)
|
159
159
|
def test_positive_string(ctx, schema, lengths):
|
@@ -929,6 +929,14 @@ def test_negative_pattern(nctx, schema, expected):
|
|
929
929
|
assert_not_conform(covered, schema)
|
930
930
|
|
931
931
|
|
932
|
+
def test_positive_pattern(pctx):
|
933
|
+
schema = {"pattern": r"^[a-zA-Z0-9]{2,4}-\d{4,15}$", "minLength": 7, "maxLength": 20, "type": "string"}
|
934
|
+
covered = cover_schema(pctx, schema)
|
935
|
+
assert covered == ["0000-0000", "00-0000", "00-00000", "0000-000000000000000", "000-000000000000000"]
|
936
|
+
assert_unique(covered)
|
937
|
+
assert_not_conform(covered, schema)
|
938
|
+
|
939
|
+
|
932
940
|
def test_negative_pattern_with_incompatible_length(nctx):
|
933
941
|
schema = {
|
934
942
|
"minLength": 6,
|
@@ -1031,6 +1031,106 @@ def test_incorrect_headers(ctx):
|
|
1031
1031
|
)
|
1032
1032
|
|
1033
1033
|
|
1034
|
+
def test_optional_parameter_without_type(ctx):
|
1035
|
+
schema = ctx.openapi.build_schema(
|
1036
|
+
{
|
1037
|
+
"/foo": {
|
1038
|
+
"post": {
|
1039
|
+
"parameters": [
|
1040
|
+
{
|
1041
|
+
"in": "query",
|
1042
|
+
"name": "query",
|
1043
|
+
"required": True,
|
1044
|
+
"schema": {"title": "Query", "type": "string"},
|
1045
|
+
},
|
1046
|
+
{
|
1047
|
+
"in": "query",
|
1048
|
+
"name": "locking_period",
|
1049
|
+
"required": False,
|
1050
|
+
"schema": {"default": 24, "title": "Locking Period"},
|
1051
|
+
},
|
1052
|
+
],
|
1053
|
+
"responses": {"200": {"description": "OK"}},
|
1054
|
+
}
|
1055
|
+
}
|
1056
|
+
}
|
1057
|
+
)
|
1058
|
+
assert_coverage(
|
1059
|
+
schema,
|
1060
|
+
[DataGenerationMethod.negative],
|
1061
|
+
[
|
1062
|
+
{
|
1063
|
+
"query": {
|
1064
|
+
"query": "",
|
1065
|
+
"x-schemathesis-unknown-property": "42",
|
1066
|
+
},
|
1067
|
+
},
|
1068
|
+
{
|
1069
|
+
"query": {
|
1070
|
+
"query": "{}",
|
1071
|
+
},
|
1072
|
+
},
|
1073
|
+
{
|
1074
|
+
"query": {
|
1075
|
+
"query": [
|
1076
|
+
"null",
|
1077
|
+
"null",
|
1078
|
+
],
|
1079
|
+
},
|
1080
|
+
},
|
1081
|
+
{
|
1082
|
+
"query": {
|
1083
|
+
"query": "null",
|
1084
|
+
},
|
1085
|
+
},
|
1086
|
+
{
|
1087
|
+
"query": {
|
1088
|
+
"query": "false",
|
1089
|
+
},
|
1090
|
+
},
|
1091
|
+
{
|
1092
|
+
"query": {
|
1093
|
+
"query": "0",
|
1094
|
+
},
|
1095
|
+
},
|
1096
|
+
{
|
1097
|
+
"query": {},
|
1098
|
+
},
|
1099
|
+
{
|
1100
|
+
"query": {
|
1101
|
+
"query": [
|
1102
|
+
"0",
|
1103
|
+
"0",
|
1104
|
+
],
|
1105
|
+
},
|
1106
|
+
},
|
1107
|
+
{
|
1108
|
+
"query": {
|
1109
|
+
"query": "{}",
|
1110
|
+
},
|
1111
|
+
},
|
1112
|
+
{
|
1113
|
+
"query": {
|
1114
|
+
"query": [
|
1115
|
+
"null",
|
1116
|
+
"null",
|
1117
|
+
],
|
1118
|
+
},
|
1119
|
+
},
|
1120
|
+
{
|
1121
|
+
"query": {
|
1122
|
+
"query": "null",
|
1123
|
+
},
|
1124
|
+
},
|
1125
|
+
{
|
1126
|
+
"query": {
|
1127
|
+
"query": "false",
|
1128
|
+
},
|
1129
|
+
},
|
1130
|
+
],
|
1131
|
+
)
|
1132
|
+
|
1133
|
+
|
1034
1134
|
def test_incorrect_headers_with_enum(ctx):
|
1035
1135
|
schema = ctx.openapi.build_schema(
|
1036
1136
|
{
|
@@ -75,10 +75,41 @@ SKIP_BEFORE_PY11 = pytest.mark.skipif(
|
|
75
75
|
("b$", None, None, "b$"),
|
76
76
|
("b$", 0, None, "b$"),
|
77
77
|
("}?", 0, None, "}?"),
|
78
|
+
# More complex patterns
|
79
|
+
# Fixed parts with single quantifier
|
80
|
+
("^abc[0-9]*$", None, 5, "^abc([0-9]){0,2}$"),
|
81
|
+
("^-[a-z]{1,10}-$", None, 4, "^-([a-z]){1,2}-$"),
|
82
|
+
# Multiple quantifiers
|
83
|
+
(r"^[a-z]{2,4}-\d{4,15}$", 7, 7, r"^([a-z]){2}-(\d){4}$"),
|
84
|
+
(r"^[a-z]{2,4}-\d{4,15}$", 20, 20, r"^([a-z]){4}-(\d){15}$"),
|
85
|
+
# Complex patterns with multiple parts
|
86
|
+
("^[A-Z]{1,3}-[0-9]{2,4}-[a-z]{1,5}$", 8, 8, "^([A-Z]){1}-([0-9]){2}-([a-z]){3}$"),
|
87
|
+
(r"^\w{2,4}:\d{3,5}:[A-F]{1,2}$", 10, 10, r"^(\w){2}:(\d){4}:([A-F]){2}$"),
|
88
|
+
(r"^[a-zA-Z0-9]{2,4}-\d{4,15}$", 7, 7, r"^([a-zA-Z0-9]){2}-(\d){4}$"),
|
89
|
+
(r"^[a-zA-Z0-9]{2,4}-\d{4,15}$", 8, 8, r"^([a-zA-Z0-9]){2}-(\d){5}$"),
|
90
|
+
(r"^[a-zA-Z0-9]{2,4}-\d{4,15}$", 19, 19, r"^([a-zA-Z0-9]){3}-(\d){15}$"),
|
91
|
+
(r"^([a-zA-Z0-9]){2,4}-(\d){4,15}$", 19, 19, r"^([a-zA-Z0-9]){3}-(\d){15}$"),
|
92
|
+
(r"^[a-zA-Z0-9]{2,4}-\d{4,15}$", 50, 50, r"^[a-zA-Z0-9]{2,4}-\d{4,15}$"),
|
93
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", 1, 5, r"^abcd[a-zA-Z0-9]{2,4}$"),
|
94
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", 5, 1, r"^abcd[a-zA-Z0-9]{2,4}$"),
|
95
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", 5, 5, r"^abcd[a-zA-Z0-9]{2,4}$"),
|
96
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", None, None, r"^abcd[a-zA-Z0-9]{2,4}$"),
|
97
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", 0, None, r"^abcd[a-zA-Z0-9]{2,4}$"),
|
98
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", None, 5, r"^abcd[a-zA-Z0-9]{2,4}$"),
|
99
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", 5, None, r"^abcd([a-zA-Z0-9]){2,4}$"),
|
100
|
+
(r"^abcd[a-zA-Z0-9]{2,4}$", 5, 10, r"^abcd([a-zA-Z0-9]){2,4}$"),
|
101
|
+
(r"^[a-zA-Z0-9]+([-a-zA-Z0-9]?[a-zA-Z0-9])*$", 5, 64, r"^([a-zA-Z0-9]){5,64}([-a-zA-Z0-9]?[a-zA-Z0-9]){0}$"),
|
102
|
+
(r"^\+[0-9]{5,}$", 6, 6, r"^\+([0-9]){5}$"),
|
103
|
+
(r"^abcd$", 50, 50, r"^abcd$"),
|
104
|
+
# Edge cases
|
105
|
+
("^[a-z]*-[0-9]*$", 3, 3, "^([a-z]){0}-([0-9]){2}$"),
|
106
|
+
# Multiple fixed parts
|
107
|
+
("^abc[0-9]{1,3}def[a-z]{2,5}ghi$", 12, 12, "^abc([0-9]){1}def([a-z]){2}ghi$"),
|
78
108
|
],
|
79
109
|
)
|
80
110
|
def test_update_quantifier(pattern, min_length, max_length, expected):
|
81
111
|
assert update_quantifier(pattern, min_length, max_length) == expected
|
112
|
+
re.compile(expected)
|
82
113
|
|
83
114
|
|
84
115
|
def test_update_quantifier_invalid_pattern():
|
@@ -1,53 +0,0 @@
|
|
1
|
-
name: Post-update master jobs
|
2
|
-
|
3
|
-
on:
|
4
|
-
push:
|
5
|
-
branches:
|
6
|
-
- master
|
7
|
-
|
8
|
-
jobs:
|
9
|
-
containers:
|
10
|
-
name: Build container images
|
11
|
-
runs-on: ubuntu-22.04
|
12
|
-
|
13
|
-
strategy:
|
14
|
-
fail-fast: false
|
15
|
-
matrix:
|
16
|
-
include:
|
17
|
-
- dockerfile: Dockerfile
|
18
|
-
tag: "latest"
|
19
|
-
- dockerfile: Dockerfile.bookworm
|
20
|
-
tag: "latest-bookworm"
|
21
|
-
|
22
|
-
steps:
|
23
|
-
- uses: actions/checkout@v4.2.1
|
24
|
-
|
25
|
-
- name: Set up QEMU
|
26
|
-
uses: docker/setup-qemu-action@v3
|
27
|
-
|
28
|
-
- name: Set up Docker Buildx
|
29
|
-
uses: docker/setup-buildx-action@v3
|
30
|
-
|
31
|
-
- name: Login to Docker Hub
|
32
|
-
uses: docker/login-action@v3
|
33
|
-
with:
|
34
|
-
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
35
|
-
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
36
|
-
|
37
|
-
- name: Login to GitHub Container Registry
|
38
|
-
uses: docker/login-action@v3
|
39
|
-
with:
|
40
|
-
registry: ghcr.io
|
41
|
-
username: ${{ github.repository_owner }}
|
42
|
-
password: ${{ secrets.GITHUB_TOKEN }}
|
43
|
-
|
44
|
-
- name: Build and push
|
45
|
-
uses: docker/build-push-action@v6
|
46
|
-
with:
|
47
|
-
context: .
|
48
|
-
file: ${{ matrix.dockerfile }}
|
49
|
-
platforms: linux/amd64,linux/arm64
|
50
|
-
push: true
|
51
|
-
tags: |
|
52
|
-
schemathesis/schemathesis:${{ matrix.tag }}
|
53
|
-
ghcr.io/schemathesis/schemathesis:${{ matrix.tag }}
|