Add cli tests to cic-cachE
This commit is contained in:
parent
319c2a08ab
commit
75f670347a
40
apps/cic-cache/tests/cli/test_cli_args.py
Normal file
40
apps/cic-cache/tests/cli/test_cli_args.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# standard imports
|
||||||
|
import os
|
||||||
|
|
||||||
|
# external imports
|
||||||
|
import chainlib.cli
|
||||||
|
|
||||||
|
# local imports
|
||||||
|
import cic_cache.cli
|
||||||
|
|
||||||
|
script_dir = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
config_dir = os.path.join(script_dir, '..', 'testdata', 'config')
|
||||||
|
|
||||||
|
|
||||||
|
def test_argumentparserto_config():
|
||||||
|
|
||||||
|
argparser = cic_cache.cli.ArgumentParser()
|
||||||
|
|
||||||
|
local_flags = 0xffff
|
||||||
|
argparser.process_local_flags(local_flags)
|
||||||
|
argparser.add_argument('--foo', type=str)
|
||||||
|
args = argparser.parse_args([
|
||||||
|
'-q', 'baz',
|
||||||
|
'--offset', '13',
|
||||||
|
'--no-history',
|
||||||
|
'-r','0xdeadbeef',
|
||||||
|
'-vv',
|
||||||
|
'--foo', 'bar',
|
||||||
|
])
|
||||||
|
|
||||||
|
extra_args = {
|
||||||
|
'foo': '_BARBARBAR',
|
||||||
|
}
|
||||||
|
config = cic_cache.cli.Config.from_args(args, chainlib.cli.argflag_std_base, local_flags, extra_args=extra_args, base_config_dir=config_dir)
|
||||||
|
|
||||||
|
assert config.get('_BARBARBAR') == 'bar'
|
||||||
|
assert config.get('CELERY_QUEUE') == 'baz'
|
||||||
|
assert config.get('SYNCER_NO_HISTORY') == True
|
||||||
|
assert config.get('SYNCER_OFFSET') == 13
|
||||||
|
assert config.get('CIC_REGISTRY_ADDRESS') == '0xdeadbeef'
|
||||||
|
|
17
apps/cic-cache/tests/cli/test_cli_celery.py
Normal file
17
apps/cic-cache/tests/cli/test_cli_celery.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# standard imports
|
||||||
|
import tempfile
|
||||||
|
|
||||||
|
# local imports
|
||||||
|
import cic_cache.cli
|
||||||
|
|
||||||
|
|
||||||
|
def test_cli_celery():
|
||||||
|
cf = tempfile.mkdtemp()
|
||||||
|
|
||||||
|
config = {
|
||||||
|
'CELERY_RESULT_URL': 'filesystem://' + cf,
|
||||||
|
}
|
||||||
|
cic_cache.cli.CeleryApp.from_config(config)
|
||||||
|
|
||||||
|
config['CELERY_BROKER_URL'] = 'filesystem://' + cf
|
||||||
|
cic_cache.cli.CeleryApp.from_config(config)
|
68
apps/cic-cache/tests/cli/test_cli_chain.py
Normal file
68
apps/cic-cache/tests/cli/test_cli_chain.py
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# external imports
|
||||||
|
import pytest
|
||||||
|
from chainlib.eth.gas import (
|
||||||
|
Gas,
|
||||||
|
RPCGasOracle,
|
||||||
|
)
|
||||||
|
from chainlib.eth.nonce import RPCNonceOracle
|
||||||
|
from chainlib.eth.block import (
|
||||||
|
block_latest,
|
||||||
|
Block,
|
||||||
|
)
|
||||||
|
from chainlib.eth.pytest.fixtures_chain import default_chain_spec
|
||||||
|
from chainlib.eth.pytest.fixtures_ethtester import *
|
||||||
|
from cic_eth_registry.pytest.fixtures_contracts import *
|
||||||
|
from hexathon import add_0x
|
||||||
|
|
||||||
|
# local imports
|
||||||
|
import cic_cache.cli
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.xfail()
|
||||||
|
def test_cli_rpc(
|
||||||
|
eth_rpc,
|
||||||
|
eth_signer,
|
||||||
|
default_chain_spec,
|
||||||
|
):
|
||||||
|
config = {
|
||||||
|
'CHAIN_SPEC': str(default_chain_spec),
|
||||||
|
'RPC_HTTP_PROVIDER': 'http://localhost:8545',
|
||||||
|
}
|
||||||
|
rpc = cic_cache.cli.RPC.from_config(config, default_label='foo')
|
||||||
|
conn = rpc.get_by_label('foo')
|
||||||
|
#o = block_latest()
|
||||||
|
#conn.do(o)
|
||||||
|
|
||||||
|
|
||||||
|
def test_cli_chain(
|
||||||
|
default_chain_spec,
|
||||||
|
eth_rpc,
|
||||||
|
eth_signer,
|
||||||
|
contract_roles,
|
||||||
|
):
|
||||||
|
ifc = cic_cache.cli.EthChainInterface()
|
||||||
|
|
||||||
|
nonce_oracle = RPCNonceOracle(contract_roles['CONTRACT_DEPLOYER'], conn=eth_rpc)
|
||||||
|
gas_oracle = RPCGasOracle(conn=eth_rpc)
|
||||||
|
c = Gas(default_chain_spec, nonce_oracle=nonce_oracle, gas_oracle=gas_oracle, signer=eth_signer)
|
||||||
|
recipient = add_0x(os.urandom(20).hex())
|
||||||
|
(tx_hash, o) = c.create(contract_roles['CONTRACT_DEPLOYER'], recipient, 1024)
|
||||||
|
r = eth_rpc.do(o)
|
||||||
|
|
||||||
|
o = ifc.tx_receipt(r)
|
||||||
|
r = eth_rpc.do(o)
|
||||||
|
assert r['status'] == 1
|
||||||
|
|
||||||
|
o = ifc.block_by_number(1)
|
||||||
|
block_src = eth_rpc.do(o)
|
||||||
|
block = ifc.block_from_src(block_src)
|
||||||
|
assert block.number == 1
|
||||||
|
|
||||||
|
with pytest.raises(KeyError):
|
||||||
|
assert block_src['gasUsed'] == 21000
|
||||||
|
assert block_src['gas_used'] == 21000
|
||||||
|
|
||||||
|
block_src = ifc.src_normalize(block_src)
|
||||||
|
assert block_src['gasUsed'] == 21000
|
||||||
|
assert block_src['gas_used'] == 21000
|
||||||
|
|
2
apps/cic-cache/tests/testdata/config/test.ini
vendored
Normal file
2
apps/cic-cache/tests/testdata/config/test.ini
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[foo]
|
||||||
|
bar_baz = xyzzy
|
Loading…
Reference in New Issue
Block a user