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.
Files changed (73) hide show
  1. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/PKG-INFO +1 -1
  2. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/__init__.py +1 -1
  3. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/core.py +5 -5
  4. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/some_schema.schema.json +34 -2
  5. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.flake8 +0 -0
  6. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  7. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  8. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/documentation_issue.yml +0 -0
  9. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  10. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/PULL_REQUEST_TEMPLATE/general.md +0 -0
  11. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/actions/build-docs/action.yml +0 -0
  12. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/release.yml +0 -0
  13. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/reusable-test.yml +0 -0
  14. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.github/workflows/test.yml +0 -0
  15. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/.gitignore +0 -0
  16. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/LICENSE +0 -0
  17. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/Makefile +0 -0
  18. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/README.md +0 -0
  19. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/assets/logo.png +0 -0
  20. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/_static/logo_day.png +0 -0
  21. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/_static/logo_night.png +0 -0
  22. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/basic/quick_start.rst +0 -0
  23. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/conf.py +0 -0
  24. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/docs/source/index.rst +0 -0
  25. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pyproject.toml +0 -0
  26. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/plugin.py +0 -0
  27. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/py.typed +0 -0
  28. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/stats.py +0 -0
  29. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/tools/__init__.py +0 -0
  30. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/pytest_jsonschema_snapshot/tools/name_maker.py +0 -0
  31. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/reinstall_plugin.sh +0 -0
  32. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/requirements.txt +0 -0
  33. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/test_stats.py +0 -0
  34. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/tools/test_name_maker.py +0 -0
  35. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.first.json +0 -0
  36. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.first.schema.json +0 -0
  37. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.json +0 -0
  38. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/TestDataClass.get_data.schema.json +0 -0
  39. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/array_formats_test.json +0 -0
  40. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/array_formats_test.schema.json +0 -0
  41. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/date_test.json +0 -0
  42. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/date_test.schema.json +0 -0
  43. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/datetime_test.json +0 -0
  44. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/datetime_test.schema.json +0 -0
  45. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/email_test.json +0 -0
  46. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/email_test.schema.json +0 -0
  47. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.first.json +0 -0
  48. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.first.schema.json +0 -0
  49. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.json +0 -0
  50. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/get_data.schema.json +0 -0
  51. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/ipv4_test.json +0 -0
  52. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/ipv4_test.schema.json +0 -0
  53. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/mixed_formats_test.json +0 -0
  54. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/mixed_formats_test.schema.json +0 -0
  55. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/multi_schema_one.json +0 -0
  56. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/multi_schema_three.json +0 -0
  57. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/multi_schema_two.json +0 -0
  58. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/regular_strings_test.json +0 -0
  59. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/regular_strings_test.schema.json +0 -0
  60. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/some_schema.json +0 -0
  61. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/strict_email_validation_test.json +0 -0
  62. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/strict_email_validation_test.schema.json +0 -0
  63. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uri_test.json +0 -0
  64. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uri_test.schema.json +0 -0
  65. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uuid_test.json +0 -0
  66. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/__snapshots__/uuid_test.schema.json +0 -0
  67. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_base.py +0 -0
  68. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_base_name_callable.py +0 -0
  69. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_format_detection.py +0 -0
  70. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_format_validation.py +0 -0
  71. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tests/usage/test_multiple_schema_creation.py +0 -0
  72. {pytest_jsonschema_snapshot-0.2.6 → pytest_jsonschema_snapshot-0.2.7}/tt.py +0 -0
  73. {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.6
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
@@ -8,5 +8,5 @@ pytest-typed-schema-shot
8
8
 
9
9
  from .core import SchemaShot
10
10
 
11
- __version__ = "0.2.6"
11
+ __version__ = "0.2.7"
12
12
  __all__ = ["SchemaShot"]
@@ -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(value: dict | list, type: Literal["json", "schema"]) -> dict:
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"