Add test for giftto filter
This commit is contained in:
		
							parent
							
								
									5345803dc7
								
							
						
					
					
						commit
						fe4bef5290
					
				@ -49,9 +49,9 @@ def parse_giftto(tx):
 | 
			
		||||
    r = Faucet.parse_give_to_request(tx.payload)
 | 
			
		||||
    transfer_data = {}
 | 
			
		||||
    transfer_data['to'] = r[0]
 | 
			
		||||
    transfer_data['value'] = tx['value']
 | 
			
		||||
    transfer_data['from'] = tx['from']
 | 
			
		||||
    transfer_data['token_address'] = tx['to']
 | 
			
		||||
    transfer_data['value'] = tx.value
 | 
			
		||||
    transfer_data['from'] = tx.outputs[0]
 | 
			
		||||
    transfer_data['token_address'] = tx.inputs[0]
 | 
			
		||||
    return ('tokengift', transfer_data)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2,6 +2,7 @@
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
# external imports
 | 
			
		||||
import pytest
 | 
			
		||||
from chainlib.connection import RPCConnection
 | 
			
		||||
from chainlib.eth.nonce import RPCNonceOracle
 | 
			
		||||
from chainlib.eth.gas import OverrideGasOracle
 | 
			
		||||
@ -12,16 +13,20 @@ from chainlib.eth.tx import (
 | 
			
		||||
        snake_and_camel,
 | 
			
		||||
        )
 | 
			
		||||
from chainlib.eth.erc20 import ERC20
 | 
			
		||||
from sarafu_faucet import MinterFaucet
 | 
			
		||||
from eth_accounts_index import AccountRegistry
 | 
			
		||||
 | 
			
		||||
# local imports
 | 
			
		||||
from cic_eth.runnable.daemons.filters.callback import (
 | 
			
		||||
        parse_transfer,
 | 
			
		||||
        parse_transferfrom,
 | 
			
		||||
        parse_giftto,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
logg = logging.getLogger()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip()
 | 
			
		||||
def test_transfer_tx(
 | 
			
		||||
        default_chain_spec,
 | 
			
		||||
        init_database,
 | 
			
		||||
@ -59,7 +64,7 @@ def test_transfer_tx(
 | 
			
		||||
    assert transfer_type == 'transfer'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.skip()
 | 
			
		||||
def test_transfer_from_tx(
 | 
			
		||||
        default_chain_spec,
 | 
			
		||||
        init_database,
 | 
			
		||||
@ -90,7 +95,6 @@ def test_transfer_from_tx(
 | 
			
		||||
    
 | 
			
		||||
    o = transaction(tx_hash_hex)
 | 
			
		||||
    r = rpc.do(o)
 | 
			
		||||
    logg.debug(r)
 | 
			
		||||
    tx_src = snake_and_camel(r)
 | 
			
		||||
    tx = Tx(tx_src)
 | 
			
		||||
 | 
			
		||||
@ -104,3 +108,49 @@ def test_transfer_from_tx(
 | 
			
		||||
    (transfer_type, transfer_data) = parse_transferfrom(tx)
 | 
			
		||||
 | 
			
		||||
    assert transfer_type == 'transferfrom'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def test_faucet_gift_to_tx(
 | 
			
		||||
        default_chain_spec,
 | 
			
		||||
        init_database,
 | 
			
		||||
        eth_rpc,
 | 
			
		||||
        eth_signer,
 | 
			
		||||
        foo_token,
 | 
			
		||||
        agent_roles,
 | 
			
		||||
        contract_roles,
 | 
			
		||||
        faucet,
 | 
			
		||||
        account_registry,
 | 
			
		||||
        celery_session_worker,
 | 
			
		||||
        ):
 | 
			
		||||
 | 
			
		||||
    rpc = RPCConnection.connect(default_chain_spec, 'default')
 | 
			
		||||
    gas_oracle = OverrideGasOracle(conn=rpc, limit=800000)
 | 
			
		||||
 | 
			
		||||
    nonce_oracle = RPCNonceOracle(contract_roles['ACCOUNT_REGISTRY_WRITER'], rpc)
 | 
			
		||||
    txf = AccountRegistry(default_chain_spec, signer=eth_signer, nonce_oracle=nonce_oracle, gas_oracle=gas_oracle)
 | 
			
		||||
    (tx_hash_hex, o) = txf.add(account_registry, contract_roles['ACCOUNT_REGISTRY_WRITER'], agent_roles['ALICE'])
 | 
			
		||||
    r = rpc.do(o)
 | 
			
		||||
    o = receipt(tx_hash_hex)
 | 
			
		||||
    r = rpc.do(o)
 | 
			
		||||
    assert r['status'] == 1
 | 
			
		||||
   
 | 
			
		||||
    nonce_oracle = RPCNonceOracle(agent_roles['ALICE'], rpc)
 | 
			
		||||
    txf = MinterFaucet(default_chain_spec, signer=eth_signer, nonce_oracle=nonce_oracle, gas_oracle=gas_oracle)
 | 
			
		||||
    (tx_hash_hex, o) = txf.give_to(faucet, agent_roles['ALICE'], agent_roles['ALICE'])
 | 
			
		||||
    r = rpc.do(o)
 | 
			
		||||
 | 
			
		||||
    o = transaction(tx_hash_hex)
 | 
			
		||||
    r = rpc.do(o)
 | 
			
		||||
    tx_src = snake_and_camel(r)
 | 
			
		||||
    tx = Tx(tx_src)
 | 
			
		||||
 | 
			
		||||
    o = receipt(tx_hash_hex)
 | 
			
		||||
    r = rpc.do(o)
 | 
			
		||||
    assert r['status'] == 1
 | 
			
		||||
 | 
			
		||||
    rcpt = snake_and_camel(r)
 | 
			
		||||
    tx.apply_receipt(rcpt)
 | 
			
		||||
 | 
			
		||||
    (transfer_type, transfer_data) = parse_giftto(tx)
 | 
			
		||||
 | 
			
		||||
    assert transfer_type == 'tokengift'
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user