commit 3264007c570c2a9434b8394af9c0417cb29503bf
parent 3c4992fbbbcfc34085f508ec319882d7b3c99c15
Author: nolash <dev@holbrook.no>
Date: Mon, 16 Nov 2020 19:37:09 +0100
Add solidity test file
Diffstat:
1 file changed, 49 insertions(+), 0 deletions(-)
diff --git a/solidity/test.py b/solidity/test.py
@@ -0,0 +1,49 @@
+import web3
+import eth_tester
+import json
+
+
+eth_params = eth_tester.backends.pyevm.main.get_default_genesis_params({
+ 'gas_limit': 9000000,
+ })
+backend = eth_tester.PyEVMBackend(eth_params)
+instance = eth_tester.EthereumTester(backend)
+provider = web3.Web3.EthereumTesterProvider(instance)
+w3 = web3.Web3(provider)
+
+
+f = open('registry.bin', 'r')
+bytecode = f.read()
+f.close()
+
+f = open('registry.abi.json', 'r')
+abi = json.load(f)
+f.close()
+
+c = w3.eth.contract(abi=abi, bytecode=bytecode)
+tx_hash = c.constructor().transact({'from': w3.eth.accounts[0]})
+
+r = w3.eth.getTransactionReceipt(tx_hash)
+
+c = w3.eth.contract(abi=abi, address=r.contractAddress)
+fail = False
+try:
+ c.functions.add(w3.eth.accounts[2]).transact({'from': w3.eth.accounts[1]})
+except:
+ fail = True
+assert fail
+
+c.functions.addWriter(w3.eth.accounts[1]).transact({'from': w3.eth.accounts[0]})
+c.functions.add(w3.eth.accounts[2]).transact({'from': w3.eth.accounts[1]})
+c.functions.add(w3.eth.accounts[3]).transact({'from': w3.eth.accounts[1]})
+
+assert c.functions.count().call() == 3
+assert c.functions.accountsIndex(w3.eth.accounts[3]).call() == 2
+assert c.functions.accounts(2).call() == w3.eth.accounts[3]
+
+fail = False
+try:
+ c.functions.add(w3.eth.accounts[3]).transact({'from': w3.eth.accounts[1]})
+except:
+ fail = True
+assert fail