Include chain interface in tests
This commit is contained in:
parent
a6420eacfb
commit
d05cd9f202
@ -9,6 +9,7 @@ from chainlib.eth.tx import (
|
|||||||
Tx,
|
Tx,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class EthChainInterface(ChainInterface):
|
class EthChainInterface(ChainInterface):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -6,6 +6,9 @@ from chainsyncer.unittest.db import ChainSyncerDb
|
|||||||
from chainqueue.unittest.db import ChainQueueDb
|
from chainqueue.unittest.db import ChainQueueDb
|
||||||
from chainlib.eth.unittest.ethtester import EthTesterCase
|
from chainlib.eth.unittest.ethtester import EthTesterCase
|
||||||
|
|
||||||
|
# local imports
|
||||||
|
from chaind_eth.chain import EthChainInterface
|
||||||
|
|
||||||
|
|
||||||
class TestBase(EthTesterCase):
|
class TestBase(EthTesterCase):
|
||||||
|
|
||||||
@ -17,6 +20,8 @@ class TestBase(EthTesterCase):
|
|||||||
self.db_chainqueue = ChainQueueDb()
|
self.db_chainqueue = ChainQueueDb()
|
||||||
self.session_chainqueue = self.db_chainqueue.bind_session()
|
self.session_chainqueue = self.db_chainqueue.bind_session()
|
||||||
|
|
||||||
|
self.interface = EthChainInterface()
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
self.session_chainsyncer.commit()
|
self.session_chainsyncer.commit()
|
||||||
self.db_chainsyncer.release_session(self.session_chainsyncer)
|
self.db_chainsyncer.release_session(self.session_chainsyncer)
|
||||||
|
38
tests/test_chain.py
Normal file
38
tests/test_chain.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# standard imports
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
# external imports
|
||||||
|
from chainlib.eth.gas import (
|
||||||
|
RPCGasOracle,
|
||||||
|
Gas,
|
||||||
|
)
|
||||||
|
from chainlib.eth.nonce import (
|
||||||
|
RPCNonceOracle,
|
||||||
|
)
|
||||||
|
from chainlib.eth.tx import (
|
||||||
|
TxFormat,
|
||||||
|
unpack,
|
||||||
|
)
|
||||||
|
from hexathon import (
|
||||||
|
strip_0x,
|
||||||
|
)
|
||||||
|
|
||||||
|
# test imports
|
||||||
|
from tests.chaind_eth_base import TestBase
|
||||||
|
|
||||||
|
class TestChain(TestBase):
|
||||||
|
|
||||||
|
def test_chain_interface(self):
|
||||||
|
gas_oracle = RPCGasOracle(conn=self.rpc)
|
||||||
|
nonce_oracle = RPCNonceOracle(self.accounts[0], conn=self.rpc)
|
||||||
|
c = Gas(self.chain_spec, signer=self.signer, gas_oracle=gas_oracle, nonce_oracle=nonce_oracle)
|
||||||
|
(tx_hash, tx_raw_rlp_signed) = c.create(self.accounts[0], self.accounts[1], 1024, tx_format=TxFormat.RLP_SIGNED)
|
||||||
|
|
||||||
|
tx_raw_rlp_signed_bytes = bytes.fromhex(strip_0x(tx_raw_rlp_signed))
|
||||||
|
tx_src = unpack(tx_raw_rlp_signed_bytes, self.chain_spec)
|
||||||
|
tx_src = self.interface.src_normalize(tx_src)
|
||||||
|
assert tx_src['gas_price'] == tx_src['gasPrice']
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
@ -40,10 +40,9 @@ from chainqueue.sql.state import (
|
|||||||
set_ready,
|
set_ready,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# local imports
|
# local imports
|
||||||
from chaind_eth.filter import StateFilter
|
from chaind_eth.filter import StateFilter
|
||||||
|
from chaind_eth.chain import EthChainInterface
|
||||||
|
|
||||||
# test imports
|
# test imports
|
||||||
from tests.chaind_eth_base import TestBase
|
from tests.chaind_eth_base import TestBase
|
||||||
@ -62,12 +61,15 @@ class TestFilter(TestBase):
|
|||||||
o = raw(tx_raw_rlp_signed)
|
o = raw(tx_raw_rlp_signed)
|
||||||
self.rpc.do(o)
|
self.rpc.do(o)
|
||||||
|
|
||||||
o = receipt(tx_hash)
|
#o = receipt(tx_hash)
|
||||||
|
o = self.interface.tx_receipt(tx_hash)
|
||||||
rcpt = self.rpc.do(o)
|
rcpt = self.rpc.do(o)
|
||||||
|
|
||||||
o = block_by_hash(rcpt['block_hash'])
|
#o = block_by_hash(rcpt['block_hash'])
|
||||||
|
o = self.interface.block_by_number(rcpt['block_number'])
|
||||||
block_src = self.rpc.do(o)
|
block_src = self.rpc.do(o)
|
||||||
block = Block(block_src)
|
#block = Block(block_src)
|
||||||
|
block = self.interface.block_from_src(block_src)
|
||||||
|
|
||||||
dsn = dsn_from_config(db_config)
|
dsn = dsn_from_config(db_config)
|
||||||
backend = SQLBackend(dsn, debug=bool(os.environ.get('DATABASE_DEBUG')))
|
backend = SQLBackend(dsn, debug=bool(os.environ.get('DATABASE_DEBUG')))
|
||||||
@ -81,6 +83,7 @@ class TestFilter(TestBase):
|
|||||||
set_sent(self.chain_spec, tx_hash, session=self.session_chainqueue)
|
set_sent(self.chain_spec, tx_hash, session=self.session_chainqueue)
|
||||||
|
|
||||||
tx_src = unpack(tx_raw_rlp_signed_bytes, self.chain_spec)
|
tx_src = unpack(tx_raw_rlp_signed_bytes, self.chain_spec)
|
||||||
|
tx_src = self.interface.src_normalize(tx_src)
|
||||||
tx = Tx(tx_src, block=block, rcpt=rcpt)
|
tx = Tx(tx_src, block=block, rcpt=rcpt)
|
||||||
|
|
||||||
tx_repr = get_tx(self.chain_spec, tx_hash, session=self.session_chainqueue)
|
tx_repr = get_tx(self.chain_spec, tx_hash, session=self.session_chainqueue)
|
||||||
|
Loading…
Reference in New Issue
Block a user