Salome HOME
modif Adao 7 6
[tools/eficas.git] / Tests / testcomm9 / testcomm.py
1 import os,glob,sys
2 import unittest
3 import difflib
4
5 import prefs
6 from InterfaceTK import appli
7
8 def add_param(j,pos,nom,valeur):
9     co=j.addentite("PARAMETRE",pos)
10     co.set_nom(nom)
11     co.set_valeur(valeur)
12     return co
13
14 def add_mcsimp(obj,nom,valeur):
15     mcs=obj.get_child(nom,restreint='oui')
16     if mcs is None:
17        pos=obj.get_index_child(nom)
18        mcs=obj.addentite(nom,pos)
19     mcs.set_valeur(mcs.eval_val(valeur))
20     return mcs
21
22 def cdiff(text1,text2):
23     return " ".join(difflib.context_diff(text1.splitlines(1),text2.splitlines(1)))
24
25 class TestCase(unittest.TestCase):
26    app=None
27    def setUp(self):
28       if self.app == None:
29         self.app=appli.STANDALONE(version='v9')
30       pass
31
32    def tearDown(self):
33       CONTEXT.unset_current_step()
34
35    i=0
36    files= os.path.join(os.path.dirname(__file__),"*.comm")
37    for f in glob.glob(os.path.join(prefs.INSTALLDIR,files)):
38       for o in ('3','2','1','0','m'):
39        f=f[:-1]+o
40        if os.path.isfile(f):break
41
42       i=i+1
43       exec """def test%s(self,file="%s"):
44                   "fichier:%s"
45                   self.commtest(file)
46 """ % (i,f,f)
47    del i
48
49    def commtest(self,file):
50       """ Test generique"""
51       #print file
52       name=os.path.splitext(os.path.basename(file))[0]
53       errfile=os.path.join(os.path.dirname(__file__),name+".err")
54       err=""
55       if os.path.isfile(errfile):
56           f=open(errfile)
57           err=f.read()
58           f.close()
59       j=self.app.openJDC(file=file)
60       assert j.cr.get_mess_exception() == ""
61
62       if err == "":
63         assert j.isvalid(),j.report()
64       else:
65         txt=str(j.report())
66         assert txt == err,cdiff(err,txt)
67
68       CONTEXT.unset_current_step()
69       j.supprime()
70       assert sys.getrefcount(j) == 2,sys.getrefcount(j)