1import unittest
2from unittests import wtc
3import wx
4import random
5
6import os
7import wx.lib.agw.persist as PM
8
9#---------------------------------------------------------------------------
10
11class lib_agw_persist_persistencemanager_Tests(wtc.WidgetTestCase):
12
13    def setUp(self):
14        super(lib_agw_persist_persistencemanager_Tests, self).setUp()
15        dirName = os.path.dirname(os.path.abspath(__file__))
16        self._configFile1 = os.path.join(dirName, "PersistTest1")
17
18
19    def test_persistencemanagerCtor(self):
20
21        self._persistMgr = PM.PersistenceManager.Get()
22        self._persistMgr.SetManagerStyle(PM.PM_SAVE_RESTORE_AUI_PERSPECTIVES)
23        self._persistMgr.SetPersistenceFile(self._configFile1)
24
25        # give the frame a Name for below
26        self.frame.SetName('PersistTestFrame')
27        cb = wx.CheckBox(self.frame, name='PersistCheck')
28        cb.persistValue = True
29        cb.SetValue(False)
30
31        self._persistMgr.RegisterAndRestoreAll(self.frame)
32
33        self._persistMgr.SaveAndUnregister()
34
35
36    def test_persistencemanagerRestore(self):
37
38        self._persistMgr = PM.PersistenceManager.Get()
39        self._persistMgr.SetPersistenceFile(self._configFile1)
40
41        # give the frame a Name for below
42        self.frame.SetName('PersistTestFrame')
43
44        self._persistMgr.RegisterAndRestoreAll(self.frame)
45
46        self.assertEqual(self._persistMgr.HasRestored(), True, "Persistence should be there, as it was created in CTOR test.")
47
48
49    def test_persistencemanagerPersistValue(self):
50
51        self._persistMgr = PM.PersistenceManager.Get()
52        self._persistMgr.SetManagerStyle(PM.PM_SAVE_RESTORE_AUI_PERSPECTIVES)
53        self._persistMgr.SetPersistenceFile(self._configFile1)
54
55        # give the frame a Name for below
56        self.frame.SetName('PersistTestFrame')
57        cb = wx.CheckBox(self.frame, name='PersistCheck')
58        cb.persistValue = True
59
60        self._persistMgr.RegisterAndRestoreAll(self.frame)
61
62        self.assertEqual(self._persistMgr.HasRestored(), True, "Persistence should be there, as it was created in CTOR test.")
63        self.assertEqual(cb.GetValue(), False, "Should be False as set in CTOR test")
64
65
66    def test_persistencemanagerZZZZCleanup(self):
67        # Just clean up the test file used by the other tests...
68        # TODO: Fix these tests to be self-contained and to clean up after themselves
69        if os.path.exists(self._configFile1):
70            os.unlink(self._configFile1)
71
72
73    def test_persistencemanagerConstantsExist(self):
74        # PersistenceManager styles
75        PM.PM_SAVE_RESTORE_AUI_PERSPECTIVES
76        PM.PM_SAVE_RESTORE_TREE_LIST_SELECTIONS
77        PM.PM_PERSIST_CONTROL_VALUE
78        PM.PM_RESTORE_CAPTION_FROM_CODE
79        PM.PM_DEFAULT_STYLE
80
81
82        # String constants used by BookHandler
83
84        PM.PERSIST_BOOK_KIND
85        PM.PERSIST_BOOK_SELECTION
86
87        # To save and restore wx.lib.agw.aui.AuiNotebook perspectives
88        PM.PERSIST_BOOK_AGW_AUI_PERSPECTIVE
89
90        # ----------------------------------------------------------------------------------- #
91        # String constants used by TreebookHandler
92
93        PM.PERSIST_TREEBOOK_KIND
94
95        # this key contains the indices of all expanded nodes in the tree book
96        # separated by PERSIST_SEP
97        PM.PERSIST_TREEBOOK_EXPANDED_BRANCHES
98        PM.PERSIST_SEP
99
100        # ----------------------------------------------------------------------------------- #
101        # String constants used by TLWHandler
102
103        # we use just "Window" to keep configuration files and such short, there
104        # should be no confusion with wx.Window itself as we don't have persistent
105        # windows, just persistent controls which have their own specific kind strings
106
107        PM.PERSIST_TLW_KIND
108
109        # Names for various persistent options
110        PM.PERSIST_TLW_X
111        PM.PERSIST_TLW_Y
112        PM.PERSIST_TLW_W
113        PM.PERSIST_TLW_H
114
115        PM.PERSIST_TLW_MAXIMIZED
116        PM.PERSIST_TLW_ICONIZED
117
118        # To save and restore wx.aui and wx.lib.agw.aui perspectives
119        PM.PERSIST_AGW_AUI_PERSPECTIVE
120        PM.PERSIST_AUI_PERSPECTIVE
121
122        PM.PERSIST_AUIPERSPECTIVE_KIND
123
124        # ----------------------------------------------------------------------------------- #
125        # String constants used by CheckBoxHandler
126
127        PM.PERSIST_CHECKBOX_KIND
128        PM.PERSIST_CHECKBOX_3STATE
129        PM.PERSIST_CHECKBOX
130
131        # ----------------------------------------------------------------------------------- #
132        # String constants used by ListBoxHandler
133
134        PM.PERSIST_LISTBOX_KIND
135        PM.PERSIST_LISTBOX_SELECTIONS
136
137        # ----------------------------------------------------------------------------------- #
138        # String constants used by ListCtrlHandler
139
140        PM.PERSIST_LISTCTRL_KIND
141        PM.PERSIST_LISTCTRL_COLWIDTHS
142
143        # ----------------------------------------------------------------------------------- #
144        # String constants used by CheckListBoxHandler
145
146        PM.PERSIST_CHECKLISTBOX_KIND
147        PM.PERSIST_CHECKLIST_CHECKED
148        PM.PERSIST_CHECKLIST_SELECTIONS
149
150        # ----------------------------------------------------------------------------------- #
151        # String constants used by ChoiceComboHandler
152
153        PM.PERSIST_CHOICECOMBO_KIND
154        PM.PERSIST_CHOICECOMBO_SELECTION
155
156        # ----------------------------------------------------------------------------------- #
157        # String constants used by RadioBoxHandler
158
159        PM.PERSIST_RADIOBOX_KIND
160        PM.PERSIST_RADIOBOX_SELECTION
161
162        # ----------------------------------------------------------------------------------- #
163        # String constants used by RadioButtonHandler
164
165        PM.PERSIST_RADIOBUTTON_KIND
166        PM.PERSIST_RADIOBUTTON_VALUE
167
168        # ----------------------------------------------------------------------------------- #
169        # String constants used by ScrolledWindowHandler
170
171        PM.PERSIST_SCROLLEDWINDOW_KIND
172        PM.PERSIST_SCROLLEDWINDOW_POS_H
173        PM.PERSIST_SCROLLEDWINDOW_POS_V
174
175        # ----------------------------------------------------------------------------------- #
176        # String constants used by SliderHandler
177
178        PM.PERSIST_SLIDER_KIND
179        PM.PERSIST_SLIDER_VALUE
180
181        # ----------------------------------------------------------------------------------- #
182        # String constants used by SpinHandler
183
184        PM.PERSIST_SPIN_KIND
185        PM.PERSIST_SPIN_VALUE
186
187        # ----------------------------------------------------------------------------------- #
188        # String constants used by SplitterHandler
189
190        PM.PERSIST_SPLITTER_KIND
191        PM.PERSIST_SPLITTER_POSITION
192
193        # ----------------------------------------------------------------------------------- #
194        # String constants used by TextCtrlHandler
195
196        PM.PERSIST_TEXTCTRL_KIND
197        PM.PERSIST_TEXTCTRL_VALUE
198
199        # ----------------------------------------------------------------------------------- #
200        # String constants used by ToggleButtonHandler
201
202        PM.PERSIST_TOGGLEBUTTON_KIND
203        PM.PERSIST_TOGGLEBUTTON_TOGGLED
204
205        # ----------------------------------------------------------------------------------- #
206        # String constants used by TreeCtrlHandler
207
208        PM.PERSIST_TREECTRL_KIND
209        PM.PERSIST_TREECTRL_CHECKED_ITEMS
210        PM.PERSIST_TREECTRL_EXPANSION
211        PM.PERSIST_TREECTRL_SELECTIONS
212
213        # ----------------------------------------------------------------------------------- #
214        # String constants used by TreeListCtrlHandler
215
216        PM.PERSIST_TREELISTCTRL_KIND
217        PM.PERSIST_TREELISTCTRL_COLWIDTHS
218
219        # ----------------------------------------------------------------------------------- #
220        # String constants used by CalendarCtrlHandler
221
222        PM.PERSIST_CALENDAR_KIND
223        PM.PERSIST_CALENDAR_DATE
224
225        # ----------------------------------------------------------------------------------- #
226        # String constants used by CollapsiblePaneHandler
227
228        PM.PERSIST_COLLAPSIBLE_KIND
229        PM.PERSIST_COLLAPSIBLE_STATE
230
231        # ----------------------------------------------------------------------------------- #
232        # String constants used by DatePickerHandler
233
234        PM.PERSIST_DATEPICKER_KIND
235        PM.PERSIST_DATEPICKER_DATE
236
237        # ----------------------------------------------------------------------------------- #
238        # String constants used by MediaCtrlHandler
239
240        PM.PERSIST_MEDIA_KIND
241
242        PM.PERSIST_MEDIA_POS
243        PM.PERSIST_MEDIA_VOLUME
244        PM.PERSIST_MEDIA_RATE
245
246        # ----------------------------------------------------------------------------------- #
247        # String constants used by ColourPickerHandler
248
249        PM.PERSIST_COLOURPICKER_KIND
250        PM.PERSIST_COLOURPICKER_COLOUR
251
252        # ----------------------------------------------------------------------------------- #
253        # String constants used by FileDirPickerHandler
254
255        PM.PERSIST_FILEDIRPICKER_KIND
256        PM.PERSIST_FILEDIRPICKER_PATH
257
258        # ----------------------------------------------------------------------------------- #
259        # String constants used by FontPickerHandler
260
261        PM.PERSIST_FONTPICKER_KIND
262        PM.PERSIST_FONTPICKER_FONT
263
264        # ----------------------------------------------------------------------------------- #
265        # String constants used by FileHistoryHandler
266
267        PM.PERSIST_FILEHISTORY_KIND
268        PM.PERSIST_FILEHISTORY_PATHS
269
270        # ----------------------------------------------------------------------------------- #
271        # String constants used by FindReplaceHandler
272
273        PM.PERSIST_FINDREPLACE_KIND
274        PM.PERSIST_FINDREPLACE_FLAGS
275        PM.PERSIST_FINDREPLACE_SEARCH
276        PM.PERSIST_FINDREPLACE_REPLACE
277
278        # ----------------------------------------------------------------------------------- #
279        # String constants used by FontDialogHandler
280
281        PM.PERSIST_FONTDIALOG_KIND
282        PM.PERSIST_FONTDIALOG_EFFECTS
283        PM.PERSIST_FONTDIALOG_SYMBOLS
284        PM.PERSIST_FONTDIALOG_COLOUR
285        PM.PERSIST_FONTDIALOG_FONT
286        PM.PERSIST_FONTDIALOG_HELP
287
288        # ----------------------------------------------------------------------------------- #
289        # String constants used by ColourDialogHandler
290
291        PM.PERSIST_COLOURDIALOG_KIND
292        PM.PERSIST_COLOURDIALOG_COLOUR
293        PM.PERSIST_COLOURDIALOG_CHOOSEFULL
294        PM.PERSIST_COLOURDIALOG_CUSTOMCOLOURS
295
296        # ----------------------------------------------------------------------------------- #
297        # String constants used by ChoiceDialogHandler
298
299        PM.PERSIST_CHOICEDIALOG_KIND
300        PM.PERSIST_CHOICEDIALOG_SELECTIONS
301
302        # ----------------------------------------------------------------------------------- #
303        # String constants used by MenuBarHandler
304
305        PM.PERSIST_MENUBAR_KIND
306        PM.PERSIST_MENUBAR_CHECKRADIO_ITEMS
307
308        # ----------------------------------------------------------------------------------- #
309        # String constants used by ToolBarHandler
310
311        PM.PERSIST_TOOLBAR_KIND
312        PM.PERSIST_TOOLBAR_CHECKRADIO_ITEMS
313
314        # ----------------------------------------------------------------------------------- #
315        # String constants used by FoldPanelBarHandler
316
317        PM.PERSIST_FOLDPANELBAR_KIND
318        PM.PERSIST_FOLDPANELBAR_EXPANDED
319
320#---------------------------------------------------------------------------
321
322if __name__ == '__main__':
323    unittest.main()
324