aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorF. Eugene Aumson <feuGeneA@users.noreply.github.com>2018-12-29 04:28:30 +0800
committerF. Eugene Aumson <feuGeneA@users.noreply.github.com>2018-12-29 04:28:30 +0800
commite62e61bf7145c0a8011e098aa22168416d01a781 (patch)
tree76ab61f1258abd9c73d104e42d08a377326d954c
parenta3eab71908cd2e188438b4d411b7c426c874f0b2 (diff)
downloaddexon-sol-tools-e62e61bf7145c0a8011e098aa22168416d01a781.tar
dexon-sol-tools-e62e61bf7145c0a8011e098aa22168416d01a781.tar.gz
dexon-sol-tools-e62e61bf7145c0a8011e098aa22168416d01a781.tar.bz2
dexon-sol-tools-e62e61bf7145c0a8011e098aa22168416d01a781.tar.lz
dexon-sol-tools-e62e61bf7145c0a8011e098aa22168416d01a781.tar.xz
dexon-sol-tools-e62e61bf7145c0a8011e098aa22168416d01a781.tar.zst
dexon-sol-tools-e62e61bf7145c0a8011e098aa22168416d01a781.zip
Add entry point for validation of JSON strings
-rw-r--r--python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py b/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py
index 792e6041f..10c564b99 100644
--- a/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py
+++ b/python-packages/json_schemas/src/zero_ex/json_schemas/__init__.py
@@ -59,3 +59,25 @@ def assert_valid(data: Mapping, schema_id: str) -> None:
_, schema = _LOCAL_RESOLVER.resolve(schema_id)
jsonschema.validate(data, schema, resolver=_LOCAL_RESOLVER)
+
+
+def assert_valid_json(data: str, schema_id: str) -> None:
+ """Validate the given `data` against the specified `schema`.
+
+ :param data: JSON string to be validated.
+ :param schema_id: id property of the JSON schema to validate against. Must
+ be one of those listed in `the 0x JSON schema files
+ <https://github.com/0xProject/0x-monorepo/tree/development/packages/json-schemas/schemas>`_.
+
+ Raises an exception if validation fails.
+
+ >>> assert_valid_json(
+ ... r'''{
+ ... "v": 27,
+ ... "r": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
+ ... "s": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
+ ... }''',
+ ... '/ecSignatureSchema',
+ ... )
+ """ # noqa: E501 (line too long)
+ assert_valid(json.loads(data), schema_id)