1   
  2   
  3   
  4   
  5   
  6   
  7   
  8   
  9   
 10   
 11   
 12   
 13   
 14   
 15   
 16   
 17   
 18   
 19   
 20   
 21   
 22  """Module for testing the special features of the user function GUI windows.""" 
 23   
 24   
 25  from os import sep 
 26   
 27   
 28  from status import Status; status = Status() 
 29  from test_suite.gui_tests.base_classes import GuiTestCase 
 30   
 31   
 32  from gui.interpreter import Interpreter; interpreter = Interpreter() 
 33  from gui.string_conv import float_to_gui, int_to_gui, str_to_gui 
 34  from gui.uf_objects import Uf_storage; uf_store = Uf_storage() 
 35   
 36   
 38      """Class for testing special features of the user function GUI windows.""" 
 39   
 41          """Execute the pipe.create user function via the GUI user function window. 
 42   
 43          @keyword pipe_name:     The pipe_name argument of the pipe.create user function. 
 44          @type pipe_name:        str 
 45          @keyword pipe_type:     The pipe_type argument of the pipe.create user function. 
 46          @type pipe_type:        str 
 47          """ 
 48   
 49           
 50          uf = uf_store['pipe.create'] 
 51          uf._sync = True 
 52          uf.create_wizard(parent=self.app.gui) 
 53   
 54           
 55          uf.page.SetValue('pipe_name', str_to_gui(pipe_name)) 
 56          uf.page.SetValue('pipe_type', str_to_gui(pipe_type)) 
 57   
 58           
 59          uf.wizard._go_next(None) 
  60   
 61   
 63          """Test the operation of the dx.map user function GUI window.""" 
 64   
 65           
 66          uf = uf_store['dx.map'] 
 67          uf._sync = True 
 68          uf.create_wizard(parent=self.app.gui) 
 69   
 70           
 71          uf.page.uf_args['point'].selection_win_show() 
 72          uf.page.uf_args['point'].sel_win.sequence.SetStringItem(index=0, col=2, label=int_to_gui(2)) 
 73          uf.page.uf_args['point'].selection_win_data() 
 74          points = uf.page.uf_args['point'].GetValue() 
 75          print("Points:  %s" % points) 
 76          self.assertEqual(len(points), 1) 
 77          self.assertEqual(len(points[0]), 3) 
 78          self.assertEqual(points[0][0], None) 
 79          self.assertEqual(points[0][1], 2.0) 
 80          self.assertEqual(points[0][2], None) 
 81   
 82           
 83          uf.page.uf_args['point'].SetValue(str_to_gui('')) 
 84          uf.page.uf_args['point'].selection_win_show() 
 85          uf.page.uf_args['point'].selection_win_data() 
 86          points = uf.page.uf_args['point'].GetValue() 
 87          print("Points:  %s" % points) 
 88          self.assertEqual(points, None) 
 89   
 90           
 91          uf.page.uf_args['point'].SetValue(str_to_gui('[[1, 2, -3.]]')) 
 92          uf.page.uf_args['point'].selection_win_show() 
 93          uf.page.uf_args['point'].selection_win_data() 
 94          uf.page.uf_args['point'].selection_win_show() 
 95          uf.page.uf_args['point'].selection_win_data() 
 96          points = uf.page.uf_args['point'].GetValue() 
 97          print("Points:  %s" % points) 
 98          self.assertEqual(len(points), 1) 
 99          self.assertEqual(len(points[0]), 3) 
