eth-faucet

Gas token gifter with controls from time intervals, amounts and access
Log | Files | Refs | README

test_check.py (2527B)


      1 # standard imports
      2 import os
      3 import unittest
      4 import logging
      5 
      6 # external imports
      7 from chainlib.connection import RPCConnection
      8 from chainlib.eth.nonce import RPCNonceOracle
      9 from chainlib.eth.unittest.ethtester import EthTesterCase
     10 from chainlib.eth.tx import receipt
     11 from chainlib.eth.address import to_checksum_address
     12 from chainlib.eth.gas import balance
     13 from chainlib.eth.gas import Gas
     14 from chainlib.eth.gas import OverrideGasOracle
     15 
     16 # local import
     17 from eth_faucet import EthFaucet
     18 from eth_faucet.unittest import TestFaucetFullBase
     19 
     20 logging.basicConfig(level=logging.DEBUG)
     21 logg = logging.getLogger()
     22 
     23 
     24 class TestFaucet(TestFaucetFullBase):
     25 
     26     def test_check_registry(self):
     27         c = EthFaucet(self.chain_spec)
     28         o = c.check(self.address, self.accounts[1], sender_address=self.accounts[0])
     29         r = self.conn.do(o)
     30         self.assertEqual(int(r, 16), 1)
     31 
     32         o = c.check(self.address, self.accounts[2], sender_address=self.accounts[0])
     33         r = self.conn.do(o)
     34         self.assertEqual(int(r, 16), 0)
     35 
     36 
     37     def test_check_period_time(self):
     38         self.set_period(100)
     39 
     40         nonce_oracle = RPCNonceOracle(self.accounts[1], self.conn)
     41         c = EthFaucet(self.chain_spec, signer=self.signer, nonce_oracle=nonce_oracle)
     42 
     43         o = c.check(self.address, self.accounts[1], sender_address=self.accounts[0])
     44         r = self.conn.do(o)
     45         self.assertEqual(int(r, 16), 1)
     46 
     47         (tx_hash_hex, o) = c.gimme(self.address, self.accounts[1])
     48         self.conn.do(o)
     49         o = receipt(tx_hash_hex)
     50         r = self.conn.do(o)
     51         self.assertEqual(r['status'], 1)
     52 
     53         o = c.check(self.address, self.accounts[1], sender_address=self.accounts[0])
     54         r = self.conn.do(o)
     55         self.assertEqual(int(r, 16), 0)
     56 
     57 
     58     def test_check_period_balance(self):
     59         o = balance(self.accounts[1])
     60         r = self.conn.do(o)
     61         prebalance = int(r, 16)
     62 
     63         c = EthFaucet(self.chain_spec)
     64         o = c.check(self.address, self.accounts[1], sender_address=self.accounts[0])
     65         r = self.conn.do(o)
     66         self.assertEqual(int(r, 16), 1)
     67 
     68         self.set_threshold(prebalance + 1)
     69 
     70         o = c.check(self.address, self.accounts[1], sender_address=self.accounts[0])
     71         r = self.conn.do(o)
     72         self.assertEqual(int(r, 16), 1)
     73 
     74         self.set_threshold(prebalance)
     75 
     76         o = c.check(self.address, self.accounts[1], sender_address=self.accounts[0])
     77         r = self.conn.do(o)
     78         self.assertEqual(int(r, 16), 0)
     79 
     80 
     81 if __name__ == '__main__':
     82     unittest.main()