pytest-jsonschema-snapshot 0.2.6__tar.gz → 0.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/PKG-INFO +1 -1
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/__init__.py +1 -1
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/core.py +5 -5
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/some_schema.schema.json +34 -2
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.flake8 +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/documentation_issue.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/PULL_REQUEST_TEMPLATE/general.md +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/actions/build-docs/action.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/release.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/reusable-test.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/test.yml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.gitignore +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/LICENSE +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/Makefile +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/README.md +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/assets/logo.png +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/_static/logo_day.png +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/_static/logo_night.png +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/basic/quick_start.rst +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/conf.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/index.rst +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pyproject.toml +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/plugin.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/py.typed +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/stats.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/tools/__init__.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/tools/name_maker.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/reinstall_plugin.sh +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/requirements.txt +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/test_stats.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/tools/test_name_maker.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.first.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.first.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/array_formats_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/array_formats_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/date_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/date_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/datetime_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/datetime_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/email_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/email_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.first.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.first.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/ipv4_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/ipv4_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/mixed_formats_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/mixed_formats_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/multi_schema_one.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/multi_schema_three.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/multi_schema_two.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/regular_strings_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/regular_strings_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/some_schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/strict_email_validation_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/strict_email_validation_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uri_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uri_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uuid_test.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uuid_test.schema.json +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_base.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_base_name_callable.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_format_detection.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_format_validation.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_multiple_schema_creation.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tt.py +0 -0
- {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/yy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pytest-jsonschema-snapshot
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.7
|
|
4
4
|
Summary: Pytest plugin for automatic JSON Schema generation and validation from examples
|
|
5
5
|
Project-URL: Homepage, https://miskler.github.io/pytest-jsonschema-snapshot/basic/quick_start.html
|
|
6
6
|
Project-URL: Repository, https://github.com/Miskler/pytest-jsonschema-snapshot
|
|
@@ -35,7 +35,7 @@ class SchemaShot:
|
|
|
35
35
|
format_mode: str = "on",
|
|
36
36
|
update_mode: bool = False,
|
|
37
37
|
reset_mode: bool = False,
|
|
38
|
-
update_actions: dict[str, bool] = {},
|
|
38
|
+
update_actions: Optional[dict[str, bool]] = {},
|
|
39
39
|
save_original: bool = False,
|
|
40
40
|
debug_mode: bool = False,
|
|
41
41
|
snapshot_dir_name: str = "__snapshots__",
|
|
@@ -55,7 +55,7 @@ class SchemaShot:
|
|
|
55
55
|
# self.examples_limit: int = examples_limit
|
|
56
56
|
self.update_mode: bool = update_mode
|
|
57
57
|
self.reset_mode: bool = reset_mode
|
|
58
|
-
self.update_actions: dict[str, bool] = update_actions
|
|
58
|
+
self.update_actions: dict[str, bool] = dict(update_actions or {})
|
|
59
59
|
self.save_original: bool = save_original
|
|
60
60
|
self.debug_mode: bool = debug_mode
|
|
61
61
|
self.snapshot_dir: Path = root_dir / snapshot_dir_name
|
|
@@ -116,7 +116,7 @@ class SchemaShot:
|
|
|
116
116
|
pathvalidate.validate_filename(
|
|
117
117
|
name, platform="auto"
|
|
118
118
|
) # allow_reserved=False по умолчанию
|
|
119
|
-
except ValidationError as e:
|
|
119
|
+
except pathvalidate.ValidationError as e:
|
|
120
120
|
raise ValueError(f"Invalid schema name: {e}") from None
|
|
121
121
|
|
|
122
122
|
return name
|
|
@@ -221,9 +221,9 @@ class SchemaShot:
|
|
|
221
221
|
# --- состояние ДО проверки ---
|
|
222
222
|
schema_exists_before = schema_path.exists()
|
|
223
223
|
|
|
224
|
-
def make_schema(
|
|
224
|
+
def make_schema(current_data: dict | list, type_data: Literal["json", "schema"]) -> dict:
|
|
225
225
|
if type_data == "schema":
|
|
226
|
-
return current_data
|
|
226
|
+
return dict(current_data)
|
|
227
227
|
elif type_data == "json":
|
|
228
228
|
self.conv.clear_data()
|
|
229
229
|
self.conv.add_json(current_data)
|
|
@@ -17,7 +17,27 @@
|
|
|
17
17
|
},
|
|
18
18
|
"разнотипный_массив": {
|
|
19
19
|
"type": "array",
|
|
20
|
-
"items": {
|
|
20
|
+
"items": {
|
|
21
|
+
"anyOf": [
|
|
22
|
+
{
|
|
23
|
+
"type": "null"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"type": "object",
|
|
30
|
+
"required": [
|
|
31
|
+
"ключ"
|
|
32
|
+
],
|
|
33
|
+
"properties": {
|
|
34
|
+
"ключ": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
21
41
|
},
|
|
22
42
|
"словарь": {
|
|
23
43
|
"type": "object",
|
|
@@ -113,7 +133,19 @@
|
|
|
113
133
|
"type": "string",
|
|
114
134
|
"format": "date-time"
|
|
115
135
|
},
|
|
116
|
-
"имя": {
|
|
136
|
+
"имя": {
|
|
137
|
+
"anyOf": [
|
|
138
|
+
{
|
|
139
|
+
"type": "string"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"type": "array",
|
|
143
|
+
"items": {
|
|
144
|
+
"type": "string"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
},
|
|
117
149
|
"почта": {
|
|
118
150
|
"type": "string",
|
|
119
151
|
"format": "email"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/release.yml
RENAMED
|
File without changes
|
|
File without changes
|
{pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/test.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/tools/test_name_maker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|