Skip to content

Commit e477429

Browse files
mflaxmanMichael Flaxman
and
Michael Flaxman
authored
hotfix for CLI testing script (#66)
Co-authored-by: Michael Flaxman <[email protected]>
1 parent 0427078 commit e477429

File tree

3 files changed

+52
-44
lines changed

3 files changed

+52
-44
lines changed

test_multiwallet.py

+29-23
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,9 @@ def test_seedpicker_basic(self):
3434
self.child.sendline("generate_seed")
3535
self.child.expect("Enter the first 23 words of your BIP39 seed phrase")
3636
self.child.sendline("bacon " * 23)
37-
# HACK
38-
# self.child.expect() doesn't work as expected because the prompts take place in the middle of a line
3937
self.child.readline()
40-
res = str(self.child.read(42))
41-
self.assertIn("Use Mainnet? [y/N]", res)
38+
res = str(self.child.read(20))
39+
self.assertIn("Use Mainnet?", res)
4240
self.child.sendline(is_mainnet)
4341
self.child.expect("Last word: bacon")
4442
for _ in range(5):
@@ -53,18 +51,16 @@ def test_receive_addr(self):
5351
self.child.sendline("receive")
5452
for _ in range(6):
5553
self.child.readline()
56-
res = str(self.child.read(70))
54+
res = str(self.child.read(50))
5755
self.assertIn("Paste in your account map (AKA output record)", res)
5856
self.child.sendline(account_map)
5957
self.child.readline()
60-
res = str(self.child.read(60))
58+
res = str(self.child.read(40))
6159
self.assertIn("Limit of addresses to display", res)
6260
self.child.sendline("1")
63-
res = str(self.child.read(60))
61+
self.child.readline()
62+
res = str(self.child.read(40))
6463
self.assertIn("Offset of addresses to display", res)
65-
if False:
66-
# FIXME: verify this
67-
self.child.sendline("N")
6864
self.child.sendline("0")
6965
self.child.expect("1-of-2 Multisig Receive Addresses")
7066
self.child.expect(receive_addr)
@@ -76,17 +72,22 @@ def test_change_addr(self):
7672
self.child.sendline("advanced_mode")
7773
self.child.expect("ADVANCED mode set")
7874
self.child.sendline("receive")
79-
res = str(self.child.read(115))
75+
self.child.readline()
76+
self.child.readline()
77+
res = str(self.child.read(50))
8078
self.assertIn("Paste in your account map (AKA output record)", res)
8179
self.child.sendline(account_map)
8280
self.child.readline()
83-
res = str(self.child.read(60))
81+
res = str(self.child.read(40))
8482
self.assertIn("Limit of addresses to display", res)
8583
self.child.sendline("1")
86-
res = str(self.child.read(60))
84+
self.child.readline()
85+
res = str(self.child.read(40))
8786
self.assertIn("Offset of addresses to display", res)
8887
self.child.sendline("0")
89-
# FIXME: verify this
88+
self.child.readline()
89+
res = str(self.child.read(80))
90+
self.assertIn("Display receive addresses?", res)
9091
self.child.sendline("N")
9192
self.child.expect("1-of-2 Multisig Change Addresses")
9293
self.child.expect(change_addr)
@@ -98,17 +99,19 @@ def test_sign_tx(self):
9899
signed_psbt_b64 = "cHNidP8BAFICAAAAASqJ31Trzpdt/MCBc1rpqmJyTcrhHNgqYqmsoDzHoklrAQAAAAD+////AYcmAAAAAAAAFgAUVH5mMP/WhqzXEzUORHbh1WJ7TS4AAAAAAAEBKxAnAAAAAAAAIgAgW8ODIeZA3ep/uESxtEZmQlxl4Q0QWWbe4I7x3aHuEvAiAgI0eOoa6SLJeaxzFWRXvzgWElJmJgyZMSfbSZ7plUxF9kgwRQIhAKTtWurRx19SWBS0G50IkvEDqbdZG2Q0KuTPB3BRWUCoAiBBWAtAQdmL+uV7aMwcJIacsFtYzrGagkhf6ZfEySXPXgEBBYtRIQI0eOoa6SLJeaxzFWRXvzgWElJmJgyZMSfbSZ7plUxF9iECYYmlbj1NXorYlB1Ed7jOwa4nt+xwhePNaxnQW53o6lQhApaCK4Vcv04C6td57v3zGuHGrrVjXQEMKwKbbS8GHrkKIQLEV1INwWxsAYHEj/ElyUDHWQOxdbsfQzP2LT4IRZmWY1SuIgYCNHjqGukiyXmscxVkV784FhJSZiYMmTEn20me6ZVMRfYc99BAkDAAAIABAACAAAAAgAIAAIAAAAAABgAAACIGAmGJpW49TV6K2JQdRHe4zsGuJ7fscIXjzWsZ0Fud6OpUHDpStc0wAACAAQAAgAAAAIACAACAAAAAAAYAAAAiBgKWgiuFXL9OAurXee798xrhxq61Y10BDCsCm20vBh65ChwSmA7tMAAAgAEAAIAAAACAAgAAgAAAAAAGAAAAIgYCxFdSDcFsbAGBxI/xJclAx1kDsXW7H0Mz9i0+CEWZlmMcx9BkijAAAIABAACAAAAAgAIAAIAAAAAABgAAAAAA"
99100

100101
self.child.sendline("send")
101-
res = str(self.child.read(220))
102+
for _ in range(6):
103+
self.child.readline()
104+
res = str(self.child.read(50))
102105
self.assertIn("Paste in your account map (AKA output record)", res)
103106
self.child.sendline(account_map)
104107
self.child.readline()
105-
res = str(self.child.read(90))
108+
res = str(self.child.read(70))
106109
self.assertIn(
107110
"Paste partially signed bitcoin transaction (PSBT) in base64 form", res
108111
)
109112
self.child.sendline(unsigned_psbt_b64)
110113
self.child.readline()
111-
res = str(self.child.read(100))
114+
res = str(self.child.read(75))
112115
self.assertIn(
113116
"Transaction appears to be a testnet transaction. Display as testnet?", res
114117
)
@@ -128,18 +131,21 @@ def test_sign_tx(self):
128131
)
129132
for _ in range(19):
130133
self.child.readline()
131-
res = str(self.child.read(45))
132-
self.assertIn("Sign this transaction? [Y/n]", res)
134+
res = str(self.child.read(30))
135+
self.assertIn("Sign this transaction?", res)
133136
self.child.sendline("Y")
134-
res = str(self.child.read(62))
137+
self.child.readline()
138+
res = str(self.child.read(40))
135139
self.assertIn("Enter your full BIP39 seed phrase", res)
136140
self.child.sendline(seed_phrase)
137141
self.child.readline()
138-
res = str(self.child.read(70))
139-
self.assertIn("Use a passphrase (advanced users only)? [y/N]", res)
142+
res = str(self.child.read(50))
143+
self.assertIn("Use a passphrase (advanced users only)?", res)
140144
self.child.sendline("N")
141145
self.child.expect("Signed PSBT to broadcast")
142-
res = str(self.child.read(890))
146+
self.child.readline()
147+
self.child.readline()
148+
res = str(self.child.readline())
143149
self.assertIn(signed_psbt_b64, res)
144150

