39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import os
|
|
import pytest
|
|
import re
|
|
import time
|
|
|
|
from os import path
|
|
|
|
from support.api.third_parties_api import get_token_info
|
|
from tests import marks
|
|
|
|
|
|
def get_parameters():
|
|
directory = os.sep.join(__file__.split(os.sep)[:-4])
|
|
file_path = path.join(directory, 'src/status_im/ethereum/tokens.cljs')
|
|
with open(file_path, 'r') as f:
|
|
data = f.read()
|
|
return re.findall('{:symbol\s*:(.*)\n\s*:name\s*"(.*)"\n\s*:address\s*"(.*)"\n\s*:decimals\s*(.*)}', data)
|
|
|
|
|
|
class TestAPi(object):
|
|
|
|
@marks.api
|
|
@pytest.mark.parametrize('symbol,name,address,decimals', get_parameters())
|
|
def test_tokens_verification(self, symbol, name, address, decimals):
|
|
res = get_token_info(address)
|
|
errors = list()
|
|
if str(res['decimals']) != decimals:
|
|
errors.append("decimals value %s doesn't match expected %s" % (decimals, res['decimals']))
|
|
if res['symbol'] != symbol:
|
|
errors.append("symbol '%s' doesn't match expected '%s'" % (symbol, res['symbol']))
|
|
if res['name'] != name:
|
|
errors.append("token name '%s' doesn't match expected '%s'" % (name, res['name']))
|
|
if errors:
|
|
pytest.fail('For address %s %s' % (address, ', '.join(errors)))
|
|
|
|
@staticmethod
|
|
def teardown():
|
|
time.sleep(3)
|