from jmclient import old_mnemonic import pytest @pytest.mark.parametrize( "seedphrase, key, valid", [ (["spiral", "squeeze", "strain", "sunset", "suspend", "sympathy", "thigh", "throne", "total", "unseen", "weapon", "weary"], '0028644c0028644f0028645200286455', True), (["pair", "bury", "lung", "swim", "orange", "doctor", "numb", "interest", "shock", "bloom", "fragile", "screen"], 'fa92999d01431f961a26c876f55d3f6c', True), (["check", "squeeze", "strain", "sunset", "suspend", "sympathy", "thigh", "throne", "total", "unseen", "weapon", "weary"], '0028644c0028644f0028645200286455', False), (["qwerty", "check", "strain", "sunset", "suspend", "sympathy", "thigh", "throne", "total", "unseen", "weapon", "weary"], '', False), (["", "check", "strain", "sunset", "suspend", "sympathy", "thigh", "throne", "total", "unseen", "weapon", "weary"], '', False), (["strain", "sunset"], '', False), ]) def test_old_mnemonic(seedphrase, key, valid): if valid: assert old_mnemonic.mn_decode(seedphrase) == key assert old_mnemonic.mn_encode(key) == seedphrase else: if len(key) > 0: #test cases where the seedphrase is valid #but must not match the provided master private key assert old_mnemonic.mn_decode(seedphrase) != key else: #test cases where the seedphrase is intrinsically invalid #Already known error condition: an incorrectly short #word list will NOT throw an error; this is handled by calling code if len(seedphrase) < 12: print("For known failure case of seedphrase less than 12: ") print(old_mnemonic.mn_decode(seedphrase)) else: with pytest.raises(Exception) as e_info: dummy = old_mnemonic.mn_decode(seedphrase) print("Got this return value from mn_decode: " + str(dummy))