schemathesis 4.0.0a11__py3-none-any.whl → 4.0.0b1__py3-none-any.whl

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.
Files changed (73) hide show
  1. schemathesis/__init__.py +35 -27
  2. schemathesis/auths.py +85 -54
  3. schemathesis/checks.py +65 -36
  4. schemathesis/cli/commands/run/__init__.py +32 -27
  5. schemathesis/cli/commands/run/context.py +6 -1
  6. schemathesis/cli/commands/run/events.py +7 -1
  7. schemathesis/cli/commands/run/executor.py +12 -7
  8. schemathesis/cli/commands/run/handlers/output.py +188 -80
  9. schemathesis/cli/commands/run/validation.py +21 -6
  10. schemathesis/cli/constants.py +1 -1
  11. schemathesis/config/__init__.py +2 -1
  12. schemathesis/config/_generation.py +12 -13
  13. schemathesis/config/_operations.py +14 -0
  14. schemathesis/config/_phases.py +41 -5
  15. schemathesis/config/_projects.py +33 -1
  16. schemathesis/config/_report.py +6 -2
  17. schemathesis/config/_warnings.py +25 -0
  18. schemathesis/config/schema.json +49 -1
  19. schemathesis/core/errors.py +15 -19
  20. schemathesis/core/transport.py +117 -2
  21. schemathesis/engine/context.py +1 -0
  22. schemathesis/engine/errors.py +61 -2
  23. schemathesis/engine/events.py +10 -2
  24. schemathesis/engine/phases/probes.py +3 -0
  25. schemathesis/engine/phases/stateful/__init__.py +2 -1
  26. schemathesis/engine/phases/stateful/_executor.py +38 -5
  27. schemathesis/engine/phases/stateful/context.py +2 -2
  28. schemathesis/engine/phases/unit/_executor.py +36 -7
  29. schemathesis/generation/__init__.py +0 -3
  30. schemathesis/generation/case.py +153 -28
  31. schemathesis/generation/coverage.py +1 -1
  32. schemathesis/generation/hypothesis/builder.py +43 -19
  33. schemathesis/generation/metrics.py +93 -0
  34. schemathesis/generation/modes.py +0 -8
  35. schemathesis/generation/overrides.py +11 -27
  36. schemathesis/generation/stateful/__init__.py +17 -0
  37. schemathesis/generation/stateful/state_machine.py +32 -108
  38. schemathesis/graphql/loaders.py +152 -8
  39. schemathesis/hooks.py +63 -39
  40. schemathesis/openapi/checks.py +82 -20
  41. schemathesis/openapi/generation/filters.py +9 -2
  42. schemathesis/openapi/loaders.py +134 -8
  43. schemathesis/pytest/lazy.py +4 -31
  44. schemathesis/pytest/loaders.py +24 -0
  45. schemathesis/pytest/plugin.py +38 -6
  46. schemathesis/schemas.py +161 -94
  47. schemathesis/specs/graphql/scalars.py +37 -3
  48. schemathesis/specs/graphql/schemas.py +18 -9
  49. schemathesis/specs/openapi/_hypothesis.py +53 -34
  50. schemathesis/specs/openapi/checks.py +111 -47
  51. schemathesis/specs/openapi/expressions/nodes.py +1 -1
  52. schemathesis/specs/openapi/formats.py +30 -3
  53. schemathesis/specs/openapi/media_types.py +44 -1
  54. schemathesis/specs/openapi/negative/__init__.py +5 -3
  55. schemathesis/specs/openapi/negative/mutations.py +2 -2
  56. schemathesis/specs/openapi/parameters.py +0 -3
  57. schemathesis/specs/openapi/schemas.py +14 -93
  58. schemathesis/specs/openapi/stateful/__init__.py +2 -1
  59. schemathesis/specs/openapi/stateful/links.py +1 -63
  60. schemathesis/transport/__init__.py +54 -16
  61. schemathesis/transport/prepare.py +31 -7
  62. schemathesis/transport/requests.py +21 -9
  63. schemathesis/transport/serialization.py +0 -4
  64. schemathesis/transport/wsgi.py +15 -8
  65. {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/METADATA +45 -87
  66. {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/RECORD +69 -71
  67. schemathesis/contrib/__init__.py +0 -9
  68. schemathesis/contrib/openapi/__init__.py +0 -9
  69. schemathesis/contrib/openapi/fill_missing_examples.py +0 -20
  70. schemathesis/generation/targets.py +0 -69
  71. {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/WHEEL +0 -0
  72. {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/entry_points.txt +0 -0
  73. {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/licenses/LICENSE +0 -0
@@ -9,6 +9,7 @@ from schemathesis.core.rate_limit import ratelimit
9
9
  from schemathesis.core.transforms import merge_at
10
10
  from schemathesis.core.transport import Response
11
11
  from schemathesis.generation.case import Case
12
+ from schemathesis.generation.overrides import Override
12
13
  from schemathesis.python import wsgi
13
14
  from schemathesis.transport import BaseTransport, SerializationContext
14
15
  from schemathesis.transport.prepare import normalize_base_url, prepare_body, prepare_headers, prepare_path
@@ -19,7 +20,7 @@ if TYPE_CHECKING:
19
20
  import werkzeug
20
21
 
21
22
 
22
- class WSGITransport(BaseTransport["Case", Response, "werkzeug.Client"]):
23
+ class WSGITransport(BaseTransport["werkzeug.Client"]):
23
24
  def serialize_case(self, case: Case, **kwargs: Any) -> dict[str, Any]:
24
25
  headers = kwargs.get("headers")
25
26
  params = kwargs.get("params")
@@ -99,6 +100,12 @@ class WSGITransport(BaseTransport["Case", Response, "werkzeug.Client"]):
99
100
  request=requests.Request(**requests_kwargs).prepare(),
100
101
  elapsed=elapsed,
101
102
  verify=False,
103
+ _override=Override(
104
+ query=kwargs.get("params") or {},
105
+ headers=kwargs.get("headers") or {},
106
+ cookies=kwargs.get("cookies") or {},
107
+ path_parameters={},
108
+ ),
102
109
  )
103
110
 
104
111
 
@@ -119,24 +126,24 @@ WSGI_TRANSPORT = WSGITransport()
119
126
 
120
127
 
121
128
  @WSGI_TRANSPORT.serializer("application/json", "text/json")
122
- def json_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any]:
129
+ def json_serializer(ctx: SerializationContext, value: Any) -> dict[str, Any]:
123
130
  return serialize_json(value)
124
131
 
125
132
 
126
133
  @WSGI_TRANSPORT.serializer(
127
134
  "text/yaml", "text/x-yaml", "text/vnd.yaml", "text/yml", "application/yaml", "application/x-yaml"
128
135
  )
129
- def yaml_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any]:
136
+ def yaml_serializer(ctx: SerializationContext, value: Any) -> dict[str, Any]:
130
137
  return serialize_yaml(value)
131
138
 
132
139
 
133
140
  @WSGI_TRANSPORT.serializer("multipart/form-data", "multipart/mixed")
134
- def multipart_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any]:
141
+ def multipart_serializer(ctx: SerializationContext, value: Any) -> dict[str, Any]:
135
142
  return {"data": value}
136
143
 
137
144
 
138
145
  @WSGI_TRANSPORT.serializer("application/xml", "text/xml")
139
- def xml_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any]:
146
+ def xml_serializer(ctx: SerializationContext, value: Any) -> dict[str, Any]:
140
147
  media_type = ctx.case.media_type
