@@ -562,6 +562,32 @@ def test_up_vt(self):
562562 Event (evt = 'key' , data = 'up' , raw = bytearray (b'\x1b [A' )))
563563 self .assertEqual (self .mock .call_count , 3 )
564564
565+ # All tests above assume that there is always keyboard data to read,
566+ # because for simplicity we just use
567+ # self.console.wait = MagicMock(return_value=True)
568+ def test_wait_empty (self ):
569+ console = WindowsConsole (encoding = 'utf-8' )
570+ console .wait_for_event = MagicMock (return_value = True )
571+ self .assertTrue (console .event_queue .empty ())
572+ timeout = 2.0
573+ self .assertTrue (console .wait (timeout ))
574+ self .assertEqual (console .wait_for_event .call_count , 1 )
575+ self .assertEqual (console .wait_for_event .mock_calls [0 ], call (timeout ))
576+
577+ timeout = 1.1
578+ console .wait_for_event = MagicMock (return_value = False )
579+ self .assertFalse (console .wait (timeout ))
580+ self .assertEqual (console .wait_for_event .call_count , 1 )
581+ self .assertEqual (console .wait_for_event .mock_calls [0 ], call (timeout ))
582+
583+ def test_wait_not_empty (self ):
584+ console = WindowsConsole (encoding = 'utf-8' )
585+ console .wait_for_event = MagicMock (return_value = True )
586+ console .event_queue .push (b"a" )
587+ self .assertFalse (console .event_queue .empty ())
588+ self .assertTrue (console .wait (0.0 ))
589+ self .assertEqual (console .wait_for_event .call_count , 0 )
590+
565591
566592if __name__ == "__main__" :
567593 unittest .main ()
0 commit comments