def test_simple_set_editor_deleted_valid_values(self): editor_factory = SetEditor(values=["one", "two", "three", "four"]) view = View(UItem( "value", editor=editor_factory, style="simple", )) list_edit = ListModel() with reraise_exceptions(), self.setup_gui(list_edit, view) as editor: self.assertEqual(get_list_items(editor._unused), ["four", "three"]) self.assertEqual(get_list_items(editor._used), ["one", "two"]) editor_factory.values = ["two", "three", "four"] process_cascade_events() self.assertEqual(get_list_items(editor._unused), ["four", "three"]) # FIXME issue enthought/traitsui#840 if is_wx(): with self.assertRaises(AssertionError): self.assertEqual(get_list_items(editor._used), ["two"]) self.assertEqual(get_list_items(editor._used), ["one", "two"]) else: self.assertEqual(get_list_items(editor._used), ["two"]) self.assertEqual(list_edit.value, ["two"])
def test_simple_editor_mapping_values(self): class IntListModel(HasTraits): value = List() set_editor_factory = SetEditor( values=[0, 1], format_func=lambda v: str(bool(v)).upper()) formatted_view = View( UItem( "value", editor=set_editor_factory, style="simple", )) with reraise_exceptions(), self.setup_ui(IntListModel(), formatted_view) as editor: self.assertEqual(editor.names, ["FALSE", "TRUE"]) self.assertEqual(editor.mapping, {"FALSE": 0, "TRUE": 1}) self.assertEqual(editor.inverse_mapping, {0: "FALSE", 1: "TRUE"}) set_editor_factory.values = [1, 0] self.assertEqual(editor.names, ["TRUE", "FALSE"]) self.assertEqual(editor.mapping, {"TRUE": 1, "FALSE": 0}) self.assertEqual(editor.inverse_mapping, {1: "TRUE", 0: "FALSE"})