def test_paste_threshold(self): eg = EventGenerator(list('abc')) cb = combined_events(eg, paste_threshold=3) e = next(cb) self.assertIsInstance(e, curtsies.events.PasteEvent) self.assertEqual(e.events, list('abc')) self.assertEqual(next(cb), None) eg = EventGenerator(list('abc')) cb = combined_events(eg, paste_threshold=4) self.assertEqual(next(cb), 'a') self.assertEqual(next(cb), 'b') self.assertEqual(next(cb), 'c') self.assertEqual(next(cb), None)
def test_set_timeout(self): eg = EventGenerator('a', zip('bcdefg', [1, 2, 3, 3, 3, 4])) eg.schedule_event(curtsies.events.SigIntEvent(), 5) eg.schedule_event('h', 6) cb = combined_events(eg, paste_threshold=3) self.assertEqual(next(cb), 'a') self.assertEqual(cb.send(0), None) self.assertEqual(next(cb), 'b') self.assertEqual(cb.send(0), None) eg.tick() self.assertEqual(cb.send(0), 'c') self.assertEqual(cb.send(0), None) eg.tick() self.assertIsInstance(cb.send(0), curtsies.events.PasteEvent) self.assertEqual(cb.send(0), None) self.assertEqual(cb.send(None), 'g') self.assertEqual(cb.send(0), None) eg.tick(1) self.assertIsInstance(cb.send(0), curtsies.events.SigIntEvent) self.assertEqual(cb.send(0), None) self.assertEqual(cb.send(None), 'h') self.assertEqual(cb.send(None), None)
def test_set_timeout(self): eg = EventGenerator("a", zip("bcdefg", [1, 2, 3, 3, 3, 4])) eg.schedule_event(curtsies.events.SigIntEvent(), 5) eg.schedule_event("h", 6) cb = combined_events(eg, paste_threshold=3) self.assertEqual(next(cb), "a") self.assertEqual(cb.send(0), None) self.assertEqual(next(cb), "b") self.assertEqual(cb.send(0), None) eg.tick() self.assertEqual(cb.send(0), "c") self.assertEqual(cb.send(0), None) eg.tick() self.assertIsInstance(cb.send(0), curtsies.events.PasteEvent) self.assertEqual(cb.send(0), None) self.assertEqual(cb.send(None), "g") self.assertEqual(cb.send(0), None) eg.tick(1) self.assertIsInstance(cb.send(0), curtsies.events.SigIntEvent) self.assertEqual(cb.send(0), None) self.assertEqual(cb.send(None), "h") self.assertEqual(cb.send(None), None)
def _mainloop(_repl): def loop_handler(): nonlocal event for _, result in _command_line_event.send(event): if not result: continue _repl.process_event_and_paint('<Ctrl-j>') break else: _repl.process_event_and_paint(event) # pylint: disable=undefined-loop-variable _repl.initialize_interp() _repl.process_event(bpythonevents.RunStartupFileEvent()) # do a display before waiting for first event _repl.process_event_and_paint(None) inputs = combined_events(_repl.input_generator) for _ in find_iterator: event = inputs.send(0) if event is not None: loop_handler() for event in inputs: loop_handler()