108 def OpenAllProjectElements(self): |
109 def OpenAllProjectElements(self): |
109 """Open editor for every object in the project tree""" |
110 """Open editor for every object in the project tree""" |
110 self.app.frame.ProjectTree.ExpandAll() |
111 self.app.frame.ProjectTree.ExpandAll() |
111 self.ProcessEvents() |
112 self.ProcessEvents() |
112 item = self.app.frame.ProjectTree.GetRootItem() |
113 item = self.app.frame.ProjectTree.GetRootItem() |
|
114 skip = self.GetSkippedProjectTreeItems() |
|
115 tree_id = self.app.frame.ProjectTree.GetId() |
113 while item is not None: |
116 while item is not None: |
114 self.app.frame.ProjectTree.SelectItem(item, True) |
117 self.app.frame.ProjectTree.SelectItem(item, True) |
115 self.ProcessEvents() |
118 self.ProcessEvents() |
116 id = self.app.frame.ProjectTree.GetId() |
119 if item not in skip: |
117 event = wx.lib.agw.customtreectrl.TreeEvent( |
120 event = wx.lib.agw.customtreectrl.TreeEvent( |
118 wx.lib.agw.customtreectrl.wxEVT_TREE_ITEM_ACTIVATED, |
121 wx.lib.agw.customtreectrl.wxEVT_TREE_ITEM_ACTIVATED, |
119 id, item) |
122 tree_id, item) |
120 self.app.frame.OnProjectTreeItemActivated(event) |
123 self.app.frame.OnProjectTreeItemActivated(event) |
121 self.ProcessEvents() |
124 self.ProcessEvents() |
122 item = self.app.frame.ProjectTree.GetNextVisible(item) |
125 item = self.app.frame.ProjectTree.GetNextVisible(item) |
123 |
126 |
124 def CheckTestProject(self, project): |
127 def CheckTestProject(self, project): |
125 sys.argv = ["", project] |
128 sys.argv = ["", project] |
175 project = self.GetProjectPath(name) |
178 project = self.GetProjectPath(name) |
176 print "Testing example " + name |
179 print "Testing example " + name |
177 self.CheckTestProject(project) |
180 self.CheckTestProject(project) |
178 |
181 |
179 |
182 |
|
183 class PLCOpenEditorApplicationTest(BeremizApplicationTest): |
|
184 """Test PLCOpenEditor as whole application""" |
|
185 |
|
186 def StartApp(self): |
|
187 self.app = PLCOpenEditor.PLCOpenEditorApp() |
|
188 # disable default exception handler in application |
|
189 self.app.InstallExceptionHandler = lambda: None |
|
190 self.InstallExceptionHandler() |
|
191 self.app.Show() |
|
192 self.ProcessEvents() |
|
193 self.app.frame.ShowFullScreen(True) |
|
194 self.ProcessEvents() |
|
195 |
|
196 def FinishApp(self): |
|
197 wx.CallAfter(self.app.frame.Close) |
|
198 self.app.MainLoop() |
|
199 time.sleep(1) |
|
200 self.app = None |
|
201 |
|
202 def GetSkippedProjectTreeItems(self): |
|
203 """ |
|
204 Returns the list of skipped items in the project tree. |
|
205 |
|
206 Root item opens dialog window for project settings. |
|
207 To avoid code that handles closing dialog windows just skip this item. |
|
208 """ |
|
209 return [self.app.frame.ProjectTree.GetRootItem()] |
|
210 |
|
211 def GetUserActions(self): |
|
212 return [] |
|
213 |
|
214 def GetProjectPath(self, project): |
|
215 """Open PLC program in every Beremiz test project""" |
|
216 project_dir = BeremizApplicationTest.GetProjectPath(self, project) |
|
217 return os.path.join(project_dir, "plc.xml") |
|
218 |
|
219 |
180 if __name__ == '__main__': |
220 if __name__ == '__main__': |
181 unittest.main() |
221 unittest.main() |