示例#1
0
    def check_button_text_update(self, view):
        button_text_edit = ButtonTextEdit()

        tester = UITester()
        with tester.create_ui(button_text_edit, dict(view=view)) as ui:
            button = tester.find_by_name(ui, "play_button")
            actual = button.inspect(query.DisplayedText())
            self.assertEqual(actual, "I'm a play button")

            button_text_edit.play_button_label = "New Label"
            actual = button.inspect(query.DisplayedText())
            self.assertEqual(actual, "New Label")
 def test_simple_auto_set_false_do_not_update_qt(self):
     foo = Foo(name="")
     view = get_view(style="simple", auto_set=False)
     tester = UITester()
     with tester.create_ui(foo, dict(view=view)) as ui:
         name_field = tester.find_by_name(ui, "name")
         name_field.perform(command.KeySequence("NEW"))
         # with auto-set as False the displayed name should match what has
         # been typed not the trait itself, After "Enter" is pressed it
         # should match the name trait
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(foo.name, "")
         self.assertEqual(display_name, "NEW")
         name_field.perform(command.KeyClick("Enter"))
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(foo.name, "NEW")
         self.assertEqual(display_name, foo.name)
 def check_format_func_used(self, style):
     # Regression test for enthought/traitsui#790
     # The test will fail with traits < 6.1.0 because the bug
     # is fixed in traits, see enthought/traitsui#980 for moving those
     # relevant code to traitsui.
     foo = Foo(name="william", nickname="bill")
     view = View(
         Item("name", format_func=lambda s: s.upper(), style=style),
         Item("nickname", style=style),
     )
     tester = UITester()
     with tester.create_ui(foo, dict(view=view)) as ui:
         display_name = (
             tester.find_by_name(ui, "name").inspect(query.DisplayedText())
         )
         display_nickname = (
             tester.find_by_name(ui, "nickname").inspect(query.DisplayedText())  # noqa E501
         )
         self.assertEqual(display_name, "WILLIAM")
         self.assertEqual(display_nickname, "bill")
 def test_custom_auto_set_false_update_text(self):
     # the auto_set flag is disregard for custom editor. (not true on WX)
     foo = Foo()
     view = get_view(auto_set=False, style="custom")
     tester = UITester()
     with tester.create_ui(foo, dict(view=view)) as ui:
         name_field = tester.find_by_name(ui, "name")
         name_field.perform(command.KeySequence("NEW"))
         name_field.perform(command.KeyClick("Enter"))
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(foo.name, "NEW\n")
         self.assertEqual(display_name, foo.name)
 def test_simple_auto_set_update_text(self):
     foo = Foo()
     view = get_view(style="simple", auto_set=True)
     tester = UITester()
     with tester.create_ui(foo, dict(view=view)) as ui:
         with self.assertTraitChanges(foo, "name", count=3):
             name_field = tester.find_by_name(ui, "name")
             name_field.perform(command.KeySequence("NEW"))
             # with auto-set the displayed name should match the name trait
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(foo.name, "NEW")
         self.assertEqual(display_name, foo.name)
 def test_readonly_editor(self):
     foo = Foo(name="A name")
     view = get_view(style="readonly", auto_set=True)
     tester = UITester()
     with tester.create_ui(foo, dict(view=view)) as ui:
         name_field = tester.find_by_name(ui, "name")
         with self.assertRaises(InteractionNotSupported):
             name_field.perform(command.KeySequence("NEW"))
         # Trying to type should do nothing
         with self.assertRaises(InteractionNotSupported):
             name_field.perform(command.KeyClick("Space"))
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(display_name, "A name")
 def test_custom_auto_set_true_update_text(self):
     # the auto_set flag is disregard for custom editor.  (not true on WX)
     foo = Foo()
     view = get_view(auto_set=True, style="custom")
     tester = UITester()
     with tester.create_ui(foo, dict(view=view)) as ui:
         with self.assertTraitChanges(foo, "name", count=3):
             name_field = tester.find_by_name(ui, "name")
             name_field.perform(command.KeySequence("NEW"))
         # with auto-set the displayed name should match the name trait
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(foo.name, "NEW")
         self.assertEqual(display_name, foo.name)
 def test_custom_auto_set_false_do_not_update_wx(self):
     foo = Foo(name="")
     view = View(
                 Item("name",
                      editor=TextEditor(auto_set=False),
                      style="custom"),
                 Item("nickname",
                      editor=TextEditor(auto_set=False),
                      style="custom")
     )
     tester = UITester()
     with tester.create_ui(foo, dict(view=view)) as ui:
         name_field = tester.find_by_name(ui, "name")
         name_field.perform(command.KeySequence("NEW"))
         # with auto-set as False the displayed name should match what has
         # been typed not the trait itself, After moving to another textbox
         # it should match the name trait
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(foo.name, "")
         self.assertEqual(display_name, "NEW")
         tester.find_by_name(ui, "nickname").perform(command.MouseClick())
         display_name = name_field.inspect(query.DisplayedText())
         self.assertEqual(foo.name, "NEW")
         self.assertEqual(display_name, foo.name)
 def check_set_with_text_after_empty(self, mode):
     model = RangeModel()
     view = View(
         Item("value", editor=RangeEditor(low=1, high=12, mode=mode)))
     tester = UITester()
     with tester.create_ui(model, dict(view=view)) as ui:
         number_field = tester.find_by_name(ui, "value")
         text = number_field.locate(locator.WidgetType.textbox)
         # Delete all contents of textbox
         for _ in range(5):
             text.perform(command.KeyClick("Backspace"))
         text.perform(command.KeySequence("11"))
         text.perform(command.KeyClick("Enter"))
         displayed = text.inspect(query.DisplayedText())
         self.assertEqual(model.value, 11)
         self.assertEqual(displayed, str(model.value))
示例#10
0
 def test_locate_element_and_edit(self):
     # varying the number of columns in the view tests the logic for
     # getting the correct nested ui
     for col in range(1, 5):
         obj = ListTraitTest(people=get_people(), num_columns=col)
         tester = UITester()
         with tester.create_ui(obj) as ui:
             # sanity check
             self.assertEqual(obj.people[7].name, "Fields")
             people_list = tester.find_by_name(ui, "people")
             item = people_list.locate(locator.Index(7))
             name_field = item.find_by_name("name")
             for _ in range(6):
                 name_field.perform(command.KeyClick("Backspace"))
             name_field.perform(command.KeySequence("David"))
             displayed = name_field.inspect(query.DisplayedText())
             self.assertEqual(obj.people[7].name, "David")
             self.assertEqual(displayed, obj.people[7].name)
 def check_set_with_text_valid(self, mode):
     model = RangeModel()
     view = View(
         Item("value", editor=RangeEditor(low=1, high=12, mode=mode)))
     tester = UITester()
     with tester.create_ui(model, dict(view=view)) as ui:
         # sanity check
         self.assertEqual(model.value, 1)
         number_field = tester.find_by_name(ui, "value")
         text = number_field.locate(locator.WidgetType.textbox)
         if is_windows and is_wx() and mode == 'text':
             # For RangeTextEditor on wx and windows, the textbox
             # automatically gets focus and the full content is selected.
             # Insertion point is moved to keep the test consistent
             text.target.textbox.SetInsertionPointEnd()
         text.perform(command.KeyClick("0"))
         text.perform(command.KeyClick("Enter"))
         displayed = text.inspect(query.DisplayedText())
         self.assertEqual(model.value, 10)
         self.assertEqual(displayed, str(model.value))