24
24
import json
25
25
import random
26
26
import unittest
27
+ from typing import List
27
28
28
29
from mnemonic import Mnemonic
29
30
30
31
32
+
31
33
class MnemonicTest (unittest .TestCase ):
32
- def _check_list (self , language , vectors ) :
34
+ def _check_list (self , language : str , vectors : List [ str ]) -> None :
33
35
mnemo = Mnemonic (language )
34
36
for v in vectors :
35
37
code = mnemo .to_mnemonic (bytes .fromhex (v [0 ]))
@@ -40,26 +42,26 @@ def _check_list(self, language, vectors):
40
42
self .assertEqual (v [2 ], seed .hex ())
41
43
self .assertEqual (v [3 ], xprv )
42
44
43
- def test_vectors (self ):
45
+ def test_vectors (self ) -> None :
44
46
with open ("vectors.json" , "r" ) as f :
45
47
vectors = json .load (f )
46
48
for lang in vectors .keys ():
47
49
self ._check_list (lang , vectors [lang ])
48
50
49
- def test_failed_checksum (self ):
51
+ def test_failed_checksum (self ) -> None :
50
52
code = (
51
53
"bless cloud wheel regular tiny venue bird web grief security dignity zoo"
52
54
)
53
55
mnemo = Mnemonic ("english" )
54
56
self .assertFalse (mnemo .check (code ))
55
57
56
- def test_detection (self ):
58
+ def test_detection (self ) -> None :
57
59
self .assertEqual ("english" , Mnemonic .detect_language ("security" ))
58
60
59
61
with self .assertRaises (Exception ):
60
62
Mnemonic .detect_language ("xxxxxxx" )
61
63
62
- def test_utf8_nfkd (self ):
64
+ def test_utf8_nfkd (self ) -> None :
63
65
# The same sentence in various UTF-8 forms
64
66
words_nfkd = u"Pr\u030c i\u0301 s\u030c erne\u030c z\u030c lut\u030c ouc\u030c ky\u0301 ku\u030a n\u030c u\u0301 pe\u030c l d\u030c a\u0301 belske\u0301 o\u0301 dy za\u0301 ker\u030c ny\u0301 uc\u030c en\u030c be\u030c z\u030c i\u0301 pode\u0301 l zo\u0301 ny u\u0301 lu\u030a "
65
67
words_nfc = u"P\u0159 \xed \u0161 ern\u011b \u017e lu\u0165 ou\u010d k\xfd k\u016f \u0148 \xfa p\u011b l \u010f \xe1 belsk\xe9 \xf3 dy z\xe1 ke\u0159 n\xfd u\u010d e\u0148 b\u011b \u017e \xed pod\xe9 l z\xf3 ny \xfa l\u016f "
@@ -88,14 +90,14 @@ def test_utf8_nfkd(self):
88
90
self .assertEqual (seed_nfkd , seed_nfkc )
89
91
self .assertEqual (seed_nfkd , seed_nfd )
90
92
91
- def test_to_entropy (self ):
93
+ def test_to_entropy (self ) -> None :
92
94
data = [bytes (random .getrandbits (8 ) for _ in range (32 )) for _ in range (1024 )]
93
95
data .append (b"Lorem ipsum dolor sit amet amet." )
94
96
m = Mnemonic ("english" )
95
97
for d in data :
96
98
self .assertEqual (m .to_entropy (m .to_mnemonic (d ).split ()), d )
97
99
98
- def test_expand_word (self ):
100
+ def test_expand_word (self ) -> None :
99
101
m = Mnemonic ("english" )
100
102
self .assertEqual ("" , m .expand_word ("" ))
101
103
self .assertEqual (" " , m .expand_word (" " ))
@@ -110,15 +112,15 @@ def test_expand_word(self):
110
112
"action" , m .expand_word ("acti" )
111
113
) # unique prefix expanded to word in list
112
114
113
- def test_expand (self ):
115
+ def test_expand (self ) -> None :
114
116
m = Mnemonic ("english" )
115
117
self .assertEqual ("access" , m .expand ("access" ))
116
118
self .assertEqual (
117
119
"access access acb acc act action" , m .expand ("access acce acb acc act acti" )
118
120
)
119
121
120
122
121
- def __main__ ():
123
+ def __main__ () -> None :
122
124
unittest .main ()
123
125
124
126
0 commit comments