schemathesis 3.33.3__py3-none-any.whl → 3.34.1__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/auths.py +71 -13
- schemathesis/checks.py +2 -0
- schemathesis/cli/__init__.py +10 -0
- schemathesis/cli/callbacks.py +3 -6
- schemathesis/cli/junitxml.py +20 -17
- schemathesis/cli/sanitization.py +5 -0
- schemathesis/exceptions.py +8 -0
- schemathesis/failures.py +20 -0
- schemathesis/generation/__init__.py +2 -0
- schemathesis/hooks.py +81 -8
- schemathesis/internal/transformation.py +10 -0
- schemathesis/models.py +12 -26
- schemathesis/runner/events.py +1 -0
- schemathesis/runner/impl/core.py +13 -1
- schemathesis/sanitization.py +1 -0
- schemathesis/schemas.py +12 -2
- schemathesis/service/serialization.py +1 -0
- schemathesis/specs/graphql/schemas.py +4 -0
- schemathesis/specs/openapi/checks.py +251 -12
- schemathesis/specs/openapi/links.py +45 -14
- schemathesis/specs/openapi/schemas.py +33 -17
- schemathesis/specs/openapi/stateful/__init__.py +18 -7
- schemathesis/stateful/__init__.py +20 -16
- schemathesis/stateful/config.py +10 -3
- schemathesis/stateful/state_machine.py +20 -1
- schemathesis/transports/__init__.py +9 -1
- {schemathesis-3.33.3.dist-info → schemathesis-3.34.1.dist-info}/METADATA +11 -3
- {schemathesis-3.33.3.dist-info → schemathesis-3.34.1.dist-info}/RECORD +31 -31
- {schemathesis-3.33.3.dist-info → schemathesis-3.34.1.dist-info}/WHEEL +0 -0
- {schemathesis-3.33.3.dist-info → schemathesis-3.34.1.dist-info}/entry_points.txt +0 -0
- {schemathesis-3.33.3.dist-info → schemathesis-3.34.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -60,6 +60,9 @@ class StatefulTest:
|
|
|
60
60
|
def parse(self, case: Case, response: GenericResponse) -> ParsedData:
|
|
61
61
|
raise NotImplementedError
|
|
62
62
|
|
|
63
|
+
def is_match(self) -> bool:
|
|
64
|
+
raise NotImplementedError
|
|
65
|
+
|
|
63
66
|
def make_operation(self, collected: list[ParsedData]) -> APIOperation:
|
|
64
67
|
raise NotImplementedError
|
|
65
68
|
|
|
@@ -113,22 +116,23 @@ class Feedback:
|
|
|
113
116
|
from .._hypothesis import create_test
|
|
114
117
|
|
|
115
118
|
for data in self.stateful_tests.values():
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
119
|
+
if data.stateful_test.is_match():
|
|
120
|
+
operation = data.make_operation()
|
|
121
|
+
_as_strategy_kwargs: dict[str, Any] | None
|
|
122
|
+
if callable(as_strategy_kwargs):
|
|
123
|
+
_as_strategy_kwargs = as_strategy_kwargs(operation)
|
|
124
|
+
else:
|
|
125
|
+
_as_strategy_kwargs = as_strategy_kwargs
|
|
126
|
+
test_function = create_test(
|
|
127
|
+
operation=operation,
|
|
128
|
+
test=test,
|
|
129
|
+
settings=settings,
|
|
130
|
+
seed=seed,
|
|
131
|
+
data_generation_methods=operation.schema.data_generation_methods,
|
|
132
|
+
generation_config=generation_config,
|
|
133
|
+
as_strategy_kwargs=_as_strategy_kwargs,
|
|
134
|
+
)
|
|
135
|
+
yield Ok((operation, test_function))
|
|
132
136
|
|
|
133
137
|
|
|
134
138
|
def run_state_machine_as_test(
|
schemathesis/stateful/config.py
CHANGED
|
@@ -19,15 +19,20 @@ if TYPE_CHECKING:
|
|
|
19
19
|
|
|
20
20
|
def _default_checks_factory() -> tuple[CheckFunction, ...]:
|
|
21
21
|
from ..checks import ALL_CHECKS
|
|
22
|
-
from ..specs.openapi.checks import use_after_free
|
|
22
|
+
from ..specs.openapi.checks import ensure_resource_availability, use_after_free
|
|
23
23
|
|
|
24
|
-
return ALL_CHECKS + (use_after_free,)
|
|
24
|
+
return ALL_CHECKS + (use_after_free, ensure_resource_availability)
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
def _get_default_hypothesis_settings_kwargs() -> dict[str, Any]:
|
|
28
28
|
import hypothesis
|
|
29
29
|
|
|
30
|
-
return {
|
|
30
|
+
return {
|
|
31
|
+
"phases": (hypothesis.Phase.generate,),
|
|
32
|
+
"deadline": None,
|
|
33
|
+
"stateful_step_count": 6,
|
|
34
|
+
"suppress_health_check": list(hypothesis.HealthCheck),
|
|
35
|
+
}
|
|
31
36
|
|
|
32
37
|
|
|
33
38
|
def _default_hypothesis_settings_factory() -> hypothesis.settings:
|
|
@@ -86,4 +91,6 @@ def _get_hypothesis_settings_kwargs_override(settings: hypothesis.settings) -> d
|
|
|
86
91
|
kwargs["stateful_step_count"] = state_machine_default.stateful_step_count
|
|
87
92
|
if settings.deadline in (hypothesis_default.deadline, timedelta(milliseconds=DEFAULT_DEADLINE)):
|
|
88
93
|
kwargs["deadline"] = state_machine_default.deadline
|
|
94
|
+
if settings.suppress_health_check == hypothesis_default.suppress_health_check:
|
|
95
|
+
kwargs["suppress_health_check"] = state_machine_default.suppress_health_check
|
|
89
96
|
return kwargs
|
|
@@ -3,7 +3,8 @@ from __future__ import annotations
|
|
|
3
3
|
import re
|
|
4
4
|
import time
|
|
5
5
|
from dataclasses import dataclass
|
|
6
|
-
from
|
|
6
|
+
from functools import lru_cache
|
|
7
|
+
from typing import TYPE_CHECKING, Any, ClassVar, Type
|
|
7
8
|
|
|
8
9
|
from hypothesis.errors import InvalidDefinition
|
|
9
10
|
from hypothesis.stateful import RuleBasedStateMachine
|
|
@@ -12,6 +13,7 @@ from .._dependency_versions import HYPOTHESIS_HAS_STATEFUL_NAMING_IMPROVEMENTS
|
|
|
12
13
|
from ..constants import NO_LINKS_ERROR_MESSAGE, NOT_SET
|
|
13
14
|
from ..exceptions import UsageError
|
|
14
15
|
from ..models import APIOperation, Case, CheckFunction
|
|
16
|
+
from .config import _default_hypothesis_settings_factory
|
|
15
17
|
from .runner import StatefulTestRunner, StatefulTestRunnerConfig
|
|
16
18
|
from .sink import StateMachineSink
|
|
17
19
|
from .statistic import TransitionStats
|
|
@@ -60,6 +62,23 @@ class APIStateMachine(RuleBasedStateMachine):
|
|
|
60
62
|
raise
|
|
61
63
|
self.setup()
|
|
62
64
|
|
|
65
|
+
@classmethod
|
|
66
|
+
@lru_cache
|
|
67
|
+
def _to_test_case(cls) -> Type:
|
|
68
|
+
from . import run_state_machine_as_test
|
|
69
|
+
|
|
70
|
+
class StateMachineTestCase(RuleBasedStateMachine.TestCase):
|
|
71
|
+
settings = _default_hypothesis_settings_factory()
|
|
72
|
+
|
|
73
|
+
def runTest(self) -> None:
|
|
74
|
+
run_state_machine_as_test(cls, settings=self.settings)
|
|
75
|
+
|
|
76
|
+
runTest.is_hypothesis_test = True # type: ignore[attr-defined]
|
|
77
|
+
|
|
78
|
+
StateMachineTestCase.__name__ = cls.__name__ + ".TestCase"
|
|
79
|
+
StateMachineTestCase.__qualname__ = cls.__qualname__ + ".TestCase"
|
|
80
|
+
return StateMachineTestCase
|
|
81
|
+
|
|
63
82
|
def _pretty_print(self, value: Any) -> str:
|
|
64
83
|
if isinstance(value, Case):
|
|
65
84
|
# State machines suppose to be reproducible, hence it is OK to get kwargs here
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import base64
|
|
4
|
+
import inspect
|
|
4
5
|
import time
|
|
5
6
|
from contextlib import contextmanager
|
|
6
7
|
from dataclasses import dataclass
|
|
@@ -219,8 +220,15 @@ def validate_vanilla_requests_kwargs(data: dict[str, Any]) -> None:
|
|
|
219
220
|
"""
|
|
220
221
|
url = data["url"]
|
|
221
222
|
if not urlparse(url).netloc:
|
|
223
|
+
stack = inspect.stack()
|
|
224
|
+
method_name = "call"
|
|
225
|
+
for frame in stack[1:]:
|
|
226
|
+
if frame.function == "call_and_validate":
|
|
227
|
+
method_name = "call_and_validate"
|
|
228
|
+
break
|
|
222
229
|
raise RuntimeError(
|
|
223
|
-
"The
|
|
230
|
+
"The `base_url` argument is required when specifying a schema via a file, so Schemathesis knows where to send the data. \n"
|
|
231
|
+
f"Pass `base_url` either to the `schemathesis.from_*` loader or to the `Case.{method_name}`.\n"
|
|
224
232
|
f"If you use the ASGI integration, please supply your test client "
|
|
225
233
|
f"as the `session` argument to `call`.\nURL: {url}"
|
|
226
234
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: schemathesis
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.34.1
|
|
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
|
|
@@ -33,11 +33,11 @@ Requires-Dist: click<9.0,>=7.0
|
|
|
33
33
|
Requires-Dist: colorama<1.0,>=0.4
|
|
34
34
|
Requires-Dist: harfile<1.0,>=0.3.0
|
|
35
35
|
Requires-Dist: httpx<1.0,>=0.22.0
|
|
36
|
-
Requires-Dist: hypothesis-graphql<1,>=0.11.
|
|
36
|
+
Requires-Dist: hypothesis-graphql<1,>=0.11.1
|
|
37
37
|
Requires-Dist: hypothesis-jsonschema<0.24,>=0.23.1
|
|
38
38
|
Requires-Dist: hypothesis<7,>=6.103.4; python_version > '3.8'
|
|
39
39
|
Requires-Dist: hypothesis[zoneinfo]<7,>=6.103.4; python_version == '3.8'
|
|
40
|
-
Requires-Dist: jsonschema<5.0,>=4.18.0
|
|
40
|
+
Requires-Dist: jsonschema[format]<5.0,>=4.18.0
|
|
41
41
|
Requires-Dist: junit-xml<2.0,>=1.9
|
|
42
42
|
Requires-Dist: pyrate-limiter<4.0,>=2.10
|
|
43
43
|
Requires-Dist: pytest-subtests<0.8.0,>=0.2.1
|
|
@@ -344,6 +344,10 @@ Schemathesis is used by a number of project and companies, including direct usag
|
|
|
344
344
|
|
|
345
345
|
### Articles
|
|
346
346
|
|
|
347
|
+
- [Boost Your FastAPI Reliability with Schemathesis Automated Testing](https://medium.com/@jeremy3/boost-your-fastapi-reliability-with-schemathesis-automated-testing-e8b70ff704f6) by **Jeremy**
|
|
348
|
+
- **Description**: Showcases how easy Schemathesis covers API testing in FastAPI projects.
|
|
349
|
+
- **Date**: 17 Jul 2024
|
|
350
|
+
|
|
347
351
|
- [Implementing Schemathesis at PayLead](https://medium.com/paylead/implementing-schemathesis-at-paylead-a469a5d43626) by **Jérémy Pelletier** at **PayLead**
|
|
348
352
|
- **Description**: In-depth walkthrough including custom hooks, stateful testing and CI/CD integration.
|
|
349
353
|
- **Date**: 29 May 2024
|
|
@@ -369,6 +373,10 @@ Schemathesis is used by a number of project and companies, including direct usag
|
|
|
369
373
|
|
|
370
374
|
### Videos
|
|
371
375
|
|
|
376
|
+
- [API Testing With Unittest Mock, Pytest & Schemathesis](https://youtu.be/56whiv57T9I) by **
|
|
377
|
+
Ssali Jonathan**
|
|
378
|
+
- **Description**: Describes various API testing techniques and features Schemathesis for automatic test generation.
|
|
379
|
+
- **Date**: 29 Jul 2024
|
|
372
380
|
- [API Fuzzing: What it is and why you should use it](https://youtu.be/wX3GMJY9B6A) by **José Haro Peralta**
|
|
373
381
|
- **Description**: A comprehensive overview and demo of Schemathesis.
|
|
374
382
|
- **Date**: 14 Feb 2023
|
|
@@ -6,39 +6,39 @@ schemathesis/_lazy_import.py,sha256=aMhWYgbU2JOltyWBb32vnWBb6kykOghucEzI_F70yVE,
|
|
|
6
6
|
schemathesis/_override.py,sha256=3CbA7P9Q89W3ymaYxiOV5Xpv1yhoBqroLK4YRpYMjX4,1630
|
|
7
7
|
schemathesis/_rate_limiter.py,sha256=q_XWst5hzuAyXQRiZc4s_bx7-JlPYZM_yKDmeavt3oo,242
|
|
8
8
|
schemathesis/_xml.py,sha256=lwRaKEMQvl6SUySnhGgooNsdmXPnDh11YSPpbsW8dR8,6923
|
|
9
|
-
schemathesis/auths.py,sha256=
|
|
10
|
-
schemathesis/checks.py,sha256=
|
|
9
|
+
schemathesis/auths.py,sha256=FvBgJWmaTFWH0dW3aLgNmRAubE03VME3gU8Dbv8NwrA,16786
|
|
10
|
+
schemathesis/checks.py,sha256=5wugI6gNVX1W3hUPU7G6l2u20R_A3fxI_7fwC-9_vto,2483
|
|
11
11
|
schemathesis/code_samples.py,sha256=xk1-1jnXg5hS40VzIZp8PEtZwGaazNlVKMT7_X-zG-M,4123
|
|
12
12
|
schemathesis/constants.py,sha256=l1YQ7PXhEj9dyf9CTESVUpPOaFCH7iz-Fe8o4v6Th_s,2673
|
|
13
|
-
schemathesis/exceptions.py,sha256=
|
|
14
|
-
schemathesis/failures.py,sha256=
|
|
13
|
+
schemathesis/exceptions.py,sha256=iKNKlQhxYOCQOoKu_Tztg9JXO4XyJHh5UNvwLGsvQw8,20268
|
|
14
|
+
schemathesis/failures.py,sha256=dlvobJxkbxab-P1GMVrcnbcvf0-1qyhz79Fdw9pFJEw,7578
|
|
15
15
|
schemathesis/filters.py,sha256=t1P236DPVaWvhu2Sm6OGy6Oe2x-nnwEVYRau4qqX6C4,17034
|
|
16
16
|
schemathesis/graphql.py,sha256=YkoKWY5K8lxp7H3ikAs-IsoDbiPwJvChG7O8p3DgwtI,229
|
|
17
|
-
schemathesis/hooks.py,sha256=
|
|
17
|
+
schemathesis/hooks.py,sha256=Uv9rZHqM2bpb_uYBjf4kqsMeu7XdLOHpRWSaN43xIgw,14774
|
|
18
18
|
schemathesis/lazy.py,sha256=hGwSuWe5tDaGpjZTV4Mj8zqdrHDYHxR22N2p5h2yh1g,18897
|
|
19
19
|
schemathesis/loaders.py,sha256=OtCD1o0TVmSNAUF7dgHpouoAXtY6w9vEtsRVGv4lE0g,4588
|
|
20
|
-
schemathesis/models.py,sha256=
|
|
20
|
+
schemathesis/models.py,sha256=WpF-W592_MVWnMZ8t7wt_A2fr3YNLEwPX3r-jwW8GpY,44266
|
|
21
21
|
schemathesis/parameters.py,sha256=PndmqQRlEYsCt1kWjSShPsFf6vj7X_7FRdz_-A95eNg,2258
|
|
22
22
|
schemathesis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
-
schemathesis/sanitization.py,sha256=
|
|
24
|
-
schemathesis/schemas.py,sha256=
|
|
23
|
+
schemathesis/sanitization.py,sha256=_qSt04f_XcHrgguyUnowvdfj-b6u409Ubu07i0ivQUQ,9011
|
|
24
|
+
schemathesis/schemas.py,sha256=YXTWWM1JTFNQEKrxWPye1uQgm3I1_MQPBbc2Y4KW19o,20610
|
|
25
25
|
schemathesis/serializers.py,sha256=kxXZ-UGa1v_vOm0sC4QYcrNv4rfvI7tHGT2elRVbCbc,11649
|
|
26
26
|
schemathesis/targets.py,sha256=XIGRghvEzbmEJjse9aZgNEj67L3jAbiazm2rxURWgDE,2351
|
|
27
27
|
schemathesis/throttling.py,sha256=aisUc4MJDGIOGUAs9L2DlWWpdd4KyAFuNVKhYoaUC9M,1719
|
|
28
28
|
schemathesis/types.py,sha256=xOzNAeMs6qqeaJnWs5Fpw5JPbvVjyfRfxTJa3G2Ln5I,920
|
|
29
29
|
schemathesis/utils.py,sha256=NX04p9mO-lCAH3DIISXDXPxWZk6lkGNM4-ubRi8vlvY,5234
|
|
30
|
-
schemathesis/cli/__init__.py,sha256=
|
|
30
|
+
schemathesis/cli/__init__.py,sha256=ZxFkRvpRAaV5OuDZeHEeWrFTnVjJXX-w4cQfYe_R6Yw,73390
|
|
31
31
|
schemathesis/cli/__main__.py,sha256=MWaenjaUTZIfNPFzKmnkTiawUri7DVldtg3mirLwzU8,92
|
|
32
|
-
schemathesis/cli/callbacks.py,sha256=
|
|
32
|
+
schemathesis/cli/callbacks.py,sha256=PJs64n6qGrGC5Yv_yl3fGm797cvN6pp2enFLmSljGKs,15127
|
|
33
33
|
schemathesis/cli/cassettes.py,sha256=lKKKKLjoVT8VnZXjCOCmDYhvLKn1XSrCXCMF9EeftHA,18498
|
|
34
34
|
schemathesis/cli/constants.py,sha256=wk-0GsoJIel8wFFerQ6Kf_6eAYUtIWkwMFwyAqv3yj4,1635
|
|
35
35
|
schemathesis/cli/context.py,sha256=EMeyAbU9mRujR46anc43yr6ab4rGYtIDaHC3cV9Qa-Q,2092
|
|
36
36
|
schemathesis/cli/debug.py,sha256=_YA-bX1ujHl4bqQDEum7M-I2XHBTEGbvgkhvcvKhmgU,658
|
|
37
37
|
schemathesis/cli/handlers.py,sha256=RjvogPCqqFTiyVYWrGG6euw9-6h-7uSeFvS-ouU8eWs,389
|
|
38
|
-
schemathesis/cli/junitxml.py,sha256=
|
|
38
|
+
schemathesis/cli/junitxml.py,sha256=FeQbgjYYwD0twk1QSbP3AivLPhHGwIuikQ6CN2Kw9ho,5050
|
|
39
39
|
schemathesis/cli/options.py,sha256=DY5PUzpUNyYgpcqqFTeZjmVUykpbaI9fbN44QIWNOfA,2559
|
|
40
40
|
schemathesis/cli/reporting.py,sha256=zNKaRAUfDZ23-gMtiWbnG2OBndkYlM7ljKvk0Mc_lqI,3589
|
|
41
|
-
schemathesis/cli/sanitization.py,sha256=
|
|
41
|
+
schemathesis/cli/sanitization.py,sha256=Onw_NWZSom6XTVNJ5NHnC0PAhrYAcGzIXJbsBCzLkn4,1005
|
|
42
42
|
schemathesis/cli/output/__init__.py,sha256=AXaUzQ1nhQ-vXhW4-X-91vE2VQtEcCOrGtQXXNN55iQ,29
|
|
43
43
|
schemathesis/cli/output/default.py,sha256=nYuUwm2M3pIsDebofgXuIFb7Vl4t4sLO0PKmJcE6tb8,39385
|
|
44
44
|
schemathesis/cli/output/short.py,sha256=CL6-Apxr5tuZ3BL1vecV1MiRY1wDt21g0wiUwZu6mLM,2607
|
|
@@ -57,7 +57,7 @@ schemathesis/extra/pytest_plugin.py,sha256=ymicV2NjmSzee0ccUUUjNEvb9ihCxxf_8M60g
|
|
|
57
57
|
schemathesis/fixups/__init__.py,sha256=RP5QYJVJhp8LXjhH89fCRaIVU26dHCy74jD9seoYMuc,967
|
|
58
58
|
schemathesis/fixups/fast_api.py,sha256=mn-KzBqnR8jl4W5fY-_ZySabMDMUnpzCIESMHnlvE1c,1304
|
|
59
59
|
schemathesis/fixups/utf8_bom.py,sha256=lWT9RNmJG8i-l5AXIpaCT3qCPUwRgzXPW3eoOjmZETA,745
|
|
60
|
-
schemathesis/generation/__init__.py,sha256=
|
|
60
|
+
schemathesis/generation/__init__.py,sha256=wUd5HqIh96Aw91Un0rLOd3XXi2E3BXedSMMjS5RXkuo,2472
|
|
61
61
|
schemathesis/internal/__init__.py,sha256=93HcdG3LF0BbQKbCteOsFMa1w6nXl8yTmx87QLNJOik,161
|
|
62
62
|
schemathesis/internal/copy.py,sha256=DcL56z-d69kKR_5u8mlHvjSL1UTyUKNMAwexrwHFY1s,1031
|
|
63
63
|
schemathesis/internal/datetime.py,sha256=zPLBL0XXLNfP-KYel3H2m8pnsxjsA_4d-zTOhJg2EPQ,136
|
|
@@ -66,14 +66,14 @@ schemathesis/internal/extensions.py,sha256=h0aHRK_PTKfiAufkeBziegQS8537TL-Gr1hPW
|
|
|
66
66
|
schemathesis/internal/jsonschema.py,sha256=-7tF15cXo1ZdhiRFYYfEClXihX2Svc5Loi_Dz1x201k,1157
|
|
67
67
|
schemathesis/internal/output.py,sha256=zMaG5knIuBieVH8CrcmPJgbmQukDs2xdekX0BrK7BZs,1989
|
|
68
68
|
schemathesis/internal/result.py,sha256=d449YvyONjqjDs-A5DAPgtAI96iT753K8sU6_1HLo2Q,461
|
|
69
|
-
schemathesis/internal/transformation.py,sha256=
|
|
69
|
+
schemathesis/internal/transformation.py,sha256=M5LA4pFZC4nD_0iGfih1wLF3_q8xJas94Uuaymt-7Cw,690
|
|
70
70
|
schemathesis/internal/validation.py,sha256=G7i8jIMUpAeOnDsDF_eWYvRZe_yMprRswx0QAtMPyEw,966
|
|
71
71
|
schemathesis/runner/__init__.py,sha256=-aedUaRBCiTiaooC0OsBbdi4XP8APFOpj6eOzwt5nQ8,21366
|
|
72
|
-
schemathesis/runner/events.py,sha256=
|
|
72
|
+
schemathesis/runner/events.py,sha256=F3TizErDI490cDakpyeCbyK9IOecWpuToQ1HGXvBXzo,11531
|
|
73
73
|
schemathesis/runner/probes.py,sha256=no5AfO3kse25qvHevjeUfB0Q3C860V2AYzschUW3QMQ,5688
|
|
74
74
|
schemathesis/runner/serialization.py,sha256=erbXEHyI8rIlkQ42AwgmlH7aAbh313EPqCEfrGKxUls,20040
|
|
75
75
|
schemathesis/runner/impl/__init__.py,sha256=1E2iME8uthYPBh9MjwVBCTFV-P3fi7AdphCCoBBspjs,199
|
|
76
|
-
schemathesis/runner/impl/core.py,sha256=
|
|
76
|
+
schemathesis/runner/impl/core.py,sha256=H4sYY59kMXQPeOD4BH3j47Ymvix71FSgyQh36flrQxM,45605
|
|
77
77
|
schemathesis/runner/impl/solo.py,sha256=N7-pUL6nWGiSRUC4Zqy1T4h99vbeQowP6b6cMnobOow,3042
|
|
78
78
|
schemathesis/runner/impl/threadpool.py,sha256=JtTn5X7gqpbkO4q8n5kykGEPQCpJ9hXJrvU3KMF1CXA,14948
|
|
79
79
|
schemathesis/service/__init__.py,sha256=cDVTCFD1G-vvhxZkJUwiToTAEQ-0ByIoqwXvJBCf_V8,472
|
|
@@ -87,7 +87,7 @@ schemathesis/service/hosts.py,sha256=ad2Lxq9Zcc9PP-1eFLQnxen4ImglcGOH8n7CGG72NNg
|
|
|
87
87
|
schemathesis/service/metadata.py,sha256=x2LeCED1mdPf-YQJmjY8xtcIKHfD1ap5V0BGl-UgqNo,2087
|
|
88
88
|
schemathesis/service/models.py,sha256=ihItUJ9CvH4TvmdfJY3W88NR82OODF8a3RD7WRXn6RM,6578
|
|
89
89
|
schemathesis/service/report.py,sha256=4A8nf6_KOjDW3x1VXF8gSf_WY2xXp1Cbz-Owl_GeR7o,8294
|
|
90
|
-
schemathesis/service/serialization.py,sha256=
|
|
90
|
+
schemathesis/service/serialization.py,sha256=DSpDu2f9KTW7PVcFAb4uSA_rnHctuvFlnF-JJ0XyDnE,6240
|
|
91
91
|
schemathesis/service/usage.py,sha256=UbXqxeDq5mAjKkfV4hApZsReZmQHXiqoXUYn_Z6YuZk,2438
|
|
92
92
|
schemathesis/specs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
93
|
schemathesis/specs/graphql/__init__.py,sha256=fgyHtvWNUVWismBTOqxQtgLoTighTfvMv6v6QCD_Oyc,85
|
|
@@ -95,23 +95,23 @@ schemathesis/specs/graphql/_cache.py,sha256=7ras3q_InDJBPykgHroerl9f2jFamC8xJD35
|
|
|
95
95
|
schemathesis/specs/graphql/loaders.py,sha256=qxNGL67_AfhoRh0hIxlnJVe6do26vqwWS_TrJtB-Lro,12198
|
|
96
96
|
schemathesis/specs/graphql/nodes.py,sha256=bE3G1kNmqJ8OV4igBvIK-UORrkQA6Nofduf87O3TD9I,541
|
|
97
97
|
schemathesis/specs/graphql/scalars.py,sha256=9tvLTiYVe8A_E8ASA0czz3Z0Mp9lyak7R4wHpAE_jKo,1805
|
|
98
|
-
schemathesis/specs/graphql/schemas.py,sha256=
|
|
98
|
+
schemathesis/specs/graphql/schemas.py,sha256=L7u73YXnmqypghWhmj5FaGUAmU57IporT9NteinEVYY,14036
|
|
99
99
|
schemathesis/specs/graphql/validation.py,sha256=uINIOt-2E7ZuQV2CxKzwez-7L9tDtqzMSpnVoRWvxy0,1635
|
|
100
100
|
schemathesis/specs/openapi/__init__.py,sha256=HDcx3bqpa6qWPpyMrxAbM3uTo0Lqpg-BUNZhDJSJKnw,279
|
|
101
101
|
schemathesis/specs/openapi/_cache.py,sha256=PAiAu4X_a2PQgD2lG5H3iisXdyg4SaHpU46bRZvfNkM,4320
|
|
102
102
|
schemathesis/specs/openapi/_hypothesis.py,sha256=XtC-rYiH-GHvWykdSSzPFVK7jHNNL7NtibjSEeIZDQw,24122
|
|
103
|
-
schemathesis/specs/openapi/checks.py,sha256=
|
|
103
|
+
schemathesis/specs/openapi/checks.py,sha256=CxDs3eXEXRN6c8xZNrEK60toImgirTP6VTBSoj5w7CU,21236
|
|
104
104
|
schemathesis/specs/openapi/constants.py,sha256=JqM_FHOenqS_MuUE9sxVQ8Hnw0DNM8cnKDwCwPLhID4,783
|
|
105
105
|
schemathesis/specs/openapi/converter.py,sha256=TaYgc5BBHPdkN-n0lqpbeVgLu3eL3L8Wu3y_Vo3TJaQ,2800
|
|
106
106
|
schemathesis/specs/openapi/definitions.py,sha256=Z186F0gNBSCmPg-Kk7Q-n6XxEZHIOzgUyeqixlC62XE,94058
|
|
107
107
|
schemathesis/specs/openapi/examples.py,sha256=ElfX1kZ4XWfOSOVbes_ovy4P6q_NgWpa0RF0rNJLVM4,16170
|
|
108
108
|
schemathesis/specs/openapi/formats.py,sha256=JmmkQWNAj5XreXb7Edgj4LADAf4m86YulR_Ec8evpJ4,1220
|
|
109
|
-
schemathesis/specs/openapi/links.py,sha256=
|
|
109
|
+
schemathesis/specs/openapi/links.py,sha256=DCOu14VOFqKYYFbQJHWICDpmTBzJfeP2v2FXBwW3vBI,17531
|
|
110
110
|
schemathesis/specs/openapi/loaders.py,sha256=AcpvTK8qdirSRcHcinCjQbwfSQSx448LAh_GvFML1C0,25515
|
|
111
111
|
schemathesis/specs/openapi/media_types.py,sha256=dNTxpRQbY3SubdVjh4Cjb38R6Bc9MF9BsRQwPD87x0g,1017
|
|
112
112
|
schemathesis/specs/openapi/parameters.py,sha256=_6vNCnPXcdxjfAQbykCRLHjvmTpu_02xDJghxDrGYr8,13611
|
|
113
113
|
schemathesis/specs/openapi/references.py,sha256=euxM02kQGMHh4Ss1jWjOY_gyw_HazafKITIsvOEiAvI,9831
|
|
114
|
-
schemathesis/specs/openapi/schemas.py,sha256=
|
|
114
|
+
schemathesis/specs/openapi/schemas.py,sha256=c732S1iDo-Ns-mw8xfRn98KXzhE6bgmgYk9KN9lTqhc,53003
|
|
115
115
|
schemathesis/specs/openapi/security.py,sha256=nEhDB_SvEFldmfpa9uOQywfWN6DtXHKmgtwucJvfN5Q,7096
|
|
116
116
|
schemathesis/specs/openapi/serialization.py,sha256=5qGdFHZ3n80UlbSXrO_bkr4Al_7ci_Z3aSUjZczNDQY,11384
|
|
117
117
|
schemathesis/specs/openapi/utils.py,sha256=-TCu0hTrlwp2x5qHNp-TxiHRMeIZC9OBmlhLssjRIiQ,742
|
|
@@ -127,25 +127,25 @@ schemathesis/specs/openapi/negative/__init__.py,sha256=gw0w_9tVQf_MY5Df3_xTZFC4r
|
|
|
127
127
|
schemathesis/specs/openapi/negative/mutations.py,sha256=lLEN0GLxvPmZBQ3tHCznDSjmZ4yQiQxspjv1UpO4Kx0,19019
|
|
128
128
|
schemathesis/specs/openapi/negative/types.py,sha256=a7buCcVxNBG6ILBM3A7oNTAX0lyDseEtZndBuej8MbI,174
|
|
129
129
|
schemathesis/specs/openapi/negative/utils.py,sha256=ozcOIuASufLqZSgnKUACjX-EOZrrkuNdXX0SDnLoGYA,168
|
|
130
|
-
schemathesis/specs/openapi/stateful/__init__.py,sha256=
|
|
130
|
+
schemathesis/specs/openapi/stateful/__init__.py,sha256=WV0iPWE_BiSoTu2bt0IMbuk71TDJvLPv403thTSXcqc,8662
|
|
131
131
|
schemathesis/specs/openapi/stateful/statistic.py,sha256=EJK4NqeAYRYl1FtU9YEuTLyhGhPmks0bLoxUPuQlOvM,7443
|
|
132
132
|
schemathesis/specs/openapi/stateful/types.py,sha256=UuGcCTFvaHsqeLN9ZeUNcbjsEwmthoT3UcHfDHchOYo,419
|
|
133
|
-
schemathesis/stateful/__init__.py,sha256=
|
|
134
|
-
schemathesis/stateful/config.py,sha256=
|
|
133
|
+
schemathesis/stateful/__init__.py,sha256=gONzl3pgZ8DihjK52Wd3Ye1LeP6gnulmevHI_jEqHWI,5088
|
|
134
|
+
schemathesis/stateful/config.py,sha256=s0klpsesAJuK9IS6V8pVJNO-OwB0MbmzlXkU3WlMO1g,3556
|
|
135
135
|
schemathesis/stateful/context.py,sha256=MeP3-lKyhtAd-jzApC65AWlDZSOBzQq0IgK-nvagYqs,4519
|
|
136
136
|
schemathesis/stateful/events.py,sha256=reGjsmS-y2izRd3bahpEZNe4zxTSpKAkPI-nCQyoUzI,6733
|
|
137
137
|
schemathesis/stateful/runner.py,sha256=tIlXRpy0Y0vuQYjTlafpZ4Ur_KhFhdK5CH7ScRvDPWk,11110
|
|
138
138
|
schemathesis/stateful/sink.py,sha256=xjsqJYH5WETKh5pDGlchYyjT3HcjzHEotUjvo1p0JsE,2470
|
|
139
|
-
schemathesis/stateful/state_machine.py,sha256=
|
|
139
|
+
schemathesis/stateful/state_machine.py,sha256=u7PkwCjxTZZcePC7GPiOUuu4uhqUees3UuorD_0Sx_c,12938
|
|
140
140
|
schemathesis/stateful/statistic.py,sha256=xPLiCw61ofNXQicqcK_sZyLHiqiGcgQARpwd8AiRubM,487
|
|
141
141
|
schemathesis/stateful/validation.py,sha256=JtqnRzl11ZbVR8Lcr0xBJKoOXzx8VUfRz92jOnB2Smg,3605
|
|
142
|
-
schemathesis/transports/__init__.py,sha256=
|
|
142
|
+
schemathesis/transports/__init__.py,sha256=tIJm79N_pBHM5ccvez4Z4mW-VrG1LfN8yq7B0v9YDGk,12832
|
|
143
143
|
schemathesis/transports/auth.py,sha256=yELjkEkfx4g74hNrd0Db9aFf0xDJDRIwhg2vzKOTZGg,1138
|
|
144
144
|
schemathesis/transports/content_types.py,sha256=VrcRQvF5T_TUjrCyrZcYF2LOwKfs3IrLcMtkVSp1ImI,2189
|
|
145
145
|
schemathesis/transports/headers.py,sha256=hr_AIDOfUxsJxpHfemIZ_uNG3_vzS_ZeMEKmZjbYiBE,990
|
|
146
146
|
schemathesis/transports/responses.py,sha256=6-gvVcRK0Ho_lSydUysBNFWoJwZEiEgf6Iv-GWkQGd8,1675
|
|
147
|
-
schemathesis-3.
|
|
148
|
-
schemathesis-3.
|
|
149
|
-
schemathesis-3.
|
|
150
|
-
schemathesis-3.
|
|
151
|
-
schemathesis-3.
|
|
147
|
+
schemathesis-3.34.1.dist-info/METADATA,sha256=8nsSWlenwayD_fjRDqd_VqwH3zB3deT0zOEjq4JU7U8,18373
|
|
148
|
+
schemathesis-3.34.1.dist-info/WHEEL,sha256=hKi7AIIx6qfnsRbr087vpeJnrVUuDokDHZacPPMW7-Y,87
|
|
149
|
+
schemathesis-3.34.1.dist-info/entry_points.txt,sha256=VHyLcOG7co0nOeuk8WjgpRETk5P1E2iCLrn26Zkn5uk,158
|
|
150
|
+
schemathesis-3.34.1.dist-info/licenses/LICENSE,sha256=PsPYgrDhZ7g9uwihJXNG-XVb55wj2uYhkl2DD8oAzY0,1103
|
|
151
|
+
schemathesis-3.34.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|