@@ -576,6 +576,32 @@ def test_up_vt(self):
576
576
Event (evt = 'key' , data = 'up' , raw = bytearray (b'\x1b [A' )))
577
577
self .assertEqual (self .mock .call_count , 3 )
578
578
579
+ # All tests above assume that there is always keyboard data to read,
580
+ # because for simplicity we just use
581
+ # self.console.wait = MagicMock(return_value=True)
582
+ def test_wait_empty (self ):
583
+ console = WindowsConsole (encoding = 'utf-8' )
584
+ console .wait_for_event = MagicMock (return_value = True )
585
+ self .assertTrue (console .event_queue .empty ())
586
+ timeout = 2.0
587
+ self .assertTrue (console .wait (timeout ))
588
+ self .assertEqual (console .wait_for_event .call_count , 1 )
589
+ self .assertEqual (console .wait_for_event .mock_calls [0 ], call (timeout ))
590
+
591
+ timeout = 1.1
592
+ console .wait_for_event = MagicMock (return_value = False )
593
+ self .assertFalse (console .wait (timeout ))
594
+ self .assertEqual (console .wait_for_event .call_count , 1 )
595
+ self .assertEqual (console .wait_for_event .mock_calls [0 ], call (timeout ))
596
+
597
+ def test_wait_not_empty (self ):
598
+ console = WindowsConsole (encoding = 'utf-8' )
599
+ console .wait_for_event = MagicMock (return_value = True )
600
+ console .event_queue .push (b"a" )
601
+ self .assertFalse (console .event_queue .empty ())
602
+ self .assertTrue (console .wait (0.0 ))
603
+ self .assertEqual (console .wait_for_event .call_count , 0 )
604
+
579
605
580
606
if __name__ == "__main__" :
581
607
unittest .main ()
0 commit comments