def test_gtk_schedule_action(self): scheduler = GtkScheduler() ran = [False] def action(scheduler, state): ran[0] = True scheduler.schedule(action) def done(data): Gtk.main_quit() assert ran[0] return False GLib.timeout_add(50, done, None) Gtk.main()
def main(): scheduler = GtkScheduler() window = Window() window.connect("delete-event", Gtk.main_quit) container = Gtk.Fixed() window.add(container) text = 'TIME FLIES LIKE AN ARROW' labels = [Gtk.Label(char) for char in text] for label in labels: container.put(label, 0, 0) def handle_label(i, label): def on_next(pos): x, y = pos container.move(label, x + i * 12 + 15, y) window.mousemove.delay(i * 100, scheduler=scheduler).subscribe_(on_next) for i, label in enumerate(labels): handle_label(i, label) window.show_all() Gtk.main()
def test_gtk_schedule_action_cancel(self): ran = [False] scheduler = GtkScheduler() def action(scheduler, state): ran[0] = True d = scheduler.schedule_relative(100, action) d.dispose() def done(data): Gtk.main_quit() assert not ran[0] return False GLib.timeout_add(300, done, None) Gtk.main()
def test_gtk_schedule_action_periodic(self): scheduler = GtkScheduler() period = 50 counter = [3] def action(state): if state: counter[0] -= 1 return state - 1 scheduler.schedule_periodic(period, action, counter[0]) def done(data): Gtk.main_quit() assert counter[0] == 0 return False GLib.timeout_add(300, done, None) Gtk.main()
def test_gtk_schedule_action_due(self): scheduler = GtkScheduler() starttime = datetime.utcnow() endtime = [None] def action(scheduler, state): endtime[0] = datetime.utcnow() scheduler.schedule_relative(200, action) def done(data): Gtk.main_quit() assert endtime[0] diff = endtime[0] - starttime assert diff > timedelta(milliseconds=180) return False GLib.timeout_add(300, done, None) Gtk.main()
def _start_refresh(self) -> None: LOG.debug("start refresh") refresh_interval_ms = self._settings_interactor.get_int( 'settings_refresh_interval') * 1000 self._composite_disposable \ .add(Observable .interval(refresh_interval_ms, scheduler=self._scheduler) .start_with(0) .subscribe_on(self._scheduler) .flat_map(lambda _: self._get_status()) .observe_on(GtkScheduler()) .subscribe(on_next=self._update_status, on_error=lambda e: LOG.exception("Refresh error: %s", str(e))) )
def test_gtk_schedule_now(self): scheduler = GtkScheduler() res = scheduler.now - datetime.utcnow() assert(res < timedelta(seconds=1))