status-react/test/appium/tests/test_api.py

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)