def test_should_provide_the_cursor_routine(self): testhelper.Events.routine_created(self._view, self._plan) self._view.show() testhelper.gtk_update_gui() assert(self._view.cursor_routine(gi.repository.Gdk.EventButton()) == self._plan.routines[-1]) self._view.close() testhelper.gtk_update_gui()
def _do_dialog_accept(self, tmpdir): name = 'export.json' path = os.path.join(tmpdir, name) self._controller.view.set_current_folder(tmpdir) self._controller.view.set_current_name(name) testhelper.gtk_update_gui() self._controller.view.get_widget_for_response(gi.repository.Gtk.ResponseType.ACCEPT).emit('clicked')
def test_should_draw_itself(self): w = gi.repository.Gtk.Window() w.add(self._view) w.show_all() testhelper.gtk_update_gui() w.hide() testhelper.gtk_update_gui()
def test_gtk_update_gui(): builder = gi.repository.Gtk.Builder() builder.add_from_resource(beeps.views.planview.PLAN_UI) w = builder.get_object('planwindow') w.emit('destroy') assert(gi.repository.Gtk.events_pending() == True) testhelper.gtk_update_gui() assert(gi.repository.Gtk.events_pending() == False)
def test_should_be_able_to_quit_a_routine_that_is_in_progress(self): l = testhelper.Listener() self._controller.model.runner.connect('event', l.call) d = 100 self._create_routine(d) self._setup_callback(self._controller.view.lookup_action('control::startstop').activate) self._setup_callback(self._do_close_window) gi.repository.Gtk.main() testhelper.gtk_update_gui() assert(self._plan.runner.has_state(beeps.models.plan.Runner.State.STOPPED) == True) assert(0 < l.elapsed(beeps.helpers.event.RoutineStarted, beeps.helpers.event.IntervalProgressed) < d)
def setup_method(self, method): # create a new view, connect it up, pre-existing routines are not # loaded; can clear out the plan here, but useful for now not to for # robustification: # for r in self._controller.model.routines: # self._plan.delete_routine(r) self._plan = beeps.models.plan.Plan() self._controller = beeps.controllers.plancontroller.PlanController(self._plan, self._app) self._controller.run() self._idle_delay = testhelper.CallbackDelay() testhelper.gtk_update_gui()
def _do_control_startstop_toggled(self): action = self._controller.view.lookup_action('control::startstop') action.activate() testhelper.gtk_update_gui() assert(self._plan.runner.has_state(beeps.models.plan.Runner.State.RUNNING)) action.activate() testhelper.gtk_update_gui() assert(self._plan.runner.has_state(beeps.models.plan.Runner.State.PAUSED)) self._do_close_window() testhelper.gtk_update_gui()
def teardown_method(self, method): self._view.close() self._controller.calls.clear() testhelper.gtk_update_gui()
def assert_selected_routine(view, plan): testhelper.Events.routine_created(view, plan) testhelper.Events.routine_loaded(view, plan) testhelper.gtk_update_gui() assert(view.selected_routine() == plan.routines[-1])
def assert_selected_interval(view, plan): testhelper.Events.routine_created(view, plan) testhelper.Events.routine_loaded(view, plan) testhelper.Events.interval_created(view, plan) testhelper.gtk_update_gui() assert(view.selected_interval().time == plan.routines[0].intervals[0].time)
def teardown_method(self, method): testhelper.gtk_update_gui()
def _do_close_windows(self): testhelper.gtk_update_gui() for w in self._app.get_windows(): w.close() testhelper.gtk_update_gui()
def _do_close_dialog(self): testhelper.gtk_update_gui() gi.repository.Gtk.grab_get_current().close() testhelper.gtk_update_gui() # dialog and window now closed, quit main loop gi.repository.Gtk.main_quit()
def _do_dialog_accept(self): testhelper.gtk_update_gui() self._controller.view.get_widget_for_response(gi.repository.Gtk.ResponseType.ACCEPT).emit('clicked')
def _do_close_dialog_and_window(self): gi.repository.Gtk.grab_get_current().close() testhelper.gtk_update_gui() self._controller.view.close() # dialog and window now closed, quit main loop gi.repository.Gtk.main_quit()
def teardown_method(self, method): self._view.quit() testhelper.gtk_update_gui()
def test_gtk_run_dialog(): dialog = gi.repository.Gtk.FileChooserDialog(title = 'test_gtk_run_dialog', action = gi.repository.Gtk.FileChooserAction.OPEN, buttons = ('Cancel', gi.repository.Gtk.ResponseType.CANCEL)) button = dialog.get_widget_for_response(gi.repository.Gtk.ResponseType.CANCEL) testhelper.gtk_run_dialog(dialog, gi.repository.Gtk.ResponseType.CANCEL, button.emit, 'clicked') dialog.close() testhelper.gtk_update_gui()