Salome HOME
Error management when a job is created with wrong parameters.
[tools/ydefx.git] / src / pyexample / test_default.py
1 import unittest
2 import os
3 import time
4
5 class TestYdefx(unittest.TestCase):
6   def test_errors(self):
7     """
8     Test errors in study script.
9     """
10     import pydefx
11
12     myScript = pydefx.PyScript()
13     myScript.loadString("a=5")
14     self.assertIn("not accepted statement", myScript.getErrors())
15     
16     myScript.loadString("n'importe quoi!")
17     self.assertIn("SyntaxError", myScript.getErrors())
18
19     myScript.loadString("")
20     self.assertIn("Function _exec not found", myScript.getErrors())
21     
22     with self.assertRaises(pydefx.pyscript.PyScriptException):
23       mySample = myScript.CreateEmptySample()
24
25   def test_availableResources(self):
26     import pydefx
27     lr = pydefx.configuration.availableResources()
28     self.assertIn('localhost', lr)
29
30   def test_invalid_study(self):
31     import pydefx
32     myParams = pydefx.Parameters()
33     myParams.configureResource("localhost")
34     myScript = pydefx.PyScript()
35     myStudy = pydefx.PyStudy()
36
37     myScript.loadString("wrong 'script")
38     mySample = pydefx.Sample([],[])
39     try:
40       myStudy.createNewJob(myScript, mySample, myParams)
41       self.fail("Excpected pydefx.pyscript.PyScriptException!")
42     except pydefx.pyscript.PyScriptException:
43       pass
44     except pydefx.studyexception.StudyException:
45       pass
46
47     script="""
48 def _exec():
49   x=5
50   return x
51 """
52     myScript.loadString(script)
53     try:
54       myStudy.createNewJob(myScript, mySample, myParams)
55       self.fail("Excpected pydefx.studyexception.StudyUseException!")
56     except pydefx.studyexception.StudyException:
57       pass
58
59     script="""
60 def _exec(a):
61   x=5
62   return x
63 """
64     myScript.loadString(script)
65     try:
66       myStudy.createNewJob(myScript, mySample, myParams)
67       self.fail("Excpected pydefx.studyexception.StudyUseException!")
68     except pydefx.studyexception.StudyException:
69       pass
70
71     mySample = pydefx.Sample(["b"],[])
72     try:
73       myStudy.createNewJob(myScript, mySample, myParams)
74       self.fail("Excpected pydefx.studyexception.StudyUseException!")
75     except pydefx.studyexception.StudyException:
76       pass
77
78 if __name__ == '__main__':
79     unittest.main()