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.
- schemathesis/__init__.py +35 -27
- schemathesis/auths.py +85 -54
- schemathesis/checks.py +65 -36
- schemathesis/cli/commands/run/__init__.py +32 -27
- schemathesis/cli/commands/run/context.py +6 -1
- schemathesis/cli/commands/run/events.py +7 -1
- schemathesis/cli/commands/run/executor.py +12 -7
- schemathesis/cli/commands/run/handlers/output.py +188 -80
- schemathesis/cli/commands/run/validation.py +21 -6
- schemathesis/cli/constants.py +1 -1
- schemathesis/config/__init__.py +2 -1
- schemathesis/config/_generation.py +12 -13
- schemathesis/config/_operations.py +14 -0
- schemathesis/config/_phases.py +41 -5
- schemathesis/config/_projects.py +33 -1
- schemathesis/config/_report.py +6 -2
- schemathesis/config/_warnings.py +25 -0
- schemathesis/config/schema.json +49 -1
- schemathesis/core/errors.py +15 -19
- schemathesis/core/transport.py +117 -2
- schemathesis/engine/context.py +1 -0
- schemathesis/engine/errors.py +61 -2
- schemathesis/engine/events.py +10 -2
- schemathesis/engine/phases/probes.py +3 -0
- schemathesis/engine/phases/stateful/__init__.py +2 -1
- schemathesis/engine/phases/stateful/_executor.py +38 -5
- schemathesis/engine/phases/stateful/context.py +2 -2
- schemathesis/engine/phases/unit/_executor.py +36 -7
- schemathesis/generation/__init__.py +0 -3
- schemathesis/generation/case.py +153 -28
- schemathesis/generation/coverage.py +1 -1
- schemathesis/generation/hypothesis/builder.py +43 -19
- schemathesis/generation/metrics.py +93 -0
- schemathesis/generation/modes.py +0 -8
- schemathesis/generation/overrides.py +11 -27
- schemathesis/generation/stateful/__init__.py +17 -0
- schemathesis/generation/stateful/state_machine.py +32 -108
- schemathesis/graphql/loaders.py +152 -8
- schemathesis/hooks.py +63 -39
- schemathesis/openapi/checks.py +82 -20
- schemathesis/openapi/generation/filters.py +9 -2
- schemathesis/openapi/loaders.py +134 -8
- schemathesis/pytest/lazy.py +4 -31
- schemathesis/pytest/loaders.py +24 -0
- schemathesis/pytest/plugin.py +38 -6
- schemathesis/schemas.py +161 -94
- schemathesis/specs/graphql/scalars.py +37 -3
- schemathesis/specs/graphql/schemas.py +18 -9
- schemathesis/specs/openapi/_hypothesis.py +53 -34
- schemathesis/specs/openapi/checks.py +111 -47
- schemathesis/specs/openapi/expressions/nodes.py +1 -1
- schemathesis/specs/openapi/formats.py +30 -3
- schemathesis/specs/openapi/media_types.py +44 -1
- schemathesis/specs/openapi/negative/__init__.py +5 -3
- schemathesis/specs/openapi/negative/mutations.py +2 -2
- schemathesis/specs/openapi/parameters.py +0 -3
- schemathesis/specs/openapi/schemas.py +14 -93
- schemathesis/specs/openapi/stateful/__init__.py +2 -1
- schemathesis/specs/openapi/stateful/links.py +1 -63
- schemathesis/transport/__init__.py +54 -16
- schemathesis/transport/prepare.py +31 -7
- schemathesis/transport/requests.py +21 -9
- schemathesis/transport/serialization.py +0 -4
- schemathesis/transport/wsgi.py +15 -8
- {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/METADATA +45 -87
- {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/RECORD +69 -71
- schemathesis/contrib/__init__.py +0 -9
- schemathesis/contrib/openapi/__init__.py +0 -9
- schemathesis/contrib/openapi/fill_missing_examples.py +0 -20
- schemathesis/generation/targets.py +0 -69
- {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/WHEEL +0 -0
- {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/entry_points.txt +0 -0
- {schemathesis-4.0.0a11.dist-info → schemathesis-4.0.0b1.dist-info}/licenses/LICENSE +0 -0
schemathesis/transport/wsgi.py
CHANGED
@@ -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["
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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.
|
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
|
-
|
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>
|
128
|
+
<i>Finding bugs that manual testing missed</i>
|
125
129
|
</p>
|
126
130
|
|
127
|
-
|
131
|
+
## Try it now
|
128
132
|
|
129
|
-
|
133
|
+
```console
|
134
|
+
# Test a demo API - finds real bugs instantly
|
135
|
+
uvx schemathesis run https://example.schemathesis.io/openapi.json
|
130
136
|
|
131
|
-
|
132
|
-
|
133
|
-
|
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
|
-
|
140
|
-
# Using uv (recommended)
|
141
|
-
$ uv pip install schemathesis
|
142
|
+
## What problems does it solve?
|
142
143
|
|
143
|
-
|
144
|
-
|
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
|
-
|
150
|
+
> ⚠️ **Upgrading from older versions?** Check our [Migration Guide](https://github.com/schemathesis/schemathesis/blob/master/MIGRATION.md) for key changes.
|
151
151
|
|
152
|
-
|
152
|
+
# Installation & Usage
|
153
153
|
|
154
|
+
**Command Line:**
|
154
155
|
```console
|
155
|
-
|
156
|
-
|
156
|
+
uv pip install schemathesis
|
157
|
+
schemathesis run https://your-api.com/openapi.json
|
157
158
|
```
|
158
159
|
|
159
|
-
|
160
|
-
|
160
|
+
**Python Tests:**
|
161
161
|
```python
|
162
162
|
import schemathesis
|
163
163
|
|
164
|
-
schema = schemathesis.openapi.from_url("https://
|
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
|
-
|
173
|
-
|
171
|
+
**CI/CD:**
|
174
172
|
```yaml
|
175
|
-
|
176
|
-
|
177
|
-
|
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
|
-
##
|
178
|
+
## Who uses it
|
183
179
|
|
184
|
-
|
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
|
-
|
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
|
-
|
189
|
+
> **Note:** See also [docs](https://schemathesis.readthedocs.io/en/stable/) for the stable V3 release
|
229
190
|
|
230
|
-
|
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!
|
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=
|
2
|
-
schemathesis/auths.py,sha256=
|
3
|
-
schemathesis/checks.py,sha256=
|
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=
|
6
|
+
schemathesis/hooks.py,sha256=XIeSKLiClAz3NlMqQ0oNCGZlu-f4Kvzju5gaxqlAqSs,13881
|
7
7
|
schemathesis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
schemathesis/schemas.py,sha256=
|
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=
|
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=
|
16
|
-
schemathesis/cli/commands/run/context.py,sha256=
|
17
|
-
schemathesis/cli/commands/run/events.py,sha256=
|
18
|
-
schemathesis/cli/commands/run/executor.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
43
|
-
schemathesis/config/_projects.py,sha256=
|
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=
|
45
|
+
schemathesis/config/_report.py,sha256=aYLnPO74B7Wfn_qTwlEp5zY9L74U1XFuYS10yjwKKWY,3885
|
46
46
|
schemathesis/config/_validator.py,sha256=IcE8geFZ0ZwR18rkIRs25i7pTl7Z84XbjYGUB-mqReU,258
|
47
|
-
schemathesis/config/
|
48
|
-
schemathesis/
|
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=
|
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=
|
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=
|
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=
|
78
|
-
schemathesis/engine/events.py,sha256=
|
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
|
82
|
-
schemathesis/engine/phases/stateful/__init__.py,sha256=
|
83
|
-
schemathesis/engine/phases/stateful/_executor.py,sha256=
|
84
|
-
schemathesis/engine/phases/stateful/context.py,sha256=
|
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=
|
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=
|
89
|
-
schemathesis/generation/case.py,sha256=
|
90
|
-
schemathesis/generation/coverage.py,sha256=
|
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/
|
93
|
-
schemathesis/generation/
|
94
|
-
schemathesis/generation/
|
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=
|
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=
|
102
|
-
schemathesis/generation/stateful/state_machine.py,sha256=
|
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=
|
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=
|
108
|
-
schemathesis/openapi/loaders.py,sha256=
|
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=
|
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=
|
114
|
-
schemathesis/pytest/loaders.py,sha256=
|
115
|
-
schemathesis/pytest/plugin.py,sha256=
|
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=
|
124
|
-
schemathesis/specs/graphql/schemas.py,sha256=
|
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=
|
129
|
-
schemathesis/specs/openapi/checks.py,sha256=
|
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=
|
135
|
-
schemathesis/specs/openapi/media_types.py,sha256=
|
136
|
-
schemathesis/specs/openapi/parameters.py,sha256=
|
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=
|
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=
|
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=
|
150
|
-
schemathesis/specs/openapi/negative/mutations.py,sha256=
|
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=
|
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=
|
156
|
-
schemathesis/transport/__init__.py,sha256=
|
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=
|
159
|
-
schemathesis/transport/requests.py,sha256=
|
160
|
-
schemathesis/transport/serialization.py,sha256=
|
161
|
-
schemathesis/transport/wsgi.py,sha256=
|
162
|
-
schemathesis-4.0.
|
163
|
-
schemathesis-4.0.
|
164
|
-
schemathesis-4.0.
|
165
|
-
schemathesis-4.0.
|
166
|
-
schemathesis-4.0.
|
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,,
|
schemathesis/contrib/__init__.py
DELETED
@@ -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)
|