feat: Split and improve contract migration steps

This commit is contained in:
Louis Holbrook
2021-10-20 15:02:36 +00:00
committed by Philip Wafula
parent 8f1afa094d
commit 13fb67d2d8
96 changed files with 2147 additions and 1327 deletions

View File

@@ -4,8 +4,7 @@ import time
# external imports
import pytest
import requests_mock
from chainlib.hash import strip_0x
from cic_types.condiments import MetadataPointer
# local imports
from cic_ussd.account.statement import (filter_statement_transactions,
@@ -48,7 +47,7 @@ def test_generate(activated_account,
generate(querying_party, None, sender_transaction)
time.sleep(2)
identifier = bytes.fromhex(activated_account.blockchain_address)
key = cache_data_key(identifier, ':cic.statement')
key = cache_data_key(identifier, MetadataPointer.STATEMENT)
statement = get_cached_data(key)
statement = json.loads(statement)
assert len(statement) == 1

View File

@@ -3,7 +3,7 @@ import json
import datetime
# external imports
from chainlib.hash import strip_0x
from cic_types.condiments import MetadataPointer
# local imports
from cic_ussd.account.balance import get_cached_available_balance
@@ -58,7 +58,7 @@ def test_menu_processor(activated_account,
token_symbol=token_symbol)
identifier = bytes.fromhex(activated_account.blockchain_address)
key = cache_data_key(identifier, ':cic.adjusted_balance')
key = cache_data_key(identifier, MetadataPointer.BALANCES_ADJUSTED)
adjusted_balance = 45931650.64654012
cache_data(key, json.dumps(adjusted_balance))
resp = response(activated_account, 'ussd.kenya.account_balances', name, init_database, generic_ussd_session)

View File

@@ -7,6 +7,7 @@ import time
import i18n
import requests_mock
from chainlib.hash import strip_0x
from cic_types.condiments import MetadataPointer
# local imports
from cic_ussd.account.chain import Chain
@@ -45,7 +46,7 @@ def test_handle_menu(activated_account,
ussd_menu = UssdMenu.find_by_name('initial_language_selection')
assert menu_resp.get('name') == ussd_menu.get('name')
identifier = bytes.fromhex(strip_0x(pending_account.blockchain_address))
key = cache_data_key(identifier, ':cic.preferences')
key = cache_data_key(identifier, MetadataPointer.PREFERENCES)
cache_data(key, json.dumps(preferences))
time.sleep(2)
menu_resp = handle_menu(pending_account, init_database)

View File

@@ -1,20 +1,18 @@
# standard imports
import json
from decimal import Decimal
# external imports
import celery
import pytest
import requests_mock
from chainlib.hash import strip_0x
from cic_types.condiments import MetadataPointer
# local imports
from cic_ussd.account.statement import generate, filter_statement_transactions
from cic_ussd.account.statement import filter_statement_transactions
from cic_ussd.account.transaction import transaction_actors
from cic_ussd.cache import cache_data_key, get_cached_data
from cic_ussd.db.models.account import Account
from cic_ussd.error import AccountCreationDataNotFound
from cic_ussd.metadata import PreferencesMetadata
# test imports
@@ -89,7 +87,7 @@ def test_balances_callback(activated_account, balances, celery_session_worker):
[balances, activated_account.blockchain_address, status_code])
s_balances_callback.apply_async().get()
identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address))
key = cache_data_key(identifier, ':cic.balances')
key = cache_data_key(identifier, MetadataPointer.BALANCES)
cached_balances = get_cached_data(key)
cached_balances = json.loads(cached_balances)
assert cached_balances == balances[0]

View File

@@ -1,11 +1,11 @@
# standard imports
import json
import os
# 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
@@ -27,7 +27,7 @@ def test_query_person_metadata(activated_account,
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, ':cic.person')
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
@@ -46,7 +46,7 @@ def test_query_preferences_metadata(activated_account,
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, ':cic.preferences')
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

View File

@@ -4,6 +4,7 @@ import json
# external imports
import celery
from chainlib.hash import strip_0x
from cic_types.condiments import MetadataPointer
# local imports
from cic_ussd.account.transaction import transaction_actors
@@ -38,7 +39,7 @@ def test_cache_statement(activated_account,
transaction_result):
recipient_transaction, sender_transaction = transaction_actors(transaction_result)
identifier = bytes.fromhex(strip_0x(activated_account.blockchain_address))
key = cache_data_key(identifier, ':cic.statement')
key = cache_data_key(identifier, MetadataPointer.STATEMENT)
cached_statement = get_cached_data(key)
assert cached_statement is None
s_parse_transaction = celery.signature(

View File

@@ -3,6 +3,7 @@ import hashlib
import json
# external imports
from cic_types.condiments import MetadataPointer
# local imports
from cic_ussd.cache import cache_data, cache_data_key, get_cached_data
@@ -12,7 +13,7 @@ from cic_ussd.cache import cache_data, cache_data_key, get_cached_data
def test_cache_data(init_cache):
identifier = 'some_key'.encode()
key = cache_data_key(identifier, ':testing')
key = cache_data_key(identifier, MetadataPointer.PERSON)
assert get_cached_data(key) is None
cache_data(key, json.dumps('some_value'))
assert get_cached_data(key) is not None
@@ -20,10 +21,10 @@ def test_cache_data(init_cache):
def test_cache_data_key():
identifier = 'some_key'.encode()
key = cache_data_key(identifier, ':testing')
key = cache_data_key(identifier, MetadataPointer.PERSON)
hash_object = hashlib.new("sha256")
hash_object.update(identifier)
hash_object.update(':testing'.encode(encoding="utf-8"))
hash_object.update(':cic.person'.encode(encoding="utf-8"))
assert hash_object.digest().hex() == key