133 lines
4.9 KiB
Python
133 lines
4.9 KiB
Python
|
# standard imports
|
||
|
import os
|
||
|
|
||
|
# external imports
|
||
|
import pytest
|
||
|
from celery import uuid
|
||
|
# test imports
|
||
|
from cic_eth.pytest.helpers.accounts import blockchain_address
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def task_uuid():
|
||
|
return uuid()
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def default_token_data(foo_token_symbol, foo_token):
|
||
|
return {
|
||
|
'symbol': foo_token_symbol,
|
||
|
'address': foo_token,
|
||
|
'name': 'Giftable Token',
|
||
|
'decimals': 6,
|
||
|
"converters": []
|
||
|
}
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_account_creation_task_request(mocker, task_uuid):
|
||
|
def mock_request(self):
|
||
|
mocked_task_request = mocker.patch('celery.app.task.Task.request')
|
||
|
mocked_task_request.id = task_uuid
|
||
|
return mocked_task_request
|
||
|
mocker.patch('cic_eth.api.api_task.Api.create_account', mock_request)
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_account_creation_task_result(mocker, task_uuid):
|
||
|
def task_result(self):
|
||
|
sync_res = mocker.patch('celery.result.AsyncResult')
|
||
|
sync_res.id = task_uuid
|
||
|
sync_res.get.return_value = blockchain_address()
|
||
|
return sync_res
|
||
|
mocker.patch('cic_eth.api.api_task.Api.create_account', task_result)
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_token_api_query(foo_token_symbol, foo_token, mocker, task_uuid):
|
||
|
def mock_query(self, token_symbol, proof=None):
|
||
|
sync_res = mocker.patch('celery.result.AsyncResult')
|
||
|
sync_res.id = task_uuid
|
||
|
sync_res.get.return_value = [
|
||
|
{
|
||
|
'address': foo_token,
|
||
|
'converters': [],
|
||
|
'decimals': 6,
|
||
|
'name': 'Giftable Token',
|
||
|
'proofs': ['5b1549818725ca07c19fc47fda5d8d85bbebb1283855d5ab99785dcb7d9051d3'],
|
||
|
'symbol': foo_token_symbol,
|
||
|
},{'5b1549818725ca07c19fc47fda5d8d85bbebb1283855d5ab99785dcb7d9051d3': ['Eb3907eCad74a0013c259D5874AE7f22DcBcC95C','Eb3907eCad74a0013c259D5874AE7f22DcBcC95C']}
|
||
|
]
|
||
|
return sync_res
|
||
|
mocker.patch('cic_eth.api.api_task.Api.token', mock_query)
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_tokens_api_query(foo_token_symbol, foo_token, mocker, task_uuid):
|
||
|
def mock_query(self, token_symbol, proof=None):
|
||
|
sync_res = mocker.patch('celery.result.AsyncResult')
|
||
|
sync_res.id = task_uuid
|
||
|
sync_res.get.return_value = [[
|
||
|
{
|
||
|
'address': foo_token,
|
||
|
'converters': [],
|
||
|
'decimals': 6,
|
||
|
'name': 'Giftable Token',
|
||
|
'proofs': ['5b1549818725ca07c19fc47fda5d8d85bbebb1283855d5ab99785dcb7d9051d3'],
|
||
|
'symbol': foo_token_symbol,
|
||
|
},{'5b1549818725ca07c19fc47fda5d8d85bbebb1283855d5ab99785dcb7d9051d3': ['Eb3907eCad74a0013c259D5874AE7f22DcBcC95C','Eb3907eCad74a0013c259D5874AE7f22DcBcC95C']}
|
||
|
], [
|
||
|
{
|
||
|
'address': foo_token,
|
||
|
'converters': [],
|
||
|
'decimals': 6,
|
||
|
'name': 'Giftable Token',
|
||
|
'proofs': ['5b1549818725ca07c19fc47fda5d8d85bbebb1283855d5ab99785dcb7d9051d3'],
|
||
|
'symbol': foo_token_symbol,
|
||
|
},{'5b1549818725ca07c19fc47fda5d8d85bbebb1283855d5ab99785dcb7d9051d3': ['Eb3907eCad74a0013c259D5874AE7f22DcBcC95C','Eb3907eCad74a0013c259D5874AE7f22DcBcC95C']}
|
||
|
]]
|
||
|
return sync_res
|
||
|
mocker.patch('cic_eth.api.api_task.Api.tokens', mock_query)
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_sync_balance_api_query(balances, mocker, task_uuid):
|
||
|
def sync_api_query(self, address: str, token_symbol: str):
|
||
|
sync_res = mocker.patch('celery.result.AsyncResult')
|
||
|
sync_res.id = task_uuid
|
||
|
sync_res.get.return_value = balances
|
||
|
return sync_res
|
||
|
mocker.patch('cic_eth.api.api_task.Api.balance', sync_api_query)
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_sync_default_token_api_query(default_token_data, mocker, task_uuid):
|
||
|
def mock_query(self):
|
||
|
sync_res = mocker.patch('celery.result.AsyncResult')
|
||
|
sync_res.id = task_uuid
|
||
|
sync_res.get.return_value = default_token_data
|
||
|
return sync_res
|
||
|
mocker.patch('cic_eth.api.api_task.Api.default_token', mock_query)
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_transaction_list_query(mocker):
|
||
|
query_args = {}
|
||
|
|
||
|
def mock_query(self, address: str, limit: int):
|
||
|
query_args['address'] = address
|
||
|
query_args['limit'] = limit
|
||
|
|
||
|
mocker.patch('cic_eth.api.api_task.Api.list', mock_query)
|
||
|
return query_args
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope='function')
|
||
|
def mock_transfer_api(mocker):
|
||
|
transfer_args = {}
|
||
|
|
||
|
def mock_transfer(self, from_address: str, to_address: str, value: int, token_symbol: str):
|
||
|
transfer_args['from_address'] = from_address
|
||
|
transfer_args['to_address'] = to_address
|
||
|
transfer_args['value'] = value
|
||
|
transfer_args['token_symbol'] = token_symbol
|
||
|
|
||
|
mocker.patch('cic_eth.api.api_task.Api.transfer', mock_transfer)
|
||
|
return transfer_args
|