diff options
author | MarcoFalke <falke.marco@gmail.com> | 2019-09-17 14:23:35 -0400 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2019-09-17 14:23:38 -0400 |
commit | 99beda47f56a39e789639a069910763a4af0647e (patch) | |
tree | 22b60fc91e2d7caad44b974a410fb3fba944c3e9 | |
parent | 318890b1ee3c791277c56ad4ef6c437109fc21a1 (diff) | |
parent | ae0add8dfe23310e10f18732dbd54360ce405b9b (diff) |
Merge #16864: test: Add python bech32 impl round-trip test
ae0add8dfe23310e10f18732dbd54360ce405b9b Add python bech32 impl round-trip test (Gregory Sanders)
Pull request description:
Currently there is a single use of `segwit_addr.encode`, and zero uses of `segwit_addr.decode` in the codebase.
This adds a simple round-trip test of the implementation to avoid future regressions.
Top commit has no ACKs.
Tree-SHA512: feb3303f240f5987993e092ec15b878c8db3957d338db6a08fbe947bbfea0c558c7ebc26f8052c38a69d85c354f24e71431e19e0a2991c3c64b604f6d50697ff
-rwxr-xr-x | test/functional/wallet_address_types.py | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/test/functional/wallet_address_types.py b/test/functional/wallet_address_types.py index 4e4ed8f26b..f8318555b1 100755 --- a/test/functional/wallet_address_types.py +++ b/test/functional/wallet_address_types.py @@ -64,7 +64,10 @@ from test_framework.util import ( assert_raises_rpc_error, connect_nodes_bi, ) - +from test_framework.segwit_addr import ( + encode, + decode, +) class AddressTypeTest(BitcoinTestFramework): def set_test_params(self): @@ -97,6 +100,13 @@ class AddressTypeTest(BitcoinTestFramework): else: return [self.nodes[i].getunconfirmedbalance() for i in range(4)] + # Quick test of python bech32 implementation + def test_python_bech32(self, addr): + hrp = addr[:4] + assert_equal(hrp, "bcrt") + (witver, witprog) = decode(hrp, addr) + assert_equal(encode(hrp, witver, witprog), addr) + def test_address(self, node, address, multisig, typ): """Run sanity checks on an address.""" info = self.nodes[node].getaddressinfo(address) @@ -121,6 +131,7 @@ class AddressTypeTest(BitcoinTestFramework): assert_equal(info['witness_version'], 0) assert_equal(len(info['witness_program']), 40) assert 'pubkey' in info + self.test_python_bech32(info["address"]) elif typ == 'legacy': # P2SH-multisig assert info['isscript'] @@ -146,6 +157,7 @@ class AddressTypeTest(BitcoinTestFramework): assert_equal(info['witness_version'], 0) assert_equal(len(info['witness_program']), 64) assert 'pubkeys' in info + self.test_python_bech32(info["address"]) else: # Unknown type assert False |