Salome HOME
merge from branch DEV tag mergeto_trunk_04apr08
[modules/yacs.git] / src / yacsloader / Test / testLoader.py
1
2 import pilot
3 import SALOMERuntime
4 import loader
5 import unittest
6
7 class TestLoader(unittest.TestCase):
8
9   def setUp(self):
10     SALOMERuntime.RuntimeSALOME_setRuntime()
11     self.r = pilot.getRuntime()
12     self.l = loader.YACSLoader()
13     self.e = pilot.ExecutorSwig()
14     pass
15
16   def tearDown(self):
17     del self.r
18     del self.l
19     del self.e
20
21   def test1_FileNotExist(self):
22     # --- File does not exist
23     retex=None
24     try:
25       p = self.l.load("nonexisting")
26     except IOError, ex:
27       print "IO Error: ", ex
28       retex=ex
29     #except pilot.invalid_argument,ex:
30     #  print "invalid_argument:",ex.what()
31     #  retex=ex.what()
32     self.assert_(retex is not None, "exception not raised, or wrong type")
33     pass
34
35   def test2_parseError(self):
36     # --- File exists but parse error
37     retex=None
38     try:
39       p = self.l.load("samples/bid.xml")
40     except ValueError,ex:
41       print "Caught ValueError Exception:",ex
42       retex = ex
43     expected="LogRecord: parser:ERROR:from node node5 does not exist in control link: node5->b2 context: b1. (samples/bid.xml:33)\n"
44     self.assert_(p.getLogger("parser").getStr() == expected, "error not found")
45     pass
46
47   def test3_normal(self):
48     # --- File exists and no parsing problem
49     try:
50       p = self.l.load("samples/aschema.xml")
51       print p.getLogger("parser").getStr()
52       print p
53       print p.getName()
54       for k in p.typeMap: print k
55       for k in p.nodeMap: print k
56       for k in p.inlineMap: print k
57       for k in p.serviceMap: print k
58       print self.e.getTasksToLoad()
59       self.e.RunW(p,0)
60       self.assertEqual(106, p.getChildByName('node48').getEffectiveState())
61     except pilot.Exception,ex:
62       print "YACS exception:",ex
63       self.fail(ex)
64       pass
65     pass
66
67 import os
68 U = os.getenv('USER')
69 f=open("/tmp/" + U + "/UnitTestsResult", 'a')
70 f.write("  --- TEST src/yacsloader: testLoader.py\n")
71 suite = unittest.makeSuite(TestLoader)
72 unittest.TextTestRunner(f, descriptions=1, verbosity=1).run(suite)
73 f.close()