141
148
 
142
149
  assert media_type is not None
@@ -148,17 +155,17 @@ def xml_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any
148
155
 
149
156
 
150
157
  @WSGI_TRANSPORT.serializer("application/x-www-form-urlencoded")
151
- def urlencoded_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any]:
158
+ def urlencoded_serializer(ctx: SerializationContext, value: Any) -> dict[str, Any]:
152
159
  return {"data": value}
153
160
 
154
161
 
155
162
  @WSGI_TRANSPORT.serializer("text/plain")
156
- def text_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any]:
163
+ def text_serializer(ctx: SerializationContext, value: Any) -> dict[str, Any]:
157
164
  if isinstance(value, bytes):
158
165
  return {"data": value}
159
166
  return {"data": str(value)}
160
167
 
161
168
 
162
169
  @WSGI_TRANSPORT.serializer("application/octet-stream")
163
- def binary_serializer(ctx: SerializationContext[Case], value: Any) -> dict[str, Any]:
170
+ def binary_serializer(ctx: SerializationContext, value: Any) -> dict[str, Any]:
164
171
  return {"data": serialize_binary(value)}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: schemathesis
3
- Version: 4.0.0a11
3
+ Version: 4.0.0b1
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
@@ -62,6 +62,7 @@ Requires-Dist: fastapi>=0.86.0; extra == 'dev'
62
62
  Requires-Dist: flask<3.0,>=2.1.1; extra == 'dev'
63
63
  Requires-Dist: hypothesis-openapi<1,>=0.2; (python_version >= '3.10') and extra == 'dev'
64
64
  Requires-Dist: mkdocs-material; extra == 'dev'
65
+ Requires-Dist: mkdocstrings[python]; extra == 'dev'
65
66
  Requires-Dist: pydantic>=1.10.2; extra == 'dev'
66
67
  Requires-Dist: pytest-asyncio<1.0,>=0.18.0; extra == 'dev'
67
68
  Requires-Dist: pytest-codspeed==2.2.1; extra == 'dev'
@@ -75,6 +76,7 @@ Requires-Dist: tomli-w>=1.2.0; extra == 'dev'
75
76
  Requires-Dist: trustme<1.0,>=0.9.0; extra == 'dev'
76
77
  Provides-Extra: docs
77
78
  Requires-Dist: mkdocs-material; extra == 'docs'
79
+ Requires-Dist: mkdocstrings[python]; extra == 'docs'
78
80
  Provides-Extra: tests
79
81
  Requires-Dist: aiohttp<4.0,>=3.9.1; extra == 'tests'
80
82
  Requires-Dist: coverage>=6; extra == 'tests'
@@ -116,137 +118,93 @@ Description-Content-Type: text/markdown
116
118
 
117
119
  ## Schemathesis
118
120
 
119
- Schemathesis automatically generates and runs API tests from your OpenAPI or GraphQL schema to find bugs and spec violations.
121
+ > **Catch API bugs before your users do.**
122
+
123
+ Schemathesis automatically generates thousands of test cases from your OpenAPI or GraphQL schema and finds edge cases that break your API.
120
124
 
121
125
  <p align="center">
122
126
  <img src="https://raw.githubusercontent.com/schemathesis/schemathesis/master/img/demo.gif" alt="Schemathesis automatically finding a server error"/>
123
127
  <br>
124
- <i>Automatically finding specification violations and server errors</i>
128
+ <i>Finding bugs that manual testing missed</i>
125
129
  </p>
126
130
 
