cmdtest xmrwallet: use namedtuple for user data

This commit is contained in:
The MMGen Project 2026-11-01 12:51:05 +00:00
commit a1ac5d7602
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 34 additions and 33 deletions

View file

@ -25,7 +25,7 @@ from ..include.common import (
from .include.common import get_file_with_ext, cleanup_env
from .shared import CmdTestShared
from .xmrwallet import CmdTestXMRWallet
from .xmrwallet import CmdTestXMRWallet, udata
from .autosign import CmdTestAutosignThreaded
def make_burn_addr(cfg):
@ -45,9 +45,9 @@ class CmdTestXMRAutosign(CmdTestXMRWallet, CmdTestAutosignThreaded, CmdTestShare
# xmrwallet attrs:
tx_relay_user = 'miner'
user_data = (
# user sid autosign kal_range add_coind_args
('miner', '98831F3A', False, '1', []),
('alice', 'FE3C6545', True, '1-2', []))
# user sid autosign kal_range add_coind_args
udata('miner', '98831F3A', False, '1', []),
udata('alice', 'FE3C6545', True, '1-2', []))
# autosign attrs:
coins = ['xmr']

View file

@ -12,6 +12,7 @@ test.cmdtest_d.xmrswap: Monero swap tests for the cmdtest.py test suite
import json
from .xmrwallet import udata
from .xmr_autosign import CmdTestXMRCompat
from .swap import CmdTestSwap, CmdTestSwapMethods, create_cross_methods
@ -370,9 +371,9 @@ class CmdTestXMRSwapXMR(CmdTestXMRSwapMethods, CmdTestSwapMethods, CmdTestXMRCom
tx_relay_user = None
user = 'bob'
user_data = (
# user sid autosign kal_range add_coind_args
('miner', 'FE3C6545', False, '1', []),
('bob', '98831F3A', True, '1-2', []))
# user sid autosign kal_range add_coind_args
udata('miner', 'FE3C6545', False, '1', []),
udata('bob', '98831F3A', True, '1-2', []))
cmd_group = CmdTestXMRCompat.cmd_group + (
('user_txcreate_sweep1', 'creating a sweep transaction (address sweep)'),

View file

@ -48,6 +48,10 @@ from .include.common import get_file_with_ext
from .include.proxy import TestProxy
from .base import CmdTestBase
udata = namedtuple(
'user_data_in',
'user sid autosign kal_range add_coind_args')
# atexit functions:
def stop_daemons(self):
for v in self.users.values():
@ -68,10 +72,11 @@ class CmdTestXMRWallet(CmdTestBase):
dfl_random_txs = 3
color = True
user_data = (
# user sid autosign kal_range add_coind_args
('miner', '98831F3A', False, '1-2', []),
('bob', '1378FC64', False, None, ['--restricted-rpc']),
('alice', 'FE3C6545', False, '1-4', []))
# kal_range must be None, a single digit, or a single hyphenated range
# user sid autosign kal_range add_coind_args (watch_only)
udata('miner', '98831F3A', False, '1-2', []),
udata('bob', '1378FC64', False, None, ['--restricted-rpc']),
udata('alice', 'FE3C6545', False, '1-4', []))
tx_relay_user = 'bob'
daemon_datadir_base = os.path.join('test', 'daemons', 'xmrtest')
compat = False
@ -174,21 +179,16 @@ class CmdTestXMRWallet(CmdTestBase):
'wd_rpc',
'add_coind_args',
])
# kal_range must be None, a single digit, or a single hyphenated range
for (
user,
sid,
autosign,
kal_range,
add_coind_args) in self.user_data:
usr_cfg = Config({'_clone': self.cfg, 'test_user': user, 'wallet_rpc_password': 'abc'})
for d in self.user_data:
usr_cfg = Config({'_clone': self.cfg, 'test_user': d.user, 'wallet_rpc_password': 'abc'})
udir = usr_cfg._proto.network_datadir
md = CoinDaemon(
cfg = usr_cfg,
proto = usr_cfg._proto,
test_user = user,
test_user = d.user,
opts = ['online'])
md_rpc = MoneroRPCClient(
@ -204,8 +204,8 @@ class CmdTestXMRWallet(CmdTestBase):
wd = MoneroWalletDaemon(
cfg = usr_cfg,
proto = usr_cfg._proto,
test_user = user,
wallet_dir = None if autosign else
test_user = d.user,
wallet_dir = None if d.autosign else
(usr_cfg._proto.network_datadir / 'tracking-wallets'),
user = 'foo',
passwd = 'bar',
@ -218,25 +218,25 @@ class CmdTestXMRWallet(CmdTestBase):
network_suf = '.regtest'
kafile_suf, fn_stem = (
('.vkeys', 'MoneroWatchOnlyWallet') if autosign else
('.vkeys', 'MoneroWatchOnlyWallet') if d.autosign else
('.akeys', 'MoneroWallet'))
self.users[user] = ud(
self.users[d.user] = ud(
cfg = usr_cfg,
sid = sid,
mmwords = f'test/ref/{sid}.mmwords',
autosign = autosign,
sid = d.sid,
mmwords = f'test/ref/{d.sid}.mmwords',
autosign = d.autosign,
udir = udir,
twdir = wd.wallet_dir,
kal_range = kal_range,
kafile = str(udir / f'{sid}-XMR-M[{kal_range}]{network_suf}{kafile_suf}'),
walletfile_fs = str(wd.wallet_dir / f'{sid}-{{}}-{fn_stem}{network_suf}'),
addrfile_fs = str(wd.wallet_dir / f'{sid}-{{}}-{fn_stem}{network_suf}.address.txt'),
kal_range = d.kal_range,
kafile = str(udir / f'{d.sid}-XMR-M[{d.kal_range}]{network_suf}{kafile_suf}'),
walletfile_fs = str(wd.wallet_dir / f'{d.sid}-{{}}-{fn_stem}{network_suf}'),
addrfile_fs = str(wd.wallet_dir / f'{d.sid}-{{}}-{fn_stem}{network_suf}.address.txt'),
md = md,
md_rpc = md_rpc,
wd = wd,
wd_rpc = wd_rpc,
add_coind_args = add_coind_args)
add_coind_args = d.add_coind_args)
def init_daemon_args(self):
for u in self.users: