def test_nac_add_property_fail(): state = tester.state() nc.registry.register(SampleNAC) sender = tester.k0 try: nc.tester_call_method(state, sender, SampleNAC.add_property) except tester.TransactionFailed: pass else: assert False, 'properties must not be createable' nc.registry.unregister(SampleNAC)
def test_nac_suicide(): state = tester.state() nc.registry.register(SampleNAC) sender = tester.k0 state._send(sender, SampleNAC.address, value=100) assert state.block.get_balance(SampleNAC.address) == 100 assert None is nc.tester_call_method(state, sender, SampleNAC.test_suicide) assert state.block.get_balance(SampleNAC.address) == 0 nc.registry.unregister(SampleNAC)
def test_nac_tester(): assert issubclass(SampleNAC.afunc.im_class, SampleNAC) state = tester.state() nc.registry.register(SampleNAC) sender = tester.k0 assert 12 == nc.tester_call_method(state, sender, SampleNAC.afunc, 3, 4) print # FIXME fails # assert 30 == nc.tester_call_method(state, sender, SampleNAC.dfunc, [5, 6]) assert ['\0' * 20] * 3 == nc.tester_call_method(state, sender, SampleNAC.gfunc) assert 30 == nc.tester_call_method(state, sender, SampleNAC.efunc, [5, 6]) assert 26 == nc.tester_call_method(state, sender, SampleNAC.bfunc, 13) # FIXME THIS IS STILL BROKEN #assert [1, 2] == nc.tester_call_method(state, sender, SampleNAC.ffunc) #assert [1, 2] == nc.tester_call_method(state, sender, SampleNAC.ffunc2) assert 4, 4 == nc.tester_call_method(state, sender, SampleNAC.cfunc, 4) assert [4] == nc.tester_call_method(state, sender, SampleNAC.ccfunc, 4) assert 42 == nc.tester_call_method(state, sender, SampleNAC.noargs_func) assert None is nc.tester_call_method(state, sender, SampleNAC.void_func, 3) assert None is nc.tester_call_method(state, sender, SampleNAC.special_vars) # values out of range must fail try: nc.tester_call_method(state, sender, SampleNAC.bfunc, -1) except abi.ValueOutOfBounds: pass else: assert False, 'must fail' try: nc.tester_call_method(state, sender, SampleNAC.afunc, 2**15, 2) except tester.TransactionFailed: pass else: assert False, 'must fail' try: nc.tester_call_method(state, sender, SampleNAC.afunc, [1], 2) except abi.EncodingError: pass else: assert False, 'must fail' nc.registry.unregister(SampleNAC)
def test_nac_tester(): assert issubclass(SampleNAC.afunc.im_class, SampleNAC) state = tester.state() nc.registry.register(SampleNAC) sender = tester.k0 assert 12 == nc.tester_call_method(state, sender, SampleNAC.afunc, 3, 4) print # FIXME fails # assert 30 == nc.tester_call_method(state, sender, SampleNAC.dfunc, [5, 6]) assert ['\0' * 20] * 3 == nc.tester_call_method(state, sender, SampleNAC.gfunc) assert 30 == nc.tester_call_method(state, sender, SampleNAC.efunc, [5, 6]) assert 26 == nc.tester_call_method(state, sender, SampleNAC.bfunc, 13) # FIXME THIS IS STILL BROKEN # assert [1, 2] == nc.tester_call_method(state, sender, SampleNAC.ffunc) # assert [1, 2] == nc.tester_call_method(state, sender, SampleNAC.ffunc2) assert 4, 4 == nc.tester_call_method(state, sender, SampleNAC.cfunc, 4) assert [4] == nc.tester_call_method(state, sender, SampleNAC.ccfunc, 4) assert 42 == nc.tester_call_method(state, sender, SampleNAC.noargs_func) assert None is nc.tester_call_method(state, sender, SampleNAC.void_func, 3) assert None is nc.tester_call_method(state, sender, SampleNAC.special_vars) # values out of range must fail with pytest.raises(abi.EncodingError): nc.tester_call_method(state, sender, SampleNAC.bfunc, -1) with pytest.raises(tester.TransactionFailed): nc.tester_call_method(state, sender, SampleNAC.afunc, 2**15, 2) with pytest.raises(abi.EncodingError): nc.tester_call_method(state, sender, SampleNAC.afunc, [1], 2) nc.registry.unregister(SampleNAC)