127
- > **Note:** This is the V4 branch under active development. While fully functional and passing tests, some features may be missing, and documentation is being updated. For the stable release, see the [V3 branch](https://github.com/schemathesis/schemathesis/tree/v3).
131
+ ## Try it now
128
132
 
129
- ## Why Schemathesis?
133
+ ```console
134
+ # Test a demo API - finds real bugs instantly
135
+ uvx schemathesis run https://example.schemathesis.io/openapi.json
130
136
 
131
- - 📑 **Schema-Based Testing** - Transform API documentation into a comprehensive test suite
132
- - 🚀 **Zero Configuration** - Begin testing immediately with a valid OpenAPI or GraphQL schema
133
- - ⚙️ **CI-Ready** - Integrate API testing into existing pipelines without complex configuration
134
- - 🛡️ **Effective Coverage** - Find edge cases no manual testing could uncover
135
- - 🔬 **Research-Backed**: [Recognized](https://dl.acm.org/doi/10.1145/3617175) in [academic research](https://ieeexplore.ieee.org/document/9793781) as a state-of-the-art API testing tool
137
+ # Test your own API
138
+ uvx schemathesis run https://your-api.com/openapi.json
139
+ ```
136
140
 
137
- ## Installation
138
141
 
139
- ```console
140
- # Using uv (recommended)
141
- $ uv pip install schemathesis
142
+ ## What problems does it solve?
142
143
 
143
- # Using pip
144
- $ pip install schemathesis
144
+ - 💥 **500 errors** that crash your API on edge case inputs
145
+ - 📋 **Schema violations** where your API returns different data than documented
146
+ - 🚪 **Validation bypasses** where invalid data gets accepted
147
+ - 🔗 **Integration failures** when responses don't match client expectations
145
148
 
146
- # Using Docker
147
- $ docker pull schemathesis/schemathesis:stable
148
- ```
149
149
 
150
- ## Usage
150
+ > ⚠️ **Upgrading from older versions?** Check our [Migration Guide](https://github.com/schemathesis/schemathesis/blob/master/MIGRATION.md) for key changes.
151
151
 
152
- ### Command Line
152
+ # Installation & Usage
153
153
 
154
+ **Command Line:**
154
155
  ```console
155
- # Run tests against a schema URL
156
- $ st run https://example.schemathesis.io/openapi.json
156
+ uv pip install schemathesis
157
+ schemathesis run https://your-api.com/openapi.json
157
158
  ```
158
159
 
159
- ### Python Library
160
-
160
+ **Python Tests:**
161
161
  ```python
162
162
  import schemathesis
163
163
 
164
- schema = schemathesis.openapi.from_url("https://example.schemathesis.io/openapi.json")
165
-
164
+ schema = schemathesis.openapi.from_url("https://your-api.com/openapi.json")
166
165
 
167
166
  @schema.parametrize()
168
167
  def test_api(case):
169
- case.call_and_validate()
168
+ case.call_and_validate() # Finds bugs automatically
170
169
  ```
171
170
 
172
- ### CI/CD Integration
173
-
171
+ **CI/CD:**
174
172
  ```yaml
175
- # GitHub Actions example
176
- steps:
177
- - uses: schemathesis/action@v1
178
- with:
179
- schema: "https://example.schemathesis.io/openapi.json"
173
+ - uses: schemathesis/action@v1
174
+ with:
175
+ schema: "https://your-api.com/openapi.json"
180
176
  ```
181
177
 
182
- ## Documentation
178
+ ## Who uses it
183
179
 
184
- 📚 **[Read the full documentation](https://schemathesis.readthedocs.io/)** for guides, examples, and reference material.
185
-
186
- ## Who's Using Schemathesis?
187
-
188
- Schemathesis is used by companies and open-source projects including:
189
-
190
- - Netflix ([Dispatch](https://github.com/Netflix/dispatch))
191
- - Spotify ([Backstage](https://github.com/backstage/backstage))
192
- - WordPress ([OpenVerse](https://github.com/WordPress/openverse))
193
- - Chronosphere.io ([Calyptia](https://github.com/chronosphereio/calyptia-api))
194
- - [Qdrant](https://github.com/qdrant/qdrant)
195
- - [Pixie](https://github.com/pixie-io/pixie)
196
- - [CheckMK](https://github.com/Checkmk/checkmk)
197
- - [Weechat](https://github.com/weechat/weechat)
198
- - HXSecurity ([DongTai](https://github.com/HXSecurity/DongTai))
199
- - Abstract Machines ([Magistrala](https://github.com/absmach/magistrala))
200
- - Bundesstelle für Open Data ([smard-api](https://github.com/bundesAPI/smard-api))
201
-
202
- ## Testimonials
203
-
204
- "_The world needs modern, spec-based API tests, so we can deliver APIs as-designed. Schemathesis is the right tool for that job._"
205
-
206
- <div>Emmanuel Paraskakis - <strong>Level 250</strong></div>
207
-
208
- ---
180
+ Used by teams at **[Spotify](https://github.com/backstage/backstage)**, **[WordPress](https://github.com/WordPress/openverse)**, **JetBrains**, **Red Hat** and dozens other companies.
209
181
 
210
- "_Schemathesis is the only sane way to thoroughly test an API._"
211
182
 
212
- <div>Zdenek Nemec - <strong>superface.ai</strong></div>
183
+ > "_Schemathesis is the best tool for fuzz testing of REST API on the market. We are at Red Hat use it for examining our applications in functional and integrations testing levels._" - Dmitry Misharov, RedHat
213
184
 
214
- ---
215
-
216
- "_The tool is amazing as it can test negative scenarios instead of me and much faster!_"
217
-
218
- <div>Luděk Nový - <strong>JetBrains</strong></div>
219
-
220
- ---
221
-
222
- "_Schemathesis is the best tool for fuzz testing of REST API on the market. We are at Red Hat use it for examining our applications in functional and integrations testing levels._"
223
-
224
- <div>Dmitry Misharov - <strong>RedHat</strong></div>
185
+ ## Documentation
225
186
 
226
- ---
187
+ 📚 **[Complete documentation](https://schemathesis.readthedocs.io/en/latest/)** with guides, examples, and API reference.
227
188
 
228
- "_There are different levels of usability and documentation quality among these tools which have been reported, where Schemathesis clearly stands out among the most user-friendly and industry-strength tools._"
189
+ > **Note:** See also [docs](https://schemathesis.readthedocs.io/en/stable/) for the stable V3 release
229
190
 
230
- <div>Testing RESTful APIs: A Survey - <strong>a research paper by Golmohammadi, at al</strong></div>
191
+ ## Get Help
231
192
 
232
- ---
193
+ - 💬 [Discord community](https://discord.gg/R9ASRAmHnA)
194
+ - 🐛 [GitHub issues](https://github.com/schemathesis/schemathesis/issues)
233
195
 
234
196
  ## Contributing
235
197
 
236
- We welcome contributions! Your input directly influences Schemathesis development.
237
-
238
- - Discuss ideas in [GitHub issues](https://github.com/schemathesis/schemathesis/issues) or our [Discord server](https://discord.gg/R9ASRAmHnA)
239
- - See our [contributing guidelines](https://github.com/schemathesis/schemathesis/blob/master/CONTRIBUTING.rst) for code contributions
240
- - Share your experience using [this feedback form](https://forms.gle/kJ4hSxc1Yp6Ga96t5)
241
-
242
- ## Get in Touch
243
-
244
- Need assistance with integration or have specific questions? Contact us at <a href="mailto:support@schemathesis.io">support@schemathesis.io</a>.
198
+ We welcome contributions! See our [contributing guidelines](CONTRIBUTING.rst) and join discussions in [issues](https://github.com/schemathesis/schemathesis/issues) or [Discord](https://discord.gg/R9ASRAmHnA).
245
199
 
246
200
  ## Acknowledgements
247
201
 
248
202
  Schemathesis is built on top of <a href="https://hypothesis.works/" target="_blank">Hypothesis</a>, a powerful property-based testing library for Python.
249
203
 
204
+ ---
205
+
206
+ > **Note:** This is the V4 development branch. For the stable release, see [V3](https://github.com/schemathesis/schemathesis/tree/v3).
207
+
250
208
  ## License
251
209
 
252
210
  This project is licensed under the terms of the [MIT license](https://opensource.org/licenses/MIT).
@@ -1,59 +1,57 @@
1
- schemathesis/__init__.py,sha256=IznSJx_si-x3bBolTLGcq_NakcVoeMCtE11ctKuz9uE,1119
2
- schemathesis/auths.py,sha256=t-YuPyoLqL7jlRUH-45JxO7Ir3pYxpe31CRmNIJh7rI,15423
3
- schemathesis/checks.py,sha256=bNrebGDOryn2SmXcgMUVWhItCmGgiGSq54JMNvGiZjE,5421
1
+ schemathesis/__init__.py,sha256=QqVUCBQr-RDEstgCZLsxzIa9HJslVSeijrm9gES4b_0,1423
2
+ schemathesis/auths.py,sha256=JdEwPRS9WKmPcxzGXYYz9pjlIUMQYCfif7ZJU0Kde-I,16400
3
+ schemathesis/checks.py,sha256=GTdejjXDooAOuq66nvCK3i-AMPBuU-_-aNeSeL9JIlc,6561
4
4
  schemathesis/errors.py,sha256=T8nobEi5tQX_SkwaYb8JFoIlF9F_vOQVprZ8EVPAhjA,931
5
5
  schemathesis/filters.py,sha256=OEub50Ob5sf0Tn3iTeuIaxSMtepF7KVoiEM9wtt5GGA,13433
6
- schemathesis/hooks.py,sha256=ZSGEnsLJ7UVezf4CcaJebVkjEpvwgJolJFZo5fjQNDc,13153
6
+ schemathesis/hooks.py,sha256=XIeSKLiClAz3NlMqQ0oNCGZlu-f4Kvzju5gaxqlAqSs,13881
7
7
  schemathesis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- schemathesis/schemas.py,sha256=KyYuL04FAPEkc6mN53NioDEUgn7rmTDkvv5Q2_PGgoY,25824
8
+ schemathesis/schemas.py,sha256=abMMY3nT_lh5siRE3mc5oB6y4rNv2oDJnCE8e5B1pzs,28252
9
9
  schemathesis/cli/__init__.py,sha256=U9gjzWWpiFhaqevPjZbwyTNjABdpvXETI4HgwdGKnvs,877
10
10
  schemathesis/cli/__main__.py,sha256=MWaenjaUTZIfNPFzKmnkTiawUri7DVldtg3mirLwzU8,92
11
- schemathesis/cli/constants.py,sha256=rUixnqorraUFDtOu3Nmm1x_k0qbgmW9xW96kQB_fBCQ,338
11
+ schemathesis/cli/constants.py,sha256=TZuanbLb-VllesF6NbFSUz6a9Ne6Jir0IqHXYZegPJQ,341
12
12
  schemathesis/cli/core.py,sha256=ue7YUdVo3YvuzGL4s6i62NL6YqNDeVPBSnQ1znrvG2w,480
13
13
  schemathesis/cli/commands/__init__.py,sha256=rubTCCRGuMIbNYOl8yQEioiuHtTq__tWjkUtFWYGhqQ,3433
14
14
  schemathesis/cli/commands/data.py,sha256=_ALywjIeCZjuaoDQFy-Kj8RZkEGqXd-Y95O47h8Jszs,171
15
- schemathesis/cli/commands/run/__init__.py,sha256=wOrs_7aj-6nYBuuVnMTJ24u2s7C9_hsMwYYes0l5A-k,18818
16
- schemathesis/cli/commands/run/context.py,sha256=15jijsCgwFZYLfWbeQZJ9lWD0b3Jp3NfWTURzh6Uyuc,7663
17
- schemathesis/cli/commands/run/events.py,sha256=CuS5iZ5IoYl7d9ytvNmW73WEjjQ3SriEm1O9as8O2wU,1348
18
- schemathesis/cli/commands/run/executor.py,sha256=x4vfwP3B5OUhx9fiZMH3shjDmTkXZUcRAm3by613_lY,5132
15
+ schemathesis/cli/commands/run/__init__.py,sha256=qr6wSZSQMbLDNqsEyChLJr0616GuY1Wcg5gHjoTbPss,18648
16
+ schemathesis/cli/commands/run/context.py,sha256=taegOHWc_B-HDwiU1R9Oi4q57mdfLXc-B954QUj8t7A,7984
17
+ schemathesis/cli/commands/run/events.py,sha256=ew0TQOc9T2YBZynYWv95k9yfAk8-hGuZDLMxjT8EhvY,1595
18
+ schemathesis/cli/commands/run/executor.py,sha256=kFbZw583SZ-jqjv8goTp2yEJOpZ_bzecyTeZvdc6qTE,5327
19
19
  schemathesis/cli/commands/run/filters.py,sha256=pzkNRcf5vLPSsMfnvt711GNzRSBK5iZIFjPA0fiH1N4,1701
20
20
  schemathesis/cli/commands/run/loaders.py,sha256=6j0ez7wduAUYbUT28ELKxMf-dYEWr_67m_KIuTSyNGk,4358
21
- schemathesis/cli/commands/run/validation.py,sha256=xiDFkR_9lwRVLJXL-0paVMK1Q2JNu1qreDjwf1hoiGA,8502
21
+ schemathesis/cli/commands/run/validation.py,sha256=FzCzYdW1-hn3OgyzPO1p6wHEX5PG7HdewbPRvclV_vc,9002
22
22
  schemathesis/cli/commands/run/handlers/__init__.py,sha256=TPZ3KdGi8m0fjlN0GjA31MAXXn1qI7uU4FtiDwroXZI,1915
23
23
  schemathesis/cli/commands/run/handlers/base.py,sha256=yDsTtCiztLksfk7cRzg8JlaAVOfS-zwK3tsJMOXAFyc,530
24
24
  schemathesis/cli/commands/run/handlers/cassettes.py,sha256=Gu0qcxzvHp1zMY-SVkY96T-Ifwtdh6oj-w0gE1MShnA,19157
25
25
  schemathesis/cli/commands/run/handlers/junitxml.py,sha256=FX_347PcHhGLG7XY3eG8VwhB_8tSX4mOtqjZj_s6yLM,2402
26
- schemathesis/cli/commands/run/handlers/output.py,sha256=i0UGeKKVY4o1eiMzFtg3azXvCOOSj1FS4ZdScW4Nm5Y,58198
26
+ schemathesis/cli/commands/run/handlers/output.py,sha256=L-zJnMsbHMkilSG65W1a030cQ7Nfo2Gnnmsia-8pZOc,62554
27
27
  schemathesis/cli/ext/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  schemathesis/cli/ext/fs.py,sha256=3lvoAsEDDdih75ITJJNxemd3nwxX55gGWrI7uDxm0cM,447
29
29
  schemathesis/cli/ext/groups.py,sha256=kQ37t6qeArcKaY2y5VxyK3_KwAkBKCVm58IYV8gewds,2720
30
30
  schemathesis/cli/ext/options.py,sha256=6yYwZNJL__FCEEL7kI3r5MbVmbp3ZeQjm7DrZ6J_h7s,3347
31
- schemathesis/config/__init__.py,sha256=A7KvfcX_o2sWBXiO798vDUYVDSEQisI9-L84mLyYFZM,6192
31
+ schemathesis/config/__init__.py,sha256=Ff-mcdwCatFIS_WpJNpSe-gl7ez0-m_s4F2_4Teg2eM,6240
32
32
  schemathesis/config/_auth.py,sha256=83RLVPm97W2thbn-yi01Rt94YwOxLG_a5VoxhEfjUjs,1528
33
33
  schemathesis/config/_checks.py,sha256=F0r16eSSiICvoiTUkNNOE2PH73EGd8bikoeZdME_3Yw,10763
34
34
  schemathesis/config/_diff_base.py,sha256=-XqS6cTzZC5fplz8_2RSZHDMSAPJhBBIEP6H8wcgHmo,4221
35
35
  schemathesis/config/_env.py,sha256=8XfIyrnGNQuCDnfG0lwmKRFbasRUjgeQGBAMupsmtOU,613
36
36
  schemathesis/config/_error.py,sha256=TxuuqQ1olwJc7P7ssfxXb1dB_Xn5uVsoazjvYvRxrxA,5437
37
- schemathesis/config/_generation.py,sha256=gHLv3wiMuGKg47gwtq6Y6xLCJBE-pceIAlu6Jg4Kmlk,5136
37
+ schemathesis/config/_generation.py,sha256=_THqCfC20i8RRRsO2hAwoJ52FV-CS1xOA6me3Wp3FHw,5087
38
38
  schemathesis/config/_health_check.py,sha256=zC9inla5ibMBlEy5WyM4_TME7ju_KH3Bwfo21RI3Gks,561
39
- schemathesis/config/_operations.py,sha256=l1jQHQY18OGefFtvePNPmYhr7hLT0Re0fAUMY5VO2G4,11584
39
+ schemathesis/config/_operations.py,sha256=OZMTcfTLef6M8CR9logi6vyaz3XdmZfEMjIobgxjOHA,12181
40
40
  schemathesis/config/_output.py,sha256=3G9SOi-4oNcQPHeNRG3HggFCwvcKOW1kF28a9m0H-pU,4434
41
41
  schemathesis/config/_parameters.py,sha256=i76Hwaf834fBAMmtKfKTl1SFCicJ-Y-5tZt5QNGW2fA,618
42
- schemathesis/config/_phases.py,sha256=C-OLJNwkVIdp9w4Uw6qNTV2inQZdaT6UGkS7anHxUdg,5090
43
- schemathesis/config/_projects.py,sha256=U78ZixEIlWIFBXGHgMXrkKRNeol2PkOrHrSFRDvTIlk,18147
42
+ schemathesis/config/_phases.py,sha256=NFUhn-xzEQdNtgNVW1t51lMquXbjRNGR_QuiCRLCi28,6454
43
+ schemathesis/config/_projects.py,sha256=1rbI178wv743492FnexjdlsGvggNYpsbVUzQcUcJhAk,19487
44
44
  schemathesis/config/_rate_limit.py,sha256=ekEW-jP_Ichk_O6hYpj-h2TTTKfp7Fm0nyFUbvlWcbA,456
45
- schemathesis/config/_report.py,sha256=FAmmOndCuXju2Eat5DX1lBMobIHWLNSGyJBb7Q32bLk,3739
45
+ schemathesis/config/_report.py,sha256=aYLnPO74B7Wfn_qTwlEp5zY9L74U1XFuYS10yjwKKWY,3885
46
46
  schemathesis/config/_validator.py,sha256=IcE8geFZ0ZwR18rkIRs25i7pTl7Z84XbjYGUB-mqReU,258
47
- schemathesis/config/schema.json,sha256=dJSUxWvrME5JoknxBgkOBtWKZgkgYy-I9RCWIDQRkFE,17843
48
- schemathesis/contrib/__init__.py,sha256=wxpX86xrEGRAS3f7eugQfKVbnqV6ZfOqFBS_DmWxOok,120
49
- schemathesis/contrib/openapi/__init__.py,sha256=-7mBZ9RQj0EGzzmC-HKiT5ZslwHcoWFqCVpRG0GHO_o,162
50
- schemathesis/contrib/openapi/fill_missing_examples.py,sha256=BfBpuy3vCKbE_uILqPXnm7kxEDopAr5tNQwP5E9xX8A,585
47
+ schemathesis/config/_warnings.py,sha256=sI0VZcTj3dOnphhBwYwU_KTagxr89HGWTtQ99HcY84k,772
48
+ schemathesis/config/schema.json,sha256=wC1qe9M_fXotfmlBOmW_FCTRw9K5YC814-PipMGKllE,18907
51
49
  schemathesis/core/__init__.py,sha256=5fAAKG6BAA5DP9qOUnMT1cG5LLN3tU7D7VdLyb-MxfM,1880
52
50
  schemathesis/core/compat.py,sha256=9BWCrFoqN2sJIaiht_anxe8kLjYMR7t0iiOkXqLRUZ8,1058
53
51
  schemathesis/core/control.py,sha256=IzwIc8HIAEMtZWW0Q0iXI7T1niBpjvcLlbuwOSmy5O8,130
54
52
  schemathesis/core/curl.py,sha256=yuaCe_zHLGwUjEeloQi6W3tOA3cGdnHDNI17-5jia0o,1723
55
53
  schemathesis/core/deserialization.py,sha256=ygIj4fNaOd0mJ2IvTsn6bsabBt_2AbSLCz-z9UqfpdQ,2406
56
- schemathesis/core/errors.py,sha256=HbQJyxJbW0-GfhYvm-6nK20f4hiqsdDGEOy--agdvHE,16319
54
+ schemathesis/core/errors.py,sha256=pGKTQ7cAupuxurpUdUHoDd3iXc21OB7JxWKCKmFeUoo,16295
57
55
  schemathesis/core/failures.py,sha256=MYyRnom-XeUEuBmq2ffdz34xhxmpSHWaQunfHtliVsY,8932
58
56
  schemathesis/core/fs.py,sha256=ItQT0_cVwjDdJX9IiI7EnU75NI2H3_DCEyyUjzg_BgI,472
59
57
  schemathesis/core/hooks.py,sha256=qhbkkRSf8URJ4LKv2wmKRINKpquUOgxQzWBHKWRWo3Q,475
@@ -65,54 +63,54 @@ schemathesis/core/rate_limit.py,sha256=7tg9Znk11erTfw8-ANutjEmu7hbfUHZx_iEdkoaP1
65
63
  schemathesis/core/registries.py,sha256=T4jZB4y3zBHdeSgQc0pRbgSeMblvO-6z4I3zmzIfTi0,811
66
64
  schemathesis/core/result.py,sha256=d449YvyONjqjDs-A5DAPgtAI96iT753K8sU6_1HLo2Q,461
67
65
  schemathesis/core/transforms.py,sha256=63aeLkR93r3krq4CwYtDcoS_pFBky4L16c9DcFsBHuE,3535
68
- schemathesis/core/transport.py,sha256=VqtVF4JxMuPXSBORzS8SOSLUnCEZL6gPOr0kuymMCAk,3249
66
+ schemathesis/core/transport.py,sha256=LQcamAkFqJ0HuXQzepevAq2MCJW-uq5Nm-HE9yc7HMI,7503
69
67
  schemathesis/core/validation.py,sha256=rnhzsqWukMWyrc7sRm0kZNHTePoPCQ3A4kLpLxrb0jM,1641
70
68
  schemathesis/core/version.py,sha256=O-6yFbNocbD4RDwiBZLborxTp54htyKxBWTqpZDnPvg,202
71
69
  schemathesis/core/output/__init__.py,sha256=SiHqONFskXl73AtP5dV29L14nZoKo7B-IeG52KZB32M,1446
72
70
  schemathesis/core/output/sanitization.py,sha256=Ev3tae8dVwsYd7yVb2_1VBFYs92WFsQ4Eu1fGaymItE,2013
73
71
  schemathesis/engine/__init__.py,sha256=QaFE-FinaTAaarteADo2RRMJ-Sz6hZB9TzD5KjMinIA,706
74
- schemathesis/engine/context.py,sha256=1m6KiD2M9_fVRiUnYxFw2csUQeZV0N4FepR7w_DZCHA,3902
72
+ schemathesis/engine/context.py,sha256=x-I9KX6rO6hdCvvN8FEdzIZBqIcNaxdNYHgQjcXbZhM,3931
75
73
  schemathesis/engine/control.py,sha256=QKUOs5VMphe7EcAIro_DDo9ZqdOU6ZVwTU1gMNndHWw,1006
76
74
  schemathesis/engine/core.py,sha256=Pnpf1zNTxruUOnnJ9rQ-MskXj4WuA4A27_fWrf0hXWc,5609
77
- schemathesis/engine/errors.py,sha256=8PHYsuq2qIEJHm2FDf_UnWa4IDc-DRFTPckLAr22yhE,16895
78
- schemathesis/engine/events.py,sha256=gslRAWQKMPqBCQzLDS4wAbsKcVuONSy5SPqimJJJYT4,6250
75
+ schemathesis/engine/errors.py,sha256=SQdyu6qNk93bf4n3355wpzYE38m5bMIk8i6CR5fQIEE,18800
76
+ schemathesis/engine/events.py,sha256=VV6epicFIJnX4c87fVNSd0ibDccX3gryDv52OUGa3FI,6370
79
77
  schemathesis/engine/recorder.py,sha256=K3HfMARrT5mPWXPnYebjjcq5CcsBRhMrtZwEL9_Lvtg,8432
80
78
  schemathesis/engine/phases/__init__.py,sha256=zzILnWjoDJQwNmvEmrj3HXVAKT2q7Vb614svjyt8E-U,2794
81
- schemathesis/engine/phases/probes.py,sha256=MgjH3yLw0siiSnaESzDVww70Uz4dAyJ2W22H1Ome03Q,4964
82
- schemathesis/engine/phases/stateful/__init__.py,sha256=lWo2RLrutNblHvohTzofQqL22GORwBRA8bf6jvLuGPg,2391
83
- schemathesis/engine/phases/stateful/_executor.py,sha256=3_UV5r2O_nx4UCAF-m0xo_pdrvPwdZ_g_qQDr7JhTXE,13624
84
- schemathesis/engine/phases/stateful/context.py,sha256=SKWsok-tlWbUDagiUmP7cLNW6DsgFDc_Afv0vQfWv6c,2964
79
+ schemathesis/engine/phases/probes.py,sha256=-8JdQhMwANTkq64s5h8867oojorM5nUU8P0btdfJne4,5141
80
+ schemathesis/engine/phases/stateful/__init__.py,sha256=Lz1rgNqCfUSIz173XqCGsiMuUI5bh4L-RIFexU1-c_Q,2461
81
+ schemathesis/engine/phases/stateful/_executor.py,sha256=CV4jUuXpV4uSXVJqDI4btnLR8dpzOQVqbv2qVCgE4_s,15182
82
+ schemathesis/engine/phases/stateful/context.py,sha256=A7X1SLDOWFpCvFN9IiIeNVZM0emjqatmJL_k9UsO7vM,2946
85
83
  schemathesis/engine/phases/unit/__init__.py,sha256=BvZh39LZmXg90Cy_Tn0cQY5y7eWzYvAEmJ43fGKFAt8,8715
86
- schemathesis/engine/phases/unit/_executor.py,sha256=GE_uFbaaF7SuwL3K7HjSoDf5P3PFc7B1inhMhB3QRcE,14939
84
+ schemathesis/engine/phases/unit/_executor.py,sha256=jay_D7fmmBTjZigifmY30RiVP5Jb0OlK450fknSWZ_I,16471
87
85
  schemathesis/engine/phases/unit/_pool.py,sha256=iU0hdHDmohPnEv7_S1emcabuzbTf-Cznqwn0pGQ5wNQ,2480
88
- schemathesis/generation/__init__.py,sha256=QA2BiS4nk9VmcBn8_Ad6vaIbj6B9ToigLHLVn-DjCwM,700
89
- schemathesis/generation/case.py,sha256=dca80qoI4JZot84I7eqpxE_yWbNQ-iwKG6pXTIhxKP0,7486
90
- schemathesis/generation/coverage.py,sha256=ISXKXTdfYLpdo6bOIW3--AiwWVWnwfOwKb1KQZ7AEM8,47913
86
+ schemathesis/generation/__init__.py,sha256=tvNO2FLiY8z3fZ_kL_QJhSgzXfnT4UqwSXMHCwfLI0g,645
87
+ schemathesis/generation/case.py,sha256=WbOJagE7Gjz3ZvBxzRl8vJHgm_LjW0wf2oRuPzoj6LI,11547
88
+ schemathesis/generation/coverage.py,sha256=bKP0idU5-eiK4VwhH4kjxDPtCZzMg81mbN1tEDuT6EA,47913
91
89
  schemathesis/generation/meta.py,sha256=5ikrlhdk424dWcYLekZSMoWJYRl9_IhI80GKZzhByi4,2512
92
- schemathesis/generation/modes.py,sha256=t_EvKr2aOXYMsEfdMu4lLF4KCGcX1LVVyvzTkcpJqhk,663
93
- schemathesis/generation/overrides.py,sha256=iPxnxPIKKhO9mwPwKszYv40VM4ylxFJvhzWvrC6qkOE,4385
94
- schemathesis/generation/targets.py,sha256=_rN2qgxTE2EfvygiN-Fy3WmDnRH0ERohdx3sKRDaYhU,2120
90
+ schemathesis/generation/metrics.py,sha256=cZU5HdeAMcLFEDnTbNE56NuNq4P0N4ew-g1NEz5-kt4,2836
91
+ schemathesis/generation/modes.py,sha256=Q1fhjWr3zxabU5qdtLvKfpMFZJAwlW9pnxgenjeXTyU,481
92
+ schemathesis/generation/overrides.py,sha256=ZwU7k5WnkjjuzKorpBwl_eov1Ko1VfM5WqjdRlX2DK4,3691
95
93
  schemathesis/generation/hypothesis/__init__.py,sha256=SVwM-rx07jPZzms0idWYACgUtWAxh49HRuTnaQ__zf0,1549
96
- schemathesis/generation/hypothesis/builder.py,sha256=PYJaBbXMAPpM_9WkUmStQKoxQ67tWyJYybt6y4Izjg0,31487
94
+ schemathesis/generation/hypothesis/builder.py,sha256=2mXAVSkgl2SBV8IzrqkOd3okTD6oVLFdQoRirQMF7ss,32385
97
95
  schemathesis/generation/hypothesis/examples.py,sha256=6eGaKUEC3elmKsaqfKj1sLvM8EHc-PWT4NRBq4NI0Rs,1409
98
96
  schemathesis/generation/hypothesis/given.py,sha256=sTZR1of6XaHAPWtHx2_WLlZ50M8D5Rjux0GmWkWjDq4,2337
99
97
  schemathesis/generation/hypothesis/reporting.py,sha256=uDVow6Ya8YFkqQuOqRsjbzsbyP4KKfr3jA7ZaY4FuKY,279
100
98
  schemathesis/generation/hypothesis/strategies.py,sha256=RurE81E06d99YKG48dizy9346ayfNswYTt38zewmGgw,483
101
- schemathesis/generation/stateful/__init__.py,sha256=kXpCGbo1-QqfR2N0Z07tLw0Z5_tvbuG3Tk-WI_I1doI,653
102
- schemathesis/generation/stateful/state_machine.py,sha256=h79_G8oUOU8TVJFFF6EKbrW8KPuz6E8gc7us0TC2lrA,12656
99
+ schemathesis/generation/stateful/__init__.py,sha256=s7jiJEnguIj44IsRyMi8afs-8yjIUuBbzW58bH5CHjs,1042
100
+ schemathesis/generation/stateful/state_machine.py,sha256=1cY3AH-f_AbUGfvfK8WMMKkUxAJT9Iw8eZGyRE2Sd44,8740
103
101
  schemathesis/graphql/__init__.py,sha256=_eO6MAPHGgiADVGRntnwtPxmuvk666sAh-FAU4cG9-0,326
104
102
  schemathesis/graphql/checks.py,sha256=IADbxiZjgkBWrC5yzHDtohRABX6zKXk5w_zpWNwdzYo,3186
105
- schemathesis/graphql/loaders.py,sha256=bBXWLbwyF31nQILSVldysP1IEMrYle-j71n8nx1TZAE,5301
103
+ schemathesis/graphql/loaders.py,sha256=KarhFo2lDiC_1GcC2UGHl_MRDWAMMMWtE7sKrdbaJvo,9348
106
104
  schemathesis/openapi/__init__.py,sha256=-KcsSAM19uOM0N5J4s-yTnQ1BFsptYhW1E51cEf6kVM,311
107
- schemathesis/openapi/checks.py,sha256=5AP_pjTIJ7GcHNhTtGz-IOeoutZ4HqkxyoANrRKf23M,10825
108
- schemathesis/openapi/loaders.py,sha256=18vdQZGUtwvHUrHZYRmKDoLzuNA5kBx3YdSTKEfuSzQ,7062
105
+ schemathesis/openapi/checks.py,sha256=CQ9IjySb7wXJkbv5K0eUKZ0iU1LW--fbfN-wD6ayOV8,12389
106
+ schemathesis/openapi/loaders.py,sha256=1jh4Me2dngWalBmX5xjfln90tfbH-afxmjsiY1BuUTE,10645
109
107
  schemathesis/openapi/generation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- schemathesis/openapi/generation/filters.py,sha256=EBbgW9zH3wA4d9FyBWp4koiPrrIpNGFnousBDl9qJso,2079
108
+ schemathesis/openapi/generation/filters.py,sha256=pY9cUZdL_kQK80Z2aylTOqqa12zmaYUlYC5BfYgeQMk,2395
111
109
  schemathesis/pytest/__init__.py,sha256=7W0q-Thcw03IAQfXE_Mo8JPZpUdHJzfu85fjK1ZdfQM,88
112
110
  schemathesis/pytest/control_flow.py,sha256=F8rAPsPeNv_sJiJgbZYtTpwKWjauZmqFUaKroY2GmQI,217
113
- schemathesis/pytest/lazy.py,sha256=Wbyn3fYqcmDL7uOFO0PgVpR7--MP8g3Z8q1yArjmDEo,11824
114
- schemathesis/pytest/loaders.py,sha256=oQJ78yyuIm3Ye9X7giVjDB1vYfaW5UY5YuhaTLm_ZFU,266
115
- schemathesis/pytest/plugin.py,sha256=j8L3JV1ijf9dYpoLTDNJpdFnS2fbsYM3Gzv-3r2nk60,12454
111
+ schemathesis/pytest/lazy.py,sha256=W9epwVFYjOZRZSNemHUsgIwvRp9ya9p8IGHxvg3_t18,10854
112
+ schemathesis/pytest/loaders.py,sha256=Sbv8e5F77_x4amLP50iwubfm6kpOhx7LhLFGsVXW5Ys,925
113
+ schemathesis/pytest/plugin.py,sha256=m4zGLw6A537o4mBb9FvuM4jmAoxfpg0DPLWq5eCLXGc,13818
116
114
  schemathesis/python/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
115
  schemathesis/python/asgi.py,sha256=5PyvuTBaivvyPUEi3pwJni91K1kX5Zc0u9c6c1D8a1Q,287
118
116
  schemathesis/python/wsgi.py,sha256=uShAgo_NChbfYaV1117e6UHp0MTg7jaR0Sy_to3Jmf8,219
@@ -120,23 +118,23 @@ schemathesis/specs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
120
118
  schemathesis/specs/graphql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
121
119
  schemathesis/specs/graphql/_cache.py,sha256=QIcEFy2Koy5K0-u1nB-iab52LDlYsTm_9N5t42GplkM,770
122
120
  schemathesis/specs/graphql/nodes.py,sha256=bE3G1kNmqJ8OV4igBvIK-UORrkQA6Nofduf87O3TD9I,541
123
- schemathesis/specs/graphql/scalars.py,sha256=ERUECtwWuEe4_T_fpM6DQJKLrkvahbnaswM7oEOcC0M,1850
124
- schemathesis/specs/graphql/schemas.py,sha256=EjvXLjti2w11AJF5Hi0m-AXVgtMXw4Z1BoCW1OQfQfU,14168
121
+ schemathesis/specs/graphql/scalars.py,sha256=6lew8mnwhrtg23leiEbG43mLGPLlRln8mClCY94XpDA,2680
122
+ schemathesis/specs/graphql/schemas.py,sha256=25TXYPCxAXCAWE0L_vDFLDXmhNe7ac4YQbKulJuf9zI,14542
125
123
  schemathesis/specs/graphql/validation.py,sha256=-W1Noc1MQmTb4RX-gNXMeU2qkgso4mzVfHxtdLkCPKM,1422
126
124
  schemathesis/specs/openapi/__init__.py,sha256=C5HOsfuDJGq_3mv8CRBvRvb0Diy1p0BFdqyEXMS-loE,238
127
125
  schemathesis/specs/openapi/_cache.py,sha256=HpglmETmZU0RCHxp3DO_sg5_B_nzi54Zuw9vGzzYCxY,4295
128
- schemathesis/specs/openapi/_hypothesis.py,sha256=gLQjVkYkR8Z_dw3HzHeAKDm08qdTZphPHlM0Jzu0xe4,21576
129
- schemathesis/specs/openapi/checks.py,sha256=oEnogK5H8c_GEJrYe-2_crhDKiOijYFdspVUjtOW1So,27469
126
+ schemathesis/specs/openapi/_hypothesis.py,sha256=005E_gH4YGhOORQyJtP6vkOOM0-FgiES06JpXRcdL5c,22601
127
+ schemathesis/specs/openapi/checks.py,sha256=mKJ-ZkbjhbXS4eWDZiv8zslXKFDqkE3Mp4N8TVDHiI0,29801
130
128
  schemathesis/specs/openapi/constants.py,sha256=JqM_FHOenqS_MuUE9sxVQ8Hnw0DNM8cnKDwCwPLhID4,783
131
129
  schemathesis/specs/openapi/converter.py,sha256=lil8IewM5j8tvt4lpA9g_KITvIwx1M96i45DNSHNjoc,3505
132
130
  schemathesis/specs/openapi/definitions.py,sha256=8htclglV3fW6JPBqs59lgM4LnA25Mm9IptXBPb_qUT0,93949
133
131
  schemathesis/specs/openapi/examples.py,sha256=9dMY4d2WWz32JywKZzyLO5jdbMWcRqjjGHzhMqlqwIs,21129
134
- schemathesis/specs/openapi/formats.py,sha256=CbuFP_pegtIQfG0AH2gTl0KCCAI6y1a_z6hGvjeIa5A,2810
135
- schemathesis/specs/openapi/media_types.py,sha256=ADedOaNWjbAtAekyaKmNj9fY6zBTeqcNqBEjN0EWNhI,1014
136
- schemathesis/specs/openapi/parameters.py,sha256=tVL61gDe9A8_jwoVKZZvpXKPerMyq7vkAvwdMsi44TI,14622
132
+ schemathesis/specs/openapi/formats.py,sha256=8AIS7Uey-Z1wm1WYRqnsVqHwG9d316PdqfKLqwUs7us,3516
133
+ schemathesis/specs/openapi/media_types.py,sha256=F5M6TKl0s6Z5X8mZpPsWDEdPBvxclKRcUOc41eEwKbo,2472
134
+ schemathesis/specs/openapi/parameters.py,sha256=BevME4DWLQ-OFvc_7fREMjj99VAbVNxVb5i8OEX6Pfs,14453
137
135
  schemathesis/specs/openapi/patterns.py,sha256=cBj8W4wn7VLJd4nABaIH5f502-zBDiqljxLgPWUn-50,15609
138
136
  schemathesis/specs/openapi/references.py,sha256=40YcDExPLR2B8EOwt-Csw-5MYFi2xj_DXf91J0Pc9d4,8855
139
- schemathesis/specs/openapi/schemas.py,sha256=bTa7LEod5Oaqc42TD4JwUDCDLDwB4PYtkU60hsY9IQE,54672
137
+ schemathesis/specs/openapi/schemas.py,sha256=TIKj9dnCHkBdBofgt0UH4fMByklv5ijy-JAc8i9_D5Y,51415
140
138
  schemathesis/specs/openapi/security.py,sha256=6UWYMhL-dPtkTineqqBFNKca1i4EuoTduw-EOLeE0aQ,7149
141
139
  schemathesis/specs/openapi/serialization.py,sha256=VdDLmeHqxlWM4cxQQcCkvrU6XurivolwEEaT13ohelA,11972
142
140
  schemathesis/specs/openapi/utils.py,sha256=ER4vJkdFVDIE7aKyxyYatuuHVRNutytezgE52pqZNE8,900
@@ -144,23 +142,23 @@ schemathesis/specs/openapi/expressions/__init__.py,sha256=hfuRtXD75tQFhzSo6QgDZ3
144
142
  schemathesis/specs/openapi/expressions/errors.py,sha256=YLVhps-sYcslgVaahfcUYxUSHlIfWL-rQMeT5PZSMZ8,219
145
143
  schemathesis/specs/openapi/expressions/extractors.py,sha256=Py3of3_vBACP4ljiZIcgd-xQCrWIpcMsfQFc0EtAUoA,470
146
144
  schemathesis/specs/openapi/expressions/lexer.py,sha256=KFA8Z-Kh1IYUpKgwAnDtEucN9YLLpnFR1GQl8KddWlA,3987
147
- schemathesis/specs/openapi/expressions/nodes.py,sha256=63LC4mQHy3a0_tKiGIVWaUHu9L9IWilq6R004GLpjyY,4077
145
+ schemathesis/specs/openapi/expressions/nodes.py,sha256=KMTzuOXwzKQ09NU3m7Q9vDYI2Vgg6YiZJ7RnqnY2gbE,4049
148
146
  schemathesis/specs/openapi/expressions/parser.py,sha256=e-ZxshrGE_5CVbgcZLYgdGSjdifgyzgKkLQp0dI0cJY,4503
149
- schemathesis/specs/openapi/negative/__init__.py,sha256=eKiBWsMYjcJ0mNmh07IOnbVMHZ8k-fCidcohwBz8yJ4,3741
150
- schemathesis/specs/openapi/negative/mutations.py,sha256=MIFVSWbZHW92KhpWruJT3XLisgc-rFnvYasRtwMmExs,19253
147
+ schemathesis/specs/openapi/negative/__init__.py,sha256=qSANRvaBWJcyz637TT8I0YOLWz03pC-uHW9Tmm1qrQU,3840
148
+ schemathesis/specs/openapi/negative/mutations.py,sha256=r7kc8KVhDGMECvQtGZKHrzSJMRaknMwyfAbCq0BuQAo,19246
151
149
  schemathesis/specs/openapi/negative/types.py,sha256=a7buCcVxNBG6ILBM3A7oNTAX0lyDseEtZndBuej8MbI,174
152
150
  schemathesis/specs/openapi/negative/utils.py,sha256=ozcOIuASufLqZSgnKUACjX-EOZrrkuNdXX0SDnLoGYA,168
153
- schemathesis/specs/openapi/stateful/__init__.py,sha256=AZoc9lTb0P6zeVf8Yf4D5ZcVecz2E1osCeDpv3WS-sw,14994
151
+ schemathesis/specs/openapi/stateful/__init__.py,sha256=FSitLbJxjBYU814cqjI_QCkdyoIc-9xfT_1HQcYwsXw,15064
154
152
  schemathesis/specs/openapi/stateful/control.py,sha256=QaXLSbwQWtai5lxvvVtQV3BLJ8n5ePqSKB00XFxp-MA,3695
155
- schemathesis/specs/openapi/stateful/links.py,sha256=8oHpmb-yBa3kZKoCv9ytndpOp80dG1vVis2-EpbkeVA,11432
156
- schemathesis/transport/__init__.py,sha256=z-mRNSOlMBKwQyaEIhpmYv0plWTmK5dJqc9UmQOry80,3949
153
+ schemathesis/specs/openapi/stateful/links.py,sha256=fU-dn0ds7Dk7QHSF781kMF3Vq_3QuAjoelEb3lVWig0,8805
154
+ schemathesis/transport/__init__.py,sha256=6yg_RfV_9L0cpA6qpbH-SL9_3ggtHQji9CZrpIkbA6s,5321
157
155
  schemathesis/transport/asgi.py,sha256=qTClt6oT_xUEWnRHokACN_uqCNNUZrRPT6YG0PjbElY,926
158
- schemathesis/transport/prepare.py,sha256=wBqKgDyrIxaH1HOP7hjb5ERoSh0WkCBDu7yCaAJQlEY,3958
159
- schemathesis/transport/requests.py,sha256=zGpTJiDjeX-H6WOJHf13TMe9WSblGCcrVbSEekj8zMU,8831
160
- schemathesis/transport/serialization.py,sha256=jIMra1LqRGav0OX3Hx7mvORt38ll4cd2DKit2D58FN0,10531
161
- schemathesis/transport/wsgi.py,sha256=Eva8iTYGSmdqV7-1WSUXLe3Ysdr8vTijTwadM6ybPxE,5736
162
- schemathesis-4.0.0a11.dist-info/METADATA,sha256=fWWqGEuqISnHZCYthJw9bMx3XmndCWScfSUSMugrpJc,10380
163
- schemathesis-4.0.0a11.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
164
- schemathesis-4.0.0a11.dist-info/entry_points.txt,sha256=hiK3un-xfgPdwj9uj16YVDtTNpO128bmk0U82SMv8ZQ,152
165
- schemathesis-4.0.0a11.dist-info/licenses/LICENSE,sha256=2Ve4J8v5jMQAWrT7r1nf3bI8Vflk3rZVQefiF2zpxwg,1121
166
- schemathesis-4.0.0a11.dist-info/RECORD,,
156
+ schemathesis/transport/prepare.py,sha256=c7__wdblBC4zqnmtcs99zoAeEY8jfXiGbdzh74icj6g,4668
157
+ schemathesis/transport/requests.py,sha256=J0j4_9KUBLqgObAklG_Ay62EKdPUeDIcbOMeutl2ctk,9170
158
+ schemathesis/transport/serialization.py,sha256=igUXKZ_VJ9gV7P0TUc5PDQBJXl_s0kK9T3ljGWWvo6E,10339
159
+ schemathesis/transport/wsgi.py,sha256=nqmIqYrhC_eqgJSgmDKWz2WSAMFMVVXThJCQLNf1cEQ,5970
160
+ schemathesis-4.0.0b1.dist-info/METADATA,sha256=FPV1rSUtj2GWrwasISiHccIMkYZnnO8ExnGn34Y2Abc,8711
161
+ schemathesis-4.0.0b1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
162
+ schemathesis-4.0.0b1.dist-info/entry_points.txt,sha256=hiK3un-xfgPdwj9uj16YVDtTNpO128bmk0U82SMv8ZQ,152
163
+ schemathesis-4.0.0b1.dist-info/licenses/LICENSE,sha256=2Ve4J8v5jMQAWrT7r1nf3bI8Vflk3rZVQefiF2zpxwg,1121
164
+ schemathesis-4.0.0b1.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- from . import openapi
2
-
3
-
4
- def install() -> None:
5
- openapi.install()
6
-
7
-
8
- def uninstall() -> None:
9
- openapi.uninstall()
@@ -1,9 +0,0 @@
1
- from . import fill_missing_examples
2
-
3
-
4
- def install() -> None:
5
- fill_missing_examples.install()
6
-
7
-
8
- def uninstall() -> None:
9
- fill_missing_examples.uninstall()
@@ -1,20 +0,0 @@
1
- from __future__ import annotations
2
-
3
- from schemathesis.generation.case import Case
4
- from schemathesis.hooks import HookContext, register, unregister
5
-
6
-
7
- def install() -> None:
8
- register(before_add_examples)
9
-
10
-
11
- def uninstall() -> None:
12
- unregister(before_add_examples)
13
-
14
-
15
- def before_add_examples(context: HookContext, examples: list[Case]) -> None:
16
- if not examples and context.operation is not None:
17
- from schemathesis.generation.hypothesis.examples import add_single_example
18
-
19
- strategy = context.operation.as_strategy()
20
- add_single_example(strategy, examples)