@@ -576,6 +576,32 @@ def test_up_vt(self):
576576 Event (evt = 'key' , data = 'up' , raw = bytearray (b'\x1b [A' )))
577577 self .assertEqual (self .mock .call_count , 3 )
578578
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+
579605
580606if __name__ == "__main__" :
581607 unittest .main ()
0 commit comments