import sys sys.path.append('../../src/tui') from lib import tuilib import unittest ''' specify chain ticker (daemon should be up), wif which will be imported and address to which you want to broadcast added 1 second sleep after each case to surely not face the nSPV server limitation (1 call/second) ''' wif = '' dest_address = 'RMjy5VkHFJkXTJDTJ3XX1zVzukP48sKyva' amount = '0.1' chain = 'ILN' rpc_proxy = tuilib.def_credentials(chain) class TestNspvClient(unittest.TestCase): def test_nspv_getinfo(self): print("testing nspv_getinfo") result = rpc_proxy.nspv_getinfo() self.assertEqual(result["result"], "success") self.assertGreater(result["height"], 2689) time.sleep(1) def test_nspv_notarizations(self): print("testing nspv_notarizations") result = rpc_proxy.nspv_notarizations("2000") self.assertEqual(result["result"], "success") self.assertEqual(result["prev"]["notarized_height"], 1998) self.assertEqual(result["next"]["notarized_height"], 2002) time.sleep(1) def test_nspv_hdrsproof(self): print("testing nspv_hdrsproof") result = rpc_proxy.nspv_hdrsproof("2000", "2100") self.assertEqual(result["result"], "success") self.assertEqual(result["numhdrs"], 101) time.sleep(1) def test_nspv_login(self): print("testing nspv_login") result = rpc_proxy.nspv_login(wif) self.assertEqual(result["result"], "success") self.assertEqual(result["status"], "wif will expire in 777 seconds") time.sleep(1) def test_nspv_listunspent(self): print("testing nspv_listunspent") result = rpc_proxy.nspv_listunspent() self.assertEqual(result["result"], "success") time.sleep(1) result = rpc_proxy.nspv_listunspent("RQ1mvCUcziWzRwE8Ugtex29VjoFjRzxQJT") self.assertEqual(result["result"], "error") def test_nspv_spend(self): print("testing nspv_spend") result = rpc_proxy.nspv_login(wif) result = rpc_proxy.nspv_spend(dest_address, amount) self.assertEqual(result["result"], "success") self.assertEqual(result["vout"][0]["valueZat"], 10000000) time.sleep(1) def test_nspv_broadcast(self): print("testing nspv_broadcast") result = rpc_proxy.nspv_login(wif) broadcast_hex = rpc_proxy.nspv_spend(dest_address, amount)["hex"] time.sleep(1) result = rpc_proxy.nspv_broadcast(broadcast_hex) self.assertEqual(result["result"], "success") self.assertEqual(result["retcode"], 1) self.assertEqual(result["expected"], result["broadcast"]) print("Broadcast txid: " + result["broadcast"]) time.sleep(1) def test_nspv_logout(self): print("testing nspv_logout") rpc_proxy.nspv_login(wif) time.sleep(1) rpc_proxy.nspv_logout() time.sleep(1) result = rpc_proxy.nspv_spend(dest_address, amount) self.assertEqual(result["result"], "error") self.assertEqual(result["error"], "wif expired") time.sleep(1) def test_nspv_spentinfo(self): print("testing nspv_spent_info") result = rpc_proxy.nspv_spentinfo("67ffe0eaecd6081de04675c492a59090b573ee78955c4e8a85b8ac0be0e8e418", "1") self.assertEqual(result["result"], "success") self.assertEqual(result["spentheight"], 2681) time.sleep(1) def test_nspv_txproof(self): print("testing nspv_txproof") result = rpc_proxy.nspv_txproof("67ffe0eaecd6081de04675c492a59090b573ee78955c4e8a85b8ac0be0e8e418", "2673") self.assertEqual(result["txid"], "67ffe0eaecd6081de04675c492a59090b573ee78955c4e8a85b8ac0be0e8e418") time.sleep(1) def test_nspv_login_timout(self): print("testing auto-logout in 777 seconds") rpc_proxy.nspv_login(wif) time.sleep(777) result = rpc_proxy.nspv_spend(dest_address, amount) self.assertEqual(result["result"], "error") self.assertEqual(result["error"], "wif expired") time.sleep(1) if __name__ == '__main__': unittest.main()