@@ -42,6 +42,8 @@ def __init__(self):
4242 self .blue_users = ["carol-warnettest" , "default" , "mallory-warnettest" ]
4343 self .red_users = ["alice-warnettest" , self .bob_user , "default" ]
4444
45+ self .bitcoin_version_slug = "Bitcoin Core version v27.0.0"
46+
4547 def run_test (self ):
4648 try :
4749 os .chdir (self .tmpdir )
@@ -182,60 +184,66 @@ def bob_runs_scenario_tests(self):
182184 def bob_checks_logs (self ):
183185 assert self .this_is_the_current_context (self .bob_context )
184186 self .log .info ("Bob will check the logs" )
185- bitcoin_version_slug = "Bitcoin Core version v27.0.0"
186- self .sut = pexpect .spawn ("warnet logs" , maxread = 4096 * 10 )
187- self .sut .expect ("Please choose a pod" , timeout = 10 )
188- self .sut .sendline ("" )
189- self .sut .expect (bitcoin_version_slug , timeout = 10 )
190- self .sut .close ()
191- self .sut = pexpect .spawn (f"warnet logs --namespace { self .red_namespace } " , maxread = 4096 * 10 )
192- self .sut .expect ("Please choose a pod" , timeout = 10 )
193- self .sut .sendline ("" )
194- self .sut .expect (bitcoin_version_slug , timeout = 10 )
195- self .sut .close ()
196- self .sut = pexpect .spawn ("warnet logs tank-0008" , maxread = 4096 * 10 )
197- self .sut .expect (bitcoin_version_slug , timeout = 10 )
198- self .sut .close ()
199- self .sut = pexpect .spawn (
187+
188+ sut = pexpect .spawn ("warnet logs" , maxread = 4096 * 10 )
189+ assert expect_without_traceback ("Please choose a pod" , sut )
190+ sut .sendline ("" )
191+ assert expect_without_traceback (self .bitcoin_version_slug , sut )
192+ sut .close ()
193+
194+ sut = pexpect .spawn (f"warnet logs --namespace { self .red_namespace } " , maxread = 4096 * 10 )
195+ assert expect_without_traceback ("Please choose a pod" , sut )
196+ sut .sendline ("" )
197+ assert expect_without_traceback (self .bitcoin_version_slug , sut )
198+ sut .close ()
199+
200+ sut = pexpect .spawn ("warnet logs tank-0008" , maxread = 4096 * 10 )
201+ assert expect_without_traceback (self .bitcoin_version_slug , sut )
202+ sut .close ()
203+
204+ sut = pexpect .spawn (
200205 f"warnet logs tank-0008 --namespace { self .red_namespace } " , maxread = 4096 * 10
201206 )
202- self .sut . expect ( bitcoin_version_slug , timeout = 10 )
203- self . sut .close ()
204- self . sut = pexpect . spawn ( "warnet logs this_does_not_exist" , maxread = 4096 * 10 )
205- assert expect_without_traceback (
206- "Could not find pod in any namespaces" , self . sut , timeout = 10
207- )
208- self . sut . close ()
207+ assert expect_without_traceback ( self .bitcoin_version_slug , sut )
208+ sut .close ()
209+
210+ sut = pexpect . spawn ( "warnet logs this_does_not_exist" , maxread = 4096 * 10 )
211+ assert expect_without_traceback ( "Could not find pod in any namespaces" , sut )
212+ sut . close ( )
213+
209214 self .log .info ("Bob has checked the logs" )
210215 assert self .this_is_the_current_context (self .bob_context )
211216
212217 def admin_checks_logs (self ):
213218 assert self .this_is_the_current_context (self .initial_context )
214219 self .log .info ("The admin will check the logs" )
215- bitcoin_version_slug = "Bitcoin Core version v27.0.0"
216- self .sut = pexpect .spawn ("warnet logs" , maxread = 4096 * 10 )
217- self .sut .expect ("Please choose a pod" , timeout = 10 )
218- self .sut .sendline ("" )
219- self .sut .expect (bitcoin_version_slug , timeout = 10 )
220- self .sut .close ()
221- self .sut = pexpect .spawn (f"warnet logs --namespace { self .red_namespace } " , maxread = 4096 * 10 )
222- self .sut .expect ("Please choose a pod" , timeout = 10 )
223- self .sut .sendline ("" )
224- self .sut .expect (bitcoin_version_slug , timeout = 10 )
225- self .sut .close ()
226- self .sut = pexpect .spawn ("warnet logs tank-0008" , maxread = 4096 * 10 )
227- self .sut .expect ("The pod 'tank-0008' is found in these namespaces" , timeout = 10 )
228- self .sut .close ()
229- self .sut = pexpect .spawn (
220+
221+ sut = pexpect .spawn ("warnet logs" , maxread = 4096 * 10 )
222+ assert expect_without_traceback ("Please choose a pod" , sut )
223+ sut .sendline ("" )
224+ assert expect_without_traceback (self .bitcoin_version_slug , sut )
225+ sut .close ()
226+
227+ sut = pexpect .spawn (f"warnet logs --namespace { self .red_namespace } " , maxread = 4096 * 10 )
228+ assert expect_without_traceback ("Please choose a pod" , sut )
229+ sut .sendline ("" )
230+ assert expect_without_traceback (self .bitcoin_version_slug , sut )
231+ sut .close ()
232+
233+ sut = pexpect .spawn ("warnet logs tank-0008" , maxread = 4096 * 10 )
234+ assert expect_without_traceback ("The pod 'tank-0008' is found in these namespaces" , sut )
235+ sut .close ()
236+
237+ sut = pexpect .spawn (
230238 f"warnet logs tank-0008 --namespace { self .red_namespace } " , maxread = 4096 * 10
231239 )
232- self .sut . expect ( bitcoin_version_slug , timeout = 10 )
233- self . sut .close ()
234- self . sut = pexpect . spawn ( "warnet logs this_does_not_exist" , maxread = 4096 * 10 )
235- assert expect_without_traceback (
236- "Could not find pod in any namespaces" , self . sut , timeout = 10
237- )
238- self . sut . close ()
240+ assert expect_without_traceback ( self .bitcoin_version_slug , sut )
241+ sut .close ()
242+
243+ sut = pexpect . spawn ( "warnet logs this_does_not_exist" , maxread = 4096 * 10 )
244+ assert expect_without_traceback ( "Could not find pod in any namespaces" , sut )
245+ sut . close ( )
246+
239247 self .log .info ("The admin has checked the logs" )
240248 assert self .this_is_the_current_context (self .initial_context )
241249
@@ -260,17 +268,17 @@ class StackTraceFoundException(Exception):
260268 pass
261269
262270
263- def expect_without_traceback (expectation : str , sut : pexpect .spawn , timeout : int = 10 ) -> bool :
271+ def expect_without_traceback (expectation : str , sut : pexpect .spawn , timeout : int = 2 ) -> bool :
264272 expectation_found = False
265273 while True :
266274 try :
267- sut .expect (" \n " , timeout = timeout )
275+ sut .expect ([ " \r " , " \n " ] , timeout = timeout ) # inquirer uses \r
268276 line = sut .before .decode ("utf-8" )
269277 if "Traceback (" in line :
270278 raise StackTraceFoundException
271279 if expectation in line :
272280 expectation_found = True
273- except pexpect .exceptions .EOF :
281+ except ( pexpect .exceptions .EOF , pexpect . exceptions . TIMEOUT ) :
274282 break
275283 return expectation_found
276284
0 commit comments