100          self.assertEqual(points[0][0], 1.0) 
101          self.assertEqual(points[0][1], 2.0) 
102          self.assertEqual(points[0][2], -3.0) 
103   
104           
105          uf.page.uf_args['point'].SetValue(str_to_gui('[[1, 2, 3], [-2, -3, -4]]')) 
106          uf.page.uf_args['point'].selection_win_show() 
107          uf.page.uf_args['point'].selection_win_data() 
108          uf.page.uf_args['point'].selection_win_show() 
109          uf.page.uf_args['point'].selection_win_data() 
110          points = uf.page.uf_args['point'].GetValue() 
111          print("Points:  %s" % points) 
112          self.assertEqual(len(points), 2) 
113          self.assertEqual(len(points[0]), 3) 
114          self.assertEqual(len(points[1]), 3) 
115          self.assertEqual(points[0][0], 1.0) 
116          self.assertEqual(points[0][1], 2.0) 
117          self.assertEqual(points[0][2], 3.0) 
118          self.assertEqual(points[1][0], -2.0) 
119          self.assertEqual(points[1][1], -3.0) 
120          self.assertEqual(points[1][2], -4.0) 
121   
122           
123          for val in ['2', 'die', '[1, 2, 3]', '[1]', '[[1, 2, 3], 1, 2, 3], [1, 2, 3]]']: 
124              uf.page.uf_args['point'].SetValue(str_to_gui(val)) 
125              uf.page.uf_args['point'].selection_win_show() 
126              uf.page.uf_args['point'].selection_win_data() 
127              points = uf.page.uf_args['point'].GetValue() 
128              print("Points:  %s" % points) 
129              self.assertEqual(points, None) 
130   
131           
132          for val in ['x']: 
133              uf.page.uf_args['point'].SetValue(str_to_gui('')) 
134              uf.page.uf_args['point'].selection_win_show() 
135              uf.page.uf_args['point'].sel_win.sequence.SetStringItem(index=0, col=2, label=str_to_gui(val)) 
136              uf.page.uf_args['point'].sel_win.sequence.SetStringItem(index=0, col=1, label=int_to_gui(1)) 
137              uf.page.uf_args['point'].selection_win_data() 
138              points = uf.page.uf_args['point'].GetValue() 
139              print("Points:  %s" % points) 
140              self.assertEqual(len(points), 1) 
141              self.assertEqual(len(points[0]), 3) 
142              self.assertEqual(points[0][0], 1.0) 
143              self.assertEqual(points[0][1], None) 
144              self.assertEqual(points[0][2], None) 
 145   
146   
148          """Test the operation of the spectrum.read_intensities user function GUI window.""" 
149   
150           
151          uf = uf_store['spectrum.read_intensities'] 
152          uf._sync = True 
153          uf.create_wizard(parent=self.app.gui) 
154   
155           
156          uf.page.uf_args['file'].selection_win_show() 
157          uf.page.uf_args['file'].sel_win.SetValue('test_file') 
158          uf.page.uf_args['file'].selection_win_data() 
159          file = uf.page.uf_args['file'].GetValue() 
160          print("File names:  %s" % file) 
161          self.assert_(isinstance(file, str)) 
162          self.assertEqual(file, 'test_file') 
163   
164           
165          uf.page.uf_args['file'].SetValue(str_to_gui('')) 
166          uf.page.uf_args['file'].selection_win_show() 
167          uf.page.uf_args['file'].selection_win_data() 
168          file = uf.page.uf_args['file'].GetValue() 
169          print("File names:  %s" % file) 
170          self.assertEqual(file, None) 
171   
172           
173          uf.page.uf_args['file'].SetValue(str_to_gui("['test1', 'test2']")) 
174          uf.page.uf_args['file'].selection_win_show() 
175          uf.page.uf_args['file'].selection_win_data() 
176          uf.page.uf_args['file'].selection_win_show() 
177          uf.page.uf_args['file'].selection_win_data() 
178          file = uf.page.uf_args['file'].GetValue() 
179          print("File names:  %s" % file) 
180          self.assertEqual(len(file), 2) 
181          self.assertEqual(file[0], 'test1') 
182          self.assertEqual(file[1], 'test2') 
183   
184           
185          for val in ["['1', '2', '3'", "['1'"]: 
186              uf.page.uf_args['file'].SetValue(str_to_gui(val)) 
187              uf.page.uf_args['file'].selection_win_show() 
188              uf.page.uf_args['file'].selection_win_data() 
189              file = uf.page.uf_args['file'].GetValue() 
190              print("Invalid file: %s\nFile names:  %s" % (val, file)) 
191              self.assertEqual(file, None) 
 192   
