Skip to content

Commit d622dec

Browse files
improve & simplify unit tests Env settings
1 parent 924ceaf commit d622dec

File tree

3 files changed

+33
-18
lines changed

3 files changed

+33
-18
lines changed

tests/test_config.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
1-
ZKSYNC_TEST_URL = "https://zksync2-testnet.zksync.dev"
2-
ETH_TEST_URL = "https://rpc.ankr.com/eth_goerli"
3-
# ZKSYNC_TEST_URL = "http://127.0.0.1:3050"
4-
# ETH_TEST_URL = "http://127.0.0.1:8545"
1+
from dataclasses import dataclass
2+
from enum import IntEnum, auto
3+
54
PRIVATE_KEY2 = bytes.fromhex("fd1f96220fa3a40c46d65f81d61dd90af600746fd47e5c82673da937a48b38ef")
65
PRIVATE_KEY_BOB = bytes.fromhex("ba6852a8a14cd3c72f6cab8c08f70d033d5d1a56646ab04b4cf54c01cb7204dc")
6+
7+
8+
class EnvType(IntEnum):
9+
LOCAL_HOST = auto()
10+
TESTNET = auto()
11+
UNKNOWN = auto()
12+
13+
14+
@dataclass
15+
class TestEnvironment:
16+
type: EnvType
17+
zksync_server: str
18+
eth_server: str
19+
20+
21+
LOCAL_ENV = TestEnvironment(EnvType.LOCAL_HOST, "http://127.0.0.1:3050", "http://127.0.0.1:8545")
22+
TESTNET = TestEnvironment(EnvType.TESTNET, "https://zksync2-testnet.zksync.dev", "https://rpc.ankr.com/eth_goerli")

tests/test_paymaster.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def build_paymaster(self, trans: TxFunctionCall, fee: int) -> TxFunctionCall:
135135
paymaster_input=encoded_approval_bin)
136136
return trans
137137

138-
# @skip("Integration test, paymaster params test not implemented yet")
138+
@skip("Integration test, paymaster params test not implemented yet")
139139
def test_send_funds_with_paymaster(self):
140140
gas_price = self.web3.zksync.gas_price
141141
paymaster_address = self.paymaster_address

tests/test_zksync_web3.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from zksync2.signer.eth_signer import PrivateKeyEthSigner
2020
from tests.contracts.utils import contract_path
2121
from zksync2.transaction.transaction_builders import TxFunctionCall, TxCreateContract, TxCreate2Contract, TxWithdraw
22-
from test_config import ZKSYNC_TEST_URL, ETH_TEST_URL, PRIVATE_KEY2, PRIVATE_KEY_BOB
22+
from test_config import LOCAL_ENV, PRIVATE_KEY2, PRIVATE_KEY_BOB, EnvType
2323

2424

2525
def generate_random_salt() -> bytes:
@@ -31,20 +31,19 @@ class ZkSyncWeb3Tests(TestCase):
3131
ETH_TEST_NET_AMOUNT_BALANCE = Decimal(1)
3232

3333
def setUp(self) -> None:
34-
self.web3 = ZkSyncBuilder.build(ZKSYNC_TEST_URL)
34+
self.env = LOCAL_ENV
35+
self.web3 = ZkSyncBuilder.build(self.env.zksync_server)
3536
self.account: LocalAccount = Account.from_key(PRIVATE_KEY2)
3637
self.chain_id = self.web3.zksync.chain_id
3738
self.signer = PrivateKeyEthSigner(self.account, self.chain_id)
3839
self.counter_address = None
3940
self.test_tx_hash = None
4041
# INFO: use deploy_erc20_token_builder to get new address
41-
# self.some_erc20_address = Web3.to_checksum_address("0x37b96512962FC7773E06237116BE693Eb2b3cD51")
42-
self.some_erc20_address = Web3.to_checksum_address("0xd782e03F4818A7eDb0bc5f70748F67B4e59CdB33")
43-
# https://goerli.explorer.zksync.io/address/0xd782e03F4818A7eDb0bc5f70748F67B4e59CdB33#contract
44-
# Mint from site:
45-
# https://goerli.explorer.zksync.io/tx/0xad2f582bed2ca5a35db47db21f0dc06eba29273531abc1bc32b8a9112520a3d2
46-
# https://goerli.explorer.zksync.io/tx/0x7b34f26f92eb86e5d0e0f5afd19dd279de90d771b38a9e5f7efb26d791b52423
47-
42+
if self.env.type == EnvType.LOCAL_HOST:
43+
self.some_erc20_address = Web3.to_checksum_address("0x37b96512962FC7773E06237116BE693Eb2b3cD51")
44+
if self.env.type == EnvType.TESTNET:
45+
# https://goerli.explorer.zksync.io/address/0xd782e03F4818A7eDb0bc5f70748F67B4e59CdB33#contract
46+
self.some_erc20_address = Web3.to_checksum_address("0xd782e03F4818A7eDb0bc5f70748F67B4e59CdB33")
4847
self.ERC20_Token = Token(l1_address=ADDRESS_DEFAULT,
4948
l2_address=self.some_erc20_address,
5049
symbol="SERC20",
@@ -53,7 +52,7 @@ def setUp(self) -> None:
5352
@skip("Integration test, used for develop purposes only")
5453
def test_send_money(self):
5554
gas_limit = 21000
56-
web3 = Web3(Web3.HTTPProvider(ETH_TEST_URL))
55+
web3 = Web3(Web3.HTTPProvider(self.env.eth_server))
5756
web3.middleware_onion.inject(geth_poa_middleware, layer=0)
5857
account = web3.eth.accounts[0]
5958
transaction: TxParams = {
@@ -72,7 +71,7 @@ def test_get_l1_balance(self):
7271
"""
7372
INFO: For minting use: https://goerli-faucet.pk910.de
7473
"""
75-
eth_web3 = Web3(Web3.HTTPProvider(ETH_TEST_URL))
74+
eth_web3 = Web3(Web3.HTTPProvider(self.env.eth_server))
7675
eth_balance = eth_web3.eth.get_balance(self.account.address)
7776
print(f"Eth: balance: {Web3.from_wei(eth_balance, 'ether')}")
7877
self.assertNotEqual(eth_balance, 0)
@@ -226,7 +225,7 @@ def mint_some_erc20(self, amount: int):
226225
nonce = self.web3.zksync.get_transaction_count(self.account.address, EthBlockParams.LATEST.value)
227226
gas_price = self.web3.zksync.gas_price
228227

229-
args = (self.account.address, amount)
228+
args = (self.account.address, self.ERC20_Token.to_int(amount))
230229
call_data = some_erc20_encoder.encode_method(fn_name='mint', args=args)
231230
func_call = TxFunctionCall(chain_id=self.chain_id,
232231
nonce=nonce,
@@ -348,7 +347,7 @@ def test_estimate_gas_withdraw(self):
348347
# @skip("Integration test, used for develop purposes only")
349348
def test_withdraw(self):
350349
amount = 0.1
351-
eth_web3 = Web3(Web3.HTTPProvider(ETH_TEST_URL))
350+
eth_web3 = Web3(Web3.HTTPProvider(self.env.eth_server))
352351
eth_web3.middleware_onion.inject(geth_poa_middleware, layer=0)
353352

354353
eth_balance = eth_web3.eth.get_balance(self.account.address)

0 commit comments

Comments
 (0)