def test_fo_graphical_icon_disappears(self): o = get_mock_graphical_output() overlay = FunctionOverlay([lambda: True, lambda: False]) mu = Menu([], get_mock_input(), o, name=ui_name, config={}) mu.idle_loop = lambda *a, **k: True Canvas.fonts_dir = fonts_dir overlay.apply_to(mu) def activate(): mu.before_activate() mu.to_foreground() mu.idle_loop() img_1 = o.display_image.call_args[0] mu.idle_loop() mu.refresh() img_2 = o.display_image.call_args[0] assert(img_1 == img_2) for i in range(overlay.duration): mu.idle_loop() mu.refresh() img_2 = o.display_image.call_args[0] assert(img_1 != img_2) mu.deactivate() # KEY_LEFT with patch.object(mu, 'activate', side_effect=activate) as p: mu.activate()
def test_so_spins(self): Canvas.fonts_dir = fonts_dir o = get_mock_graphical_output() overlay = SpinnerOverlay() mu = Menu([], get_mock_input(), o, name=ui_name) mu.idle_loop = lambda *a, **k: True overlay.apply_to(mu) overlay.set_state(mu, False) def activate(): mu.before_activate() mu.to_foreground() mu.idle_loop() img_1 = o.display_image.call_args[0] mu.idle_loop() mu.refresh() img_2 = o.display_image.call_args[0] assert(img_1 == img_2) # enabling the spinner overlay.set_state(mu, True) # first iteration of the spinner mu.idle_loop() img_3 = o.display_image.call_args[0] assert(img_3 != img_1) # second iteration of the spinner mu.idle_loop() img_4 = o.display_image.call_args[0] assert(img_4 != img_1) assert(img_4 != img_3) # disabling the spinner overlay.set_state(mu, False) mu.idle_loop() # now idle_loop shouldn't contain a refresh img_5 = o.display_image.call_args[0] assert(img_5 == img_4) mu.refresh() # now, after an explicit refresh, there should be no spinner left img_6 = o.display_image.call_args[0] assert(img_6 == img_1) assert(img_6 != img_3) assert(img_6 != img_4) mu.deactivate() # KEY_LEFT with patch.object(mu, 'activate', side_effect=activate) as p: mu.activate()
def idle_loop(self): Menu.idle_loop(self) self.refresh()
def idle_loop(self): Menu.idle_loop(self) self.check_character_state()