Salome HOME
Error management when a job is created with wrong parameters.
[tools/ydefx.git] / src / pyexample / test_default.py
index fa0b6e7392e743355e8231726e5d6464bf8473c9..8d07653819221e4495a4717883adafe11380e409 100644 (file)
@@ -25,7 +25,55 @@ class TestYdefx(unittest.TestCase):
   def test_availableResources(self):
     import pydefx
     lr = pydefx.configuration.availableResources()
-    self.assertIn('localhost', lr) 
+    self.assertIn('localhost', lr)
+
+  def test_invalid_study(self):
+    import pydefx
+    myParams = pydefx.Parameters()
+    myParams.configureResource("localhost")
+    myScript = pydefx.PyScript()
+    myStudy = pydefx.PyStudy()
+
+    myScript.loadString("wrong 'script")
+    mySample = pydefx.Sample([],[])
+    try:
+      myStudy.createNewJob(myScript, mySample, myParams)
+      self.fail("Excpected pydefx.pyscript.PyScriptException!")
+    except pydefx.pyscript.PyScriptException:
+      pass
+    except pydefx.studyexception.StudyException:
+      pass
+
+    script="""
+def _exec():
+  x=5
+  return x
+"""
+    myScript.loadString(script)
+    try:
+      myStudy.createNewJob(myScript, mySample, myParams)
+      self.fail("Excpected pydefx.studyexception.StudyUseException!")
+    except pydefx.studyexception.StudyException:
+      pass
+
+    script="""
+def _exec(a):
+  x=5
+  return x
+"""
+    myScript.loadString(script)
+    try:
+      myStudy.createNewJob(myScript, mySample, myParams)
+      self.fail("Excpected pydefx.studyexception.StudyUseException!")
+    except pydefx.studyexception.StudyException:
+      pass
+
+    mySample = pydefx.Sample(["b"],[])
+    try:
+      myStudy.createNewJob(myScript, mySample, myParams)
+      self.fail("Excpected pydefx.studyexception.StudyUseException!")
+    except pydefx.studyexception.StudyException:
+      pass
 
 if __name__ == '__main__':
     unittest.main()