@@ -590,6 +590,32 @@ def test_up_vt(self):
590590 Event (evt = 'key' , data = 'up' , raw = bytearray (b'\x1b [A' )))
591591 self .assertEqual (self .mock .call_count , 3 )
592592
593+ # All tests above assume that there is always keyboard data to read,
594+ # because for simplicity we just use
595+ # self.console.wait = MagicMock(return_value=True)
596+ def test_wait_empty (self ):
597+ console = WindowsConsole (encoding = 'utf-8' )
598+ console .wait_for_event = MagicMock (return_value = True )
599+ self .assertTrue (console .event_queue .empty ())
600+ timeout = 2.0
601+ self .assertTrue (console .wait (timeout ))
602+ self .assertEqual (console .wait_for_event .call_count , 1 )
603+ self .assertEqual (console .wait_for_event .mock_calls [0 ], call (timeout ))
604+
605+ timeout = 1.1
606+ console .wait_for_event = MagicMock (return_value = False )
607+ self .assertFalse (console .wait (timeout ))
608+ self .assertEqual (console .wait_for_event .call_count , 1 )
609+ self .assertEqual (console .wait_for_event .mock_calls [0 ], call (timeout ))
610+
611+ def test_wait_not_empty (self ):
612+ console = WindowsConsole (encoding = 'utf-8' )
613+ console .wait_for_event = MagicMock (return_value = True )
614+ console .event_queue .push (b"a" )
615+ self .assertFalse (console .event_queue .empty ())
616+ self .assertTrue (console .wait (0.0 ))
617+ self .assertEqual (console .wait_for_event .call_count , 0 )
618+
593619
594620if __name__ == "__main__" :
595621 unittest .main ()
0 commit comments