# standard imports import logging import os import tempfile # external imports import pytest from chainlib.hash import strip_0x from cic_types.processor import generate_metadata_pointer # local imports from cic_ussd.metadata import Metadata, PersonMetadata, PhonePointerMetadata, PreferencesMetadata from cic_ussd.metadata.signer import Signer logg = logging.getLogger(__name__) @pytest.fixture(scope='function') def setup_metadata_signer(load_config): temp_dir = tempfile.mkdtemp(dir='/tmp') logg.debug(f'Created temp dir: {temp_dir}') Signer.gpg_path = temp_dir Signer.gpg_passphrase = load_config.get('PGP_PASSPHRASE') Signer.key_file_path = os.path.join(load_config.get('PGP_KEYS_PATH'), load_config.get('PGP_PRIVATE_KEYS')) @pytest.fixture(scope='function') def setup_metadata_request_handler(load_config): Metadata.base_url = load_config.get('CIC_META_URL') @pytest.fixture(scope='function') def account_phone_pointer(activated_account): identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address)) return generate_metadata_pointer(identifier, ':cic.phone') @pytest.fixture(scope='function') def person_metadata_url(activated_account, setup_metadata_request_handler): identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address)) return PersonMetadata(identifier).url @pytest.fixture(scope='function') def phone_pointer_url(activated_account, setup_metadata_request_handler): identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address)) return PhonePointerMetadata(identifier).url @pytest.fixture(scope='function') def preferences_metadata_url(activated_account, setup_metadata_request_handler): identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address)) return PreferencesMetadata(identifier).url