def test_can_generate_unique_ids(self): app = App(None, None) any_widget = MockTextWidget() another_widget = MockTextWidget() app.add_widget(any_widget) app.add_widget(another_widget) self.assertNotSameWidget(any_widget, another_widget)
def test_app_refreshes(self): mock_input = self.get_initialized_mock_input() app = App(input_source=mock_input) any_widget = MockTextWidget() app.add_widget(any_widget) app.start() expected_draw_counts = 1 self.assertEqual(expected_draw_counts, any_widget.draw_counts)
def test_app_can_position_widgets(self): mock_input = self.get_initialized_mock_input() any_widget = TextBox() any_pos_x = 5 any_pos_y = 10 display = MockDisplay() app = App(mock_input, display) app.add_widget(any_widget, any_pos_x, any_pos_y) app.start() self.assertEqual(any_pos_x, display.min_x) self.assertTrue(any_pos_y, display.min_y)
def test_can_tab_to_next_widget(self): mock_input = MockConsoleInput() tab_event = KeyPressEvent(0, KeyCommands.TAB) mock_input.set_next_event(tab_event) display = MockDisplay() app = App(mock_input, display) any_widget = MockTextWidget() another_widget = MockTextWidget() app.add_widget(any_widget) app.add_widget(another_widget) self.assertSameWidget(another_widget, app.focused_widget, "Wrong widget has focus") app.start() self.assertSameWidget(any_widget, app.focused_widget, "Wrong widget has focus")
def main(args): display = MsConsoleDisplay() display.clear() width = 80 height = 26 enclosing_frame = Frame(width, height) enclosing_frame.set_width(width) enclosing_frame.set_title("The Sample Application") enclosing_frame.border_enabled = True text_box = TextBox() text_box.set_width(60) text_box.text = "This is a description of the application" list_box = ListBox() list_box.set_title("Menu") list_box.set_width(20) list_box.call_back = lambda item: on_list_item_select(text_box, item) list_box.left_padding = 3 list_box.top_padding = 2 list_box.add_lines(["Option 1", "Option 2", "Option 3"]) app = App() app.add_widget(enclosing_frame, 0, 0) app.add_widget(text_box, 2, 2) app.add_widget(list_box, 2, 4 + text_box.height) app.set_focus(text_box) app.start()