|
4 | 4 | from monero import ( |
5 | 5 | MoneroWallet, MoneroWalletConfig, MoneroWalletRpc, |
6 | 6 | MoneroAccount, MoneroError, MoneroDaemonRpc, |
7 | | - MoneroTxWallet, MoneroUtils |
| 7 | + MoneroTxWallet, MoneroUtils, MoneroSubaddress |
8 | 8 | ) |
9 | 9 |
|
10 | 10 | from typing_extensions import override |
11 | 11 | from utils import ( |
12 | 12 | TestUtils as Utils, StringUtils, WalletType, |
13 | | - WalletNotificationCollector, WalletErrorUtils |
| 13 | + WalletNotificationCollector, WalletErrorUtils, WalletUtils, AssertUtils |
14 | 14 | ) |
15 | 15 | from test_monero_wallet_common import BaseTestMoneroWallet |
16 | 16 |
|
@@ -114,6 +114,23 @@ def test_set_poll_period_in_ms(self, wallet: MoneroWalletRpc) -> None: |
114 | 114 | # restore the configured period so later tests poll at the expected rate |
115 | 115 | wallet.set_poll_period_in_ms(Utils.SYNC_PERIOD_IN_MS) |
116 | 116 |
|
| 117 | + # Can get a subaddress via monero_wallet_rpc's |
| 118 | + @pytest.mark.skipif(Utils.TEST_NON_RELAYS is False, reason="TEST_NON_RELAYS disabled") |
| 119 | + def test_get_subaddress_rpc(self, wallet: MoneroWalletRpc) -> None: |
| 120 | + account_idx: int = 0 |
| 121 | + subaddress_idx: int = 0 |
| 122 | + |
| 123 | + subaddress: MoneroSubaddress = wallet.get_subaddress(account_idx, subaddress_idx) |
| 124 | + WalletUtils.test_subaddress(subaddress) |
| 125 | + assert subaddress.account_index == account_idx |
| 126 | + assert subaddress.index == subaddress_idx |
| 127 | + |
| 128 | + plural: list[MoneroSubaddress] = wallet.get_subaddresses(account_idx, [subaddress_idx]) |
| 129 | + assert len(plural) == 1 |
| 130 | + AssertUtils.assert_equals(subaddress, plural[0]) |
| 131 | + |
| 132 | + assert subaddress.address == wallet.get_address(account_idx, subaddress_idx) |
| 133 | + |
117 | 134 | @pytest.mark.skipif(Utils.TEST_NON_RELAYS is False, reason="TEST_NON_RELAYS disabled") |
118 | 135 | @override |
119 | 136 | def test_get_subaddress_address_out_of_range(self, wallet: MoneroWallet) -> None: |
|
0 commit comments