test fixes
This commit is contained in:
parent
34ae8b2bb0
commit
5e37125bd8
@ -101,7 +101,7 @@ def _clone(source, target):
|
||||
cmd = lambda a: f"RV.write(repr(settings.get('{a}', {None!r})))"
|
||||
nfc_val = _sim_exec(device, cmd('nfc'))
|
||||
vdisk_val = _sim_exec(device, cmd('vidsk'))
|
||||
assert nfc_val == vdisk_val == '0'
|
||||
assert not eval(nfc_val) and not eval(vdisk_val)
|
||||
sim_target.stop()
|
||||
|
||||
|
||||
|
||||
@ -82,6 +82,7 @@ def _remap_pin(pin, key_map):
|
||||
|
||||
def _login(device, is_Q, pin, scrambled=False, mk4_kbtn=None, num_failed=None):
|
||||
orig_pin = pin
|
||||
time.sleep(.1)
|
||||
scr = _cap_screen(device)
|
||||
if num_failed:
|
||||
assert f"{num_failed} failures, {13-num_failed} tries left" in scr
|
||||
@ -423,7 +424,7 @@ def test_login_integration(request, nick, randomize, login_ctdwn, kill_btn, kill
|
||||
if kill_btn and is_Q: # cannot use kbtn while nickname is show on Mk4
|
||||
# lets kill here while nickname is shown
|
||||
_need_keypress(device, kill_btn)
|
||||
|
||||
time.sleep(.1)
|
||||
# now we MUST be dead
|
||||
with pytest.raises(Exception):
|
||||
_press_select(device, is_Q, timeout=1000)
|
||||
@ -436,6 +437,7 @@ def test_login_integration(request, nick, randomize, login_ctdwn, kill_btn, kill
|
||||
if kill_btn and kill_when and is_Q:
|
||||
# kill it before even trying to insert any PIN (not possible on Mk4)
|
||||
_need_keypress(device, kill_btn)
|
||||
time.sleep(.1)
|
||||
with pytest.raises(Exception):
|
||||
_press_select(device, is_Q, timeout=1000)
|
||||
sim.stop()
|
||||
@ -457,6 +459,7 @@ def test_login_integration(request, nick, randomize, login_ctdwn, kill_btn, kill
|
||||
time.sleep(secs + 1)
|
||||
if kill_btn and not kill_when and is_Q:
|
||||
_need_keypress(device, kill_btn)
|
||||
time.sleep(.1)
|
||||
with pytest.raises(Exception):
|
||||
_press_select(device, is_Q, timeout=1000)
|
||||
sim.stop()
|
||||
|
||||
@ -1440,7 +1440,7 @@ def test_home_menu_xfp(goto_home, pick_menu_item, press_select, cap_story, cap_m
|
||||
if "Forces display of XFP" in story:
|
||||
press_select()
|
||||
pick_menu_item("Always Show")
|
||||
time.sleep(.1)
|
||||
time.sleep(.3)
|
||||
m = cap_menu()
|
||||
assert m[1] == "Ready To Sign"
|
||||
assert m[0] == "<" + xfp2str(settings_get("xfp")) + ">"
|
||||
@ -1451,13 +1451,13 @@ def test_home_menu_xfp(goto_home, pick_menu_item, press_select, cap_story, cap_m
|
||||
need_keypress("6") # skip words
|
||||
press_select()
|
||||
press_select()
|
||||
time.sleep(.1)
|
||||
time.sleep(.3)
|
||||
m = cap_menu()
|
||||
assert m[1] == "Ready To Sign"
|
||||
assert m[0] == "[" + xfp2str(settings_get("xfp")) + "]"
|
||||
pick_menu_item("Restore Master")
|
||||
press_select()
|
||||
time.sleep(.1)
|
||||
time.sleep(.3)
|
||||
m = cap_menu()
|
||||
assert m[1] == "Ready To Sign"
|
||||
assert m[0] == "<" + xfp2str(settings_get("xfp")) + ">"
|
||||
@ -1469,7 +1469,7 @@ def test_home_menu_xfp(goto_home, pick_menu_item, press_select, cap_story, cap_m
|
||||
if "Forces display of XFP" in story:
|
||||
press_select()
|
||||
pick_menu_item("Only Tmp")
|
||||
time.sleep(.1)
|
||||
time.sleep(.3)
|
||||
m = cap_menu()
|
||||
assert m[0] == "Ready To Sign"
|
||||
|
||||
|
||||
@ -2821,9 +2821,9 @@ def test_multisig_name_validation(microsd_path, offer_ms_import):
|
||||
|
||||
|
||||
def test_multisig_deriv_path_migration(settings_set, clear_ms, import_ms_wallet,
|
||||
press_select, settings_get, make_multisig,
|
||||
press_cancel, settings_get, make_multisig,
|
||||
goto_home, start_sign, cap_story, end_sign,
|
||||
pick_menu_item, cap_menu, press_cancel):
|
||||
pick_menu_item, cap_menu):
|
||||
# this test case simulates multisig wallets imported to CC before 5.3.0
|
||||
# release; these wallets, saved in user settings, still have "'" in derivation
|
||||
# paths; 5.3.1 firmware implements migration to "h" in MultisigWallet.deserialize
|
||||
@ -2833,13 +2833,14 @@ def test_multisig_deriv_path_migration(settings_set, clear_ms, import_ms_wallet,
|
||||
deriv, text_a_fmt = ("m/48h/1h/0h/2h/{idx}", 'p2wsh')
|
||||
keys = make_multisig(2, 3, unique=1, deriv=deriv)
|
||||
derivs = [deriv.format(idx=i) for i in range(3)]
|
||||
import_ms_wallet(2, 3, accept=1, keys=keys, name="ms1",
|
||||
import_ms_wallet(2, 3, accept=True, keys=keys, name="ms1",
|
||||
derivs=derivs, addr_fmt=text_a_fmt)
|
||||
press_select()
|
||||
import_ms_wallet(3, 5, name="ms2", addr_fmt='p2wsh-p2sh')
|
||||
press_select()
|
||||
ms = settings_get("multisig")
|
||||
time.sleep(.1)
|
||||
|
||||
import_ms_wallet(3, 5, name="ms2", addr_fmt='p2wsh-p2sh', accept=True)
|
||||
time.sleep(.1)
|
||||
|
||||
ms = settings_get("multisig")
|
||||
pths0 = ms[0][3]["d"]
|
||||
new_pths0 = [p.replace("h", "'") for p in pths0]
|
||||
ms[0][3]["d"] = new_pths0
|
||||
|
||||
@ -832,7 +832,7 @@ def test_sign_wutxo(start_sign, set_seed_words, end_sign, cap_story, sim_exec, s
|
||||
|
||||
#print(story)
|
||||
|
||||
assert 'Network fee:\n0.00000500 XTN' in story
|
||||
assert 'Network fee 0.00000500 XTN' in story
|
||||
|
||||
# check we understood it right
|
||||
ex = dict( had_witness=False, num_inputs=1, num_outputs=1, sw_inputs=[None],
|
||||
|
||||
@ -8,6 +8,30 @@ from mnemonic import Mnemonic
|
||||
from bip32 import BIP32Node
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def enable_hw_ux(pick_menu_item, cap_story, press_select, goto_home):
|
||||
def doit(way):
|
||||
pick_menu_item("Settings")
|
||||
pick_menu_item("Hardware On/Off")
|
||||
if way == "vdisk":
|
||||
pick_menu_item("Virtual Disk")
|
||||
_, story = cap_story()
|
||||
if "emulate a virtual disk drive" in story:
|
||||
press_select()
|
||||
pick_menu_item("Enable")
|
||||
elif way == "nfc":
|
||||
pick_menu_item("NFC Sharing")
|
||||
_, story = cap_story()
|
||||
if "(Near Field Communications)" in story:
|
||||
press_select()
|
||||
pick_menu_item("Enable NFC")
|
||||
else:
|
||||
raise RuntimeError("TODO")
|
||||
|
||||
goto_home()
|
||||
|
||||
return doit
|
||||
|
||||
def test_get_secrets(get_secrets, master_xpub):
|
||||
v = get_secrets()
|
||||
|
||||
@ -395,15 +419,14 @@ def test_new_wallet(nwords, goto_home, pick_menu_item, cap_story, expect_ftux,
|
||||
def test_import_prv(way, testnet, pick_menu_item, cap_story, need_keypress, unit_test, cap_menu,
|
||||
word_menu_entry, get_secrets, microsd_path, multiple_runs, reset_seed_words,
|
||||
nfc_write_text, settings_set, virtdisk_path, expect_ftux, press_select,
|
||||
press_nfc, is_q1):
|
||||
if testnet:
|
||||
netcode = "XTN"
|
||||
settings_set('chain', 'XTN')
|
||||
else:
|
||||
netcode = "BTC"
|
||||
settings_set('chain', 'XTN')
|
||||
press_nfc, is_q1, enable_hw_ux):
|
||||
|
||||
unit_test('devtest/clear_seed.py')
|
||||
netcode = "XTN" if testnet else "BTC"
|
||||
settings_set('chain', netcode)
|
||||
|
||||
if way != "sd":
|
||||
enable_hw_ux(way)
|
||||
|
||||
node = BIP32Node.from_master_secret(os.urandom(32), netcode=netcode)
|
||||
prv = node.hwif(as_private=True)+'\n'
|
||||
@ -465,15 +488,16 @@ def test_import_prv(way, testnet, pick_menu_item, cap_story, need_keypress, unit
|
||||
def test_seed_import_tapsigner(way, retry, testnet, cap_menu, pick_menu_item, goto_home, cap_story,
|
||||
need_keypress, reset_seed_words, dev, try_sign, enter_hex, unit_test,
|
||||
settings_set, get_secrets, tapsigner_encrypted_backup, nfc_write_text,
|
||||
press_nfc, press_select, is_q1):
|
||||
press_nfc, press_select, is_q1, enable_hw_ux):
|
||||
unit_test('devtest/clear_seed.py')
|
||||
netcode = "XTN" if testnet else "BTC"
|
||||
settings_set('chain', netcode)
|
||||
|
||||
if way != "sd":
|
||||
enable_hw_ux(way)
|
||||
|
||||
fname, backup_key_hex, node = tapsigner_encrypted_backup(way, testnet=testnet)
|
||||
if testnet:
|
||||
settings_set('chain', 'XTN')
|
||||
else:
|
||||
settings_set('chain', 'XTN')
|
||||
|
||||
unit_test('devtest/clear_seed.py')
|
||||
m = cap_menu()
|
||||
assert m[0] == 'New Seed Words'
|
||||
pick_menu_item('Import Existing')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user