56 lines
1.3 KiB
Python
56 lines
1.3 KiB
Python
# standard imports
|
|
import logging
|
|
|
|
# third-party imports
|
|
import pytest
|
|
|
|
# local imports
|
|
from cic_eth.db import Otx
|
|
from cic_eth.db.error import TxStateChangeError
|
|
|
|
logg = logging.getLogger()
|
|
|
|
|
|
# Check that invalid transitions throw exceptions
|
|
# sent
|
|
def test_db_queue_states(
|
|
init_database,
|
|
):
|
|
|
|
session = init_database
|
|
|
|
# these values are completely arbitary
|
|
tx_hash = '0xF182DFA3AD48723E7E222FE7B4C2C44C23CD4D7FF413E8999DFA15ECE53F'
|
|
address = '0x38C5559D6EDDDA1F705D3AB1A664CA1B397EB119'
|
|
signed_tx = '0xA5866A5383249AE843546BDA46235A1CA1614F538FB486140693C2EF1956FC53213F6AEF0F99F44D7103871AF3A12B126DCF9BFB7AF11143FAB3ECE2B452EE35D1320C4C7C6F999C8DF4EB09E729715B573F6672ED852547F552C4AE99D17DCD14C810'
|
|
o = Otx(
|
|
nonce=42,
|
|
address=address[2:],
|
|
tx_hash=tx_hash[2:],
|
|
signed_tx=signed_tx[2:],
|
|
)
|
|
session.add(o)
|
|
session.commit()
|
|
|
|
o.sent(session=session)
|
|
session.commit()
|
|
|
|
# send after sent is ok
|
|
o.sent(session=session)
|
|
session.commit()
|
|
|
|
o.sendfail(session=session)
|
|
session.commit()
|
|
|
|
with pytest.raises(TxStateChangeError):
|
|
o.sendfail(session=session)
|
|
|
|
o.sent(session=session)
|
|
session.commit()
|
|
|
|
o.minefail(1234, session=session)
|
|
session.commit()
|
|
|
|
with pytest.raises(TxStateChangeError):
|
|
o.sent(session=session)
|