import unittest
from collections import namedtuple
from bpython.curtsies import combined_events
from bpython.test import FixLanguageTestCase as TestCase
import curtsies.events
ScheduledEvent = namedtuple("ScheduledEvent", ["when", "event"])
class EventGenerator:
def __init__(self, initial_events=(), scheduled_events=()):
self._events = []
self._current_tick = 0
for e in initial_events:
self.schedule_event(e, 0)
for e, w in scheduled_events:
self.schedule_event(e, w)
def schedule_event(self, event, when):
self._events.append(ScheduledEvent(when, event))
self._events.sort()
def send(self, timeout=None):
if timeout not in [None, 0]:
raise ValueError("timeout value %r not supported" % timeout)
if not self._events:
return None
if self._events[0].when