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