193   
195          """Test the operation of the structure.add_atom user function GUI window.""" 
196   
197           
198          uf = uf_store['structure.add_atom'] 
199          uf._sync = True 
200          uf.create_wizard(parent=self.app.gui) 
201   
202           
203          uf.page.uf_args['pos'].selection_win_show() 
204          uf.page.uf_args['pos'].sel_win.sequence.SetStringItem(index=1, col=1, label=int_to_gui(2)) 
205          uf.page.uf_args['pos'].selection_win_data() 
206          pos = uf.page.uf_args['pos'].GetValue() 
207          print("Pos:  %s" % pos) 
208          self.assertEqual(len(pos), 3) 
209          self.assertEqual(pos[0], None) 
210          self.assertEqual(pos[1], 2.0) 
211          self.assertEqual(pos[2], None) 
212   
213           
214          uf.page.uf_args['pos'].SetValue(str_to_gui('')) 
215          uf.page.uf_args['pos'].selection_win_show() 
216          uf.page.uf_args['pos'].selection_win_data() 
217          pos = uf.page.uf_args['pos'].GetValue() 
218          print("Pos:  %s" % pos) 
219          self.assertEqual(pos, None) 
220   
221           
222          uf.page.uf_args['pos'].SetValue(str_to_gui('[1, 2, -3.]')) 
223          uf.page.uf_args['pos'].selection_win_show() 
224          uf.page.uf_args['pos'].selection_win_data() 
225          uf.page.uf_args['pos'].selection_win_show() 
226          uf.page.uf_args['pos'].selection_win_data() 
227          pos = uf.page.uf_args['pos'].GetValue() 
228          print("Pos:  %s" % pos) 
229          self.assertEqual(len(pos), 3) 
230          self.assertEqual(pos[0], 1.0) 
231          self.assertEqual(pos[1], 2.0) 
232          self.assertEqual(pos[2], -3.0) 
233   
234           
235          for val in ['2', 'die', '[1, 2, 3', '[1]', '[[1, 2, 3], 1, 2, 3], [1, 2, 3]]']: 
236              uf.page.uf_args['pos'].SetValue(str_to_gui(val)) 
237              uf.page.uf_args['pos'].selection_win_show() 
238              uf.page.uf_args['pos'].selection_win_data() 
239              pos = uf.page.uf_args['pos'].GetValue() 
240              print("Invalid pos: %s\nPos:  %s" % (val, pos)) 
241              self.assertEqual(pos, None) 
242   
243           
244          for val in ['x']: 
245              uf.page.uf_args['pos'].SetValue(str_to_gui('')) 
246              uf.page.uf_args['pos'].selection_win_show() 
247              uf.page.uf_args['pos'].sel_win.sequence.SetStringItem(index=1, col=1, label=str_to_gui(val)) 
248              uf.page.uf_args['pos'].sel_win.sequence.SetStringItem(index=0, col=1, label=int_to_gui(1)) 
249              uf.page.uf_args['pos'].selection_win_data() 
250              pos = uf.page.uf_args['pos'].GetValue() 
251              print("Pos:  %s" % pos) 
252              self.assertEqual(len(pos), 3) 
253              self.assertEqual(pos[0], 1.0) 
254              self.assertEqual(pos[1], None) 
255              self.assertEqual(pos[2], None) 
 256   
