# standard imports import json # external imports import celery import requests_mock from chainlib.hash import strip_0x from cic_types.condiments import MetadataPointer # local imports from cic_ussd.cache import cache_data_key, get_cached_data from cic_ussd.metadata import PersonMetadata, PreferencesMetadata # tests imports def test_query_person_metadata(activated_account, celery_session_worker, init_cache, person_metadata, setup_metadata_request_handler, setup_metadata_signer): with requests_mock.Mocker(real_http=False) as request_mocker: identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address)) metadata_client = PersonMetadata(identifier) request_mocker.register_uri('GET', metadata_client.url, json=person_metadata, reason='OK', status_code=200) s_query_person_metadata = celery.signature( 'cic_ussd.tasks.metadata.query_person_metadata', [activated_account.blockchain_address]) s_query_person_metadata.apply().get() key = cache_data_key(identifier, MetadataPointer.PERSON) cached_person_metadata = get_cached_data(key) cached_person_metadata = json.loads(cached_person_metadata) assert cached_person_metadata == person_metadata def test_query_preferences_metadata(activated_account, celery_session_worker, init_cache, preferences, setup_metadata_request_handler, setup_metadata_signer): with requests_mock.Mocker(real_http=False) as request_mocker: identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address)) metadata_client = PreferencesMetadata(identifier) request_mocker.register_uri('GET', metadata_client.url, json=preferences, reason='OK', status_code=200) query_preferences_metadata = celery.signature( 'cic_ussd.tasks.metadata.query_preferences_metadata', [activated_account.blockchain_address]) query_preferences_metadata.apply().get() key = cache_data_key(identifier, MetadataPointer.PREFERENCES) cached_preferences_metadata = get_cached_data(key) cached_preferences_metadata = json.loads(cached_preferences_metadata) assert cached_preferences_metadata == preferences