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()