257   
259          """Test the full operation of the structure.read_pdb user function GUI window.""" 
260   
261           
262          self.exec_uf_pipe_create(pipe_name='PDB reading test') 
263   
264           
265          uf = uf_store['structure.read_pdb'] 
266          uf._sync = True 
267          uf.create_wizard(parent=self.app.gui) 
268   
269           
270          file = status.install_path + sep + 'test_suite' + sep + 'shared_data' + sep + 'structures' + sep + 'trunc_ubi_pcs.pdb' 
271          uf.page.SetValue('file', str_to_gui(file)) 
272   
273           
274          uf.page.SetValue('read_model', str_to_gui('6')) 
275          uf.page.uf_args['read_model'].selection_win_show() 
276          uf.page.uf_args['read_model'].sel_win.add_element(None) 
277          uf.page.uf_args['read_model'].sel_win.sequence.SetStringItem(index=0, col=1, label=int_to_gui(2)) 
278          uf.page.uf_args['read_model'].sel_win.sequence.SetStringItem(index=1, col=1, label=int_to_gui(4)) 
279          uf.page.uf_args['read_model'].selection_win_data() 
280   
281           
282          uf.page.uf_args['set_model_num'].selection_win_show() 
283          uf.page.uf_args['set_model_num'].sel_win.add_element(None) 
284          uf.page.uf_args['set_model_num'].sel_win.sequence.SetStringItem(index=0, col=1, label=int_to_gui(1)) 
285          uf.page.uf_args['set_model_num'].sel_win.sequence.SetStringItem(index=1, col=1, label=int_to_gui(3)) 
286          uf.page.uf_args['set_model_num'].selection_win_data() 
287   
288           
289          self.assertEqual(uf.page.uf_args['read_model'].GetValue(), [2, 4]) 
290          self.assertEqual(uf.page.uf_args['set_model_num'].GetValue(), [1, 3]) 
291   
292           
293          uf.wizard._go_next(None) 
294   
295           
296          self.assert_(hasattr(cdp, 'structure')) 
297          self.assert_(hasattr(cdp.structure, 'structural_data')) 
298          self.assertEqual(len(cdp.structure.structural_data), 2) 
299          self.assertEqual(cdp.structure.structural_data[0].num, 1) 
300          self.assertEqual(cdp.structure.structural_data[1].num, 3) 
 301   
