aboutsummaryrefslogtreecommitdiffstats
path: root/python-packages/json_schemas/test
diff options
context:
space:
mode:
Diffstat (limited to 'python-packages/json_schemas/test')
-rw-r--r--python-packages/json_schemas/test/__init__.py1
-rw-r--r--python-packages/json_schemas/test/test_doctest.py25
-rw-r--r--python-packages/json_schemas/test/test_json_schemas.py41
3 files changed, 67 insertions, 0 deletions
diff --git a/python-packages/json_schemas/test/__init__.py b/python-packages/json_schemas/test/__init__.py
new file mode 100644
index 000000000..ce724e180
--- /dev/null
+++ b/python-packages/json_schemas/test/__init__.py
@@ -0,0 +1 @@
+"""Tests of zero_ex.json_schemas."""
diff --git a/python-packages/json_schemas/test/test_doctest.py b/python-packages/json_schemas/test/test_doctest.py
new file mode 100644
index 000000000..2aa576422
--- /dev/null
+++ b/python-packages/json_schemas/test/test_doctest.py
@@ -0,0 +1,25 @@
+"""Exercise doctests for all of our modules."""
+
+from doctest import testmod
+import pkgutil
+import importlib
+
+import zero_ex.json_schemas
+
+
+def test_all_doctests():
+ """Gather zero_ex.json_schemas.* modules and doctest them."""
+ # json_schemas module
+ module = "zero_ex.json_schemas"
+ print(module)
+ failure_count, _ = testmod(importlib.import_module(module))
+ assert failure_count == 0
+
+ # any json_schemas.* sub-modules
+ for (_, modname, _) in pkgutil.walk_packages(
+ path=zero_ex.json_schemas.__path__, prefix="zero_ex.json_schemas"
+ ):
+ module = importlib.import_module(modname)
+ print(module)
+ (failure_count, _) = testmod(module)
+ assert failure_count == 0
diff --git a/python-packages/json_schemas/test/test_json_schemas.py b/python-packages/json_schemas/test/test_json_schemas.py
new file mode 100644
index 000000000..d0e9840b3
--- /dev/null
+++ b/python-packages/json_schemas/test/test_json_schemas.py
@@ -0,0 +1,41 @@
+"""Tests of zero_ex.json_schemas"""
+
+
+from zero_ex.json_schemas import _LOCAL_RESOLVER, assert_valid
+
+
+NULL_ADDRESS = "0x0000000000000000000000000000000000000000"
+
+EMPTY_ORDER = {
+ "makerAddress": NULL_ADDRESS,
+ "takerAddress": NULL_ADDRESS,
+ "senderAddress": NULL_ADDRESS,
+ "feeRecipientAddress": NULL_ADDRESS,
+ "makerAssetData": NULL_ADDRESS,
+ "takerAssetData": NULL_ADDRESS,
+ "salt": "0",
+ "makerFee": "0",
+ "takerFee": "0",
+ "makerAssetAmount": "0",
+ "takerAssetAmount": "0",
+ "expirationTimeSeconds": "0",
+ "exchangeAddress": NULL_ADDRESS,
+}
+
+
+def test_assert_valid_caches_resources():
+ """Test that the JSON ref resolver in `assert_valid()` caches resources
+
+ In order to test the cache we much access the private class of
+ `json_schemas` and reset the LRU cache on `_LocalRefResolver`.
+ For this to happen, we need to disable errror `W0212`
+ on _LOCAL_RESOLVER
+ """
+ _LOCAL_RESOLVER._remote_cache.cache_clear() # pylint: disable=W0212
+
+ assert_valid(EMPTY_ORDER, "/orderSchema")
+ cache_info = (
+ _LOCAL_RESOLVER._remote_cache.cache_info() # pylint: disable=W0212
+ )
+ assert cache_info.currsize == 4
+ assert cache_info.hits == 10