145151
def test_fail(self):

test_singlesweep.py

+20-20
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,31 @@ def test_send_compressed(self):
3636
self.child.sendline("sweep")
3737
for _ in range(5):
3838
self.child.readline()
39-
res = str(self.child.read(90))
39+
res = str(self.child.read(70))
4040
self.assertIn("Enter WIF (Wallet Import Format) to use for signing:", res)
4141
self.child.sendline("cMahea7zqjxrtgAbB7LSGbcQUr1uX1ojuh9HqjiLNWDVQudB7k4E")
4242
self.child.expect(
4343
"Will attempt to spend from TESTNET mxgA6BsDLcv4vooLx4j6MfHQRihbrdwV5P"
4444
)
45-
res = str(self.child.read(85))
45+
self.child.readline()
46+
res = str(self.child.read(70))
4647
self.assertIn(
4748
"Paste partially signed bitcoin transaction (PSBT) in base64 form", res
4849
)
4950
psbt_to_sign = "cHNidP8BAFUCAAAAAVRZh97dheVJzHkcaznyZCtSunoNJgnNGBRKGYw5nBSQAQAAAAD9////ASCFAQAAAAAAGXapFJ+aer1gDAyqA5g6d8jD344GLLL6iKxZiR4AAAEA4gIAAAAAAQEy/IizvbchxG0F6yLb/g0qEa9HidaAzlDzGCUMNgwZTQAAAAAA/v///wKEOaMAAAAAABepFOpylCCZWu7JekQ9p98RPeFn3kRoh6CGAQAAAAAAGXapFLw3unG6dBaKPCHEL+A8dYsff8aRiKwCRzBEAiBanqsb6aKeGstvedoheUCnr7buvdOHz58/J803NfsOkAIgOIpcQ+OGZEzFo7E3FBvUHagLZJLik8vf9KqnfVwfn9MBIQO3M5Kw2cHk3i3s1FpZK69B/oUOubZhv6e/GU7n6RVAeViJHgAAAA=="
5051
self.child.sendline(psbt_to_sign)
51-
res = str(self.child.read(580))
52-
self.assertIn(
53-
"PSBT sends 99,616 sats to mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB with an UNVERIFIED fee of 384 sats (0.38% of spend)",
54-
res,
55-
)
52+
self.child.readline()
53+
res = str(self.child.readline())
54+
want = "PSBT sends 99,616 sats to mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB with an UNVERIFIED fee of 384 sats (0.38% of spend)"
55+
self.assertIn(want, res)
5656
res = str(self.child.read(40))
5757
self.assertIn("In Depth Transaction View? [Y/n]", res)
5858
self.child.sendline("Y")
5959
self.child.expect("DETAILED VIEW")
6060
for _ in range(21):
6161
self.child.readline()
62-
res = str(self.child.read(45))
63-
self.assertIn("Sign this transaction? [Y/n]: ", res)
62+
res = str(self.child.read(35))
63+
self.assertIn("Sign this transaction?", res)
6464
self.child.sendline("Y")
6565
self.child.expect(
6666
"SIGNED TX 0dfc0c3b8e0e87b6321a75fca542c22f792b2d6f519720e0a974976c646b7d5e"
@@ -86,31 +86,31 @@ def test_send_uncompressed(self):
8686
self.child.sendline("sweep")
8787
for _ in range(5):
8888
self.child.readline()
89-
res = str(self.child.read(90))
89+
res = str(self.child.read(70))
9090
self.assertIn("Enter WIF (Wallet Import Format) to use for signing:", res)
9191
self.child.sendline("91avARGdfge8E4tZfYLoxeJ5sGBdNJQH4nM1C3RmiaMW6WFGmDS")
9292
self.child.expect(
9393
"Will attempt to spend from TESTNET mzJtwV9LL6B3Nvm1uc1Z5NK3mqqaZyn9w1"
9494
)
95-
res = str(self.child.read(85))
95+
self.child.readline()
96+
res = str(self.child.read(70))
9697
self.assertIn(
9798
"Paste partially signed bitcoin transaction (PSBT) in base64 form", res
9899
)
99100
psbt_to_sign = "cHNidP8BAFUCAAAAAaASEHE91UJrrmU5FMjXIVUV5HF91EGzcaktfooEUPBFAAAAAAD9////AWPhFwAAAAAAGXapFJ+aer1gDAyqA5g6d8jD344GLLL6iKxniR4AAAEA4gIAAAAAAQH96ccGxhmgYfsrP9xnIUl2WJxnE+Jz2iAH08QAkPiSiQAAAAAA/v///wLj4hcAAAAAABl2qRTOIpkaGEnqK3MB5zwY6WWk/ZKiRoisAWO7XQAAAAAXqRT2kti1/KAVtU90LS4zl1LNGa3NtocCRzBEAiAnsPi908ar1ROFyTWV4TlqlKHijNRbOuolJILCG2G6ywIgCPZLYkWebvcTOztJj3I+D6CX/y9DCZRRhrD9QJtdR80BIQPLHa2FJlrG7KzxKA6ZVJfJ2P3xGp/88a65XIkCNK6Xk1iJHgAAAA=="
100101
self.child.sendline(psbt_to_sign)
101-
res = str(self.child.read(580))
102-
self.assertIn(
103-
"PSBT sends 1,565,027 sats to mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB with an UNVERIFIED fee of 384 sats (0.02% of spend)",
104-
res,
105-
)
106-
res = str(self.child.read(45))
107-
self.assertIn("In Depth Transaction View? [Y/n]", res)
102+
self.child.readline()
103+
res = str(self.child.readline())
104+
want = "PSBT sends 1,565,027 sats to mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB with an UNVERIFIED fee of 384 sats (0.02% of spend)"
105+
self.assertIn(want, res)
106+
res = str(self.child.read(40))
107+
self.assertIn("In Depth Transaction View?", res)
108108
self.child.sendline("Y")
109109
self.child.expect("DETAILED VIEW")
110110
for _ in range(21):
111111
self.child.readline()
112-
res = str(self.child.read(45))
113-
self.assertIn("Sign this transaction? [Y/n]: ", res)
112+
res = str(self.child.read(35))
113+
self.assertIn("Sign this transaction?", res)
114114
self.child.sendline("Y")
115115
self.child.expect(
116116
"SIGNED TX f3271bbac2b66d83379de855a79cead9d0e5210b857bee5c22462635033861c4"

update_pypi.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ rm -rf buidl.egg-info/
1717
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
1818

1919
# Tests
20+
if [ -f requirements-test.txt ]; then python3 -m pip install -r requirements-test.txt; fi
2021
black --check .
2122
flake8 .
22-
pytest -v
23+
pytest -v buidl/test/
24+
pytest -v test_*.py
2325

2426
# Safety
2527
git push

0 commit comments

Comments
 (0)