302   
304          """Test the operation of the structure.rotate user function GUI window.""" 
305   
306           
307          self.exec_uf_pipe_create(pipe_name='PDB rotation test') 
308   
309           
310          uf = uf_store['structure.read_pdb'] 
311          uf._sync = True 
312          uf.create_wizard(parent=self.app.gui) 
313   
314           
315          file = status.install_path + sep + 'test_suite' + sep + 'shared_data' + sep + 'structures' + sep + 'trunc_ubi_pcs.pdb' 
316          uf.page.SetValue('file', str_to_gui(file)) 
317   
318           
319          uf.page.SetValue('read_model', str_to_gui('6')) 
320          uf.page.uf_args['read_model'].selection_win_show() 
321          uf.page.uf_args['read_model'].sel_win.add_element(None) 
322          uf.page.uf_args['read_model'].sel_win.sequence.SetStringItem(index=0, col=1, label=int_to_gui(2)) 
323          uf.page.uf_args['read_model'].sel_win.sequence.SetStringItem(index=1, col=1, label=int_to_gui(4)) 
324          uf.page.uf_args['read_model'].selection_win_data() 
325   
326           
327          uf.page.uf_args['set_model_num'].selection_win_show() 
328          uf.page.uf_args['set_model_num'].sel_win.add_element(None) 
329          uf.page.uf_args['set_model_num'].sel_win.sequence.SetStringItem(index=0, col=1, label=int_to_gui(1)) 
330          uf.page.uf_args['set_model_num'].sel_win.sequence.SetStringItem(index=1, col=1, label=int_to_gui(3)) 
331          uf.page.uf_args['set_model_num'].selection_win_data() 
332   
333           
334          self.assertEqual(uf.page.uf_args['read_model'].GetValue(), [2, 4]) 
335          self.assertEqual(uf.page.uf_args['set_model_num'].GetValue(), [1, 3]) 
336   
337           
338          uf.wizard._go_next(None) 
339   
340           
341          uf = uf_store['structure.rotate'] 
342          uf._sync = True 
343          uf.create_wizard(parent=self.app.gui) 
344   
345           
346          uf.page.uf_args['R'].selection_win_show() 
347          uf.page.uf_args['R'].sel_win.sequence.SetStringItem(index=1, col=1, label=int_to_gui(2)) 
348          uf.page.uf_args['R'].selection_win_data() 
349          R = uf.page.uf_args['R'].GetValue() 
350          print("Rotation matrix:\n%s" % R) 
351          self.assertEqual(len(R), 3) 
352          self.assertEqual(len(R[0]), 3) 
353          self.assertEqual(R[0][0], 1) 
354          self.assertEqual(R[0][1], 0) 
355          self.assertEqual(R[0][2], 0) 
356          self.assertEqual(R[1][0], 0) 
357          self.assertEqual(R[1][1], 2) 
358          self.assertEqual(R[1][2], 0) 
359          self.assertEqual(R[2][0], 0) 
360          self.assertEqual(R[2][1], 0) 
361          self.assertEqual(R[2][2], 1) 
362   
363           
364          uf.page.uf_args['R'].SetValue(str_to_gui('')) 
365          uf.page.uf_args['R'].selection_win_show() 
366          uf.page.uf_args['R'].sel_win.sequence.SetStringItem(index=1, col=1, label=int_to_gui(2)) 
367          uf.page.uf_args['R'].selection_win_data() 
368          R = uf.page.uf_args['R'].GetValue() 
369          print("Rotation matrix:\n%s" % R) 
370          self.assertEqual(len(R), 3) 
371          self.assertEqual(len(R[0]), 3) 
372          self.assertEqual(R[0][0], None) 
373          self.assertEqual(R[0][1], None) 
374          self.assertEqual(R[0][2], None) 
375          self.assertEqual(R[1][0], None) 
376          self.assertEqual(R[1][1], 2) 
377          self.assertEqual(R[1][2], None) 
378          self.assertEqual(R[2][0], None) 
379          self.assertEqual(R[2][1], None) 
380          self.assertEqual(R[2][2], None) 
381   
382           
383          uf.page.uf_args['R'].SetValue(str_to_gui('')) 
384          uf.page.uf_args['R'].selection_win_show() 
385          uf.page.uf_args['R'].selection_win_data() 
386          R = uf.page.uf_args['R'].GetValue() 
387          print("Rotation matrix:\n%s" % R) 
388          self.assertEqual(R, None) 
389   
390           
391          for val in ['2', 'die', '[1, 2, 3]', '[1]', '[[1, 2, 3], 1, 2, 3], [1, 2, 3]]']: 
392              uf.page.uf_args['R'].SetValue(str_to_gui(val)) 
393              uf.page.uf_args['R'].selection_win_show() 
394              uf.page.uf_args['R'].selection_win_data() 
395              R = uf.page.uf_args['R'].GetValue() 
396              print("Rotation matrix:\n%s" % R) 
397              self.assertEqual(R, None) 
398   
399           
400          for val in ['x']: 
401              uf.page.uf_args['R'].SetValue(str_to_gui('')) 
402              uf.page.uf_args['R'].selection_win_show() 
403              uf.page.uf_args['R'].sel_win.sequence.SetStringItem(index=1, col=1, label=str_to_gui(val)) 
404              uf.page.uf_args['R'].sel_win.sequence.SetStringItem(index=0, col=0, label=int_to_gui(1)) 
405              uf.page.uf_args['R'].selection_win_data() 
406              R = uf.page.uf_args['R'].GetValue() 
407              print("Rotation matrix:\n%s" % R) 
408              self.assertEqual(len(R), 3) 
409              self.assertEqual(len(R[0]), 3) 
410              self.assertEqual(R[0][0], 1.0) 
411              self.assertEqual(R[0][1], None) 
412              self.assertEqual(R[0][2], None) 
413              self.assertEqual(R[1][0], None) 
414              self.assertEqual(R[1][1], None) 
415              self.assertEqual(R[1][2], None) 
416              self.assertEqual(R[2][0], None) 
417              self.assertEqual(R[2][1], None) 
418              self.assertEqual(R[2][2], None) 
419   
420           
421          self.assert_(hasattr(cdp, 'structure')) 
422          self.assert_(hasattr(cdp.structure, 'structural_data')) 
423          self.assertEqual(len(cdp.structure.structural_data), 2) 
424          self.assertEqual(cdp.structure.structural_data[0].num, 1) 
425          self.assertEqual(cdp.structure.structural_data[1].num, 3) 
 426   
427   
 450