def test_getch_disabled(self): t = TerminalHandler(stdin=FakeInput('a\nb\ncd\ne\n'), keep_input_clean=False, getch_enabled=False) self.assertEqual(t.getch(), 'a') self.assertEqual(t.getch(), 'b') self.assertEqual(t.getch(), 'c') self.assertEqual(t.getch(), 'e') self.assertRaises(EOFError, t.getch)
def test_getch_not_keep_input_clean(self): fin = FakeBytesInput(b'abcde') t1 = TerminalHandler(stdin=fin, keep_input_clean=False) self.assertEqual(t1.getch(), 'a') self.assertEqual(t1.getch(), 'b') self.assertEqual(t1.getch(), 'c') self.assertEqual(t1.getch(), 'd') self.assertEqual(t1.getch(), 'e') self.assertEqual(t1.getch(), '')
def test_getch_key_repeat_disabled(self): fin = FakeBytesInput(b'abcde') def append_char(ch): fin.write(ch) fin.seek(-len(ch), 1) t1 = TerminalHandler(stdin=fin, getch_repeat_threshold=0) self.assertEqual(t1.getch(), 'a') append_char(b'x') self.assertEqual(t1.getch(), 'x') append_char(b'x') self.assertEqual(t1.getch(), 'x') append_char(b'x') self.assertEqual(t1.getch(), 'x') append_char(b'y') self.assertEqual(t1.getch(), 'y') append_char(b'y') self.assertEqual(t1.getch(), 'y') time.sleep(1) append_char(b'y') self.assertEqual(t1.getch(), 'y')
def test_getch_from_file(self): with open(os.path.join('tests', 'resources', 'test_terminal_input.txt')) as f: t = TerminalHandler(stdin=f) self.assertEqual(t.getch(), 'a') self.assertRaises(EOFError, t.getch)