aboutsummaryrefslogblamecommitdiffstats
path: root/python-packages/json_schemas/test/test_json_schemas.py
blob: 1d1efdd1208fd39364c90063af8554724af6cb9c (plain) (tree)
1
2
3
4
5
6
7


                                   
                                                                 


                                                              


















                                                           









                                                                           
                                                                     



                                                                           
                              
"""Tests of zero_ex.json_schemas"""


from zero_ex.order_utils import make_empty_order, order_to_jsdict
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(order_to_jsdict(make_empty_order()), "/orderSchema")
    cache_info = (
        _LOCAL_RESOLVER._remote_cache.cache_info()  # pylint: disable=W0212
    )
    assert cache_info.currsize == 4
    assert cache_info.hits > 0