Salome HOME
modif Adao 7 6
[tools/eficas.git] / Tests / testelem / testfact1.py
1 # coding=utf-8
2 from Accas import SIMP,FACT
3
4 import unittest
5
6 class TestFactCase(unittest.TestCase):
7    def setUp(self):
8       self.cata=FACT(a=SIMP(typ='I',statut='o'),
9                      b=SIMP(typ='R'),
10                      c=SIMP(typ='C',defaut=('RI',1,0)),
11                     )
12
13    def tearDown(self):
14       del self.cata
15
16    def testStatut1(self):
17       o=self.cata({'a':1},'mcs1',None)
18       cr=o.report()
19       self.assert_(cr.estvide())
20
21    def testStatut2(self):
22       o=self.cata(None,'mcs1',None)
23       cr=o.report()
24       expected_cr="""Mot cle Facteur :mcs1
25    Mot-clé simple : a
26       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27       ! Mot-clé :  a  obligatoire non valorisé !
28       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
29       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
30       ! None n'est pas une valeur autorisée !
31       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
32    Fin Mot-clé simple : a
33 Fin Mot cle Facteur :mcs1
34 """
35       self.assertEqual(str(cr) , expected_cr)
36
37    def testType1(self):
38       """Verification de type"""
39       #Ne leve plus d'exception
40       #self.assertRaises(AttributeError,self.cata,1,'mcs1',None)
41       o=self.cata({'a':1.2},'mcs1',None)
42       cr=o.report()
43       expected_cr="""Mot cle Facteur :mcs1
44    Mot-clé simple : a
45       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
46       ! 1.2 (de type <type 'float'>) n'est pas d'un type autorisé: ('I',) !
47       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
48    Fin Mot-clé simple : a
49 Fin Mot cle Facteur :mcs1
50 """
51       msg="le rapport d'erreur est incorrect.\n expected =\n%s\n got =\n%s " % (expected_cr,str(cr))
52       self.assertEqual(str(cr) , expected_cr,msg=msg)
53
54    def test031(self):
55        cata=FACT(min=2,max=3,a=SIMP(typ='I',statut='o'),)
56
57        liste=(
58              (({'a':1},{'a':2}),1),
59              (({'a':1},{'a':2},{'a':3},{'a':4}),0),
60              (({'a':1},{'a':2},{'a':3}),1),
61              (({'a':1},),0),
62              )
63        for valeur,valid in liste:
64            o=cata(valeur,'mcf',None)
65            self.assertEqual(o.isvalid(),valid,"erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report()))
66
67    def test032(self):
68        cata=FACT(max=3,a=SIMP(typ='I',statut='o'),)
69        mcfact=cata({'a':1},'mcf',None)
70        self.assertEqual(mcfact[0].get_mocle('a') , 1)
71        self.assertEqual(mcfact['a'] , 1)
72
73        mcfact=cata(({'a':1},{'a':2}),'mcf',None)
74        self.assertEqual(mcfact[0]['a'] , 1)
75        self.assertEqual(mcfact[1]['a'] , 2)
76        self.assertRaises(TypeError,mcfact.__getitem__, 'a')
77        def f():
78            return mcfact['a']
79        self.assertRaises(TypeError,f)
80
81    def test033(self):
82        cata=FACT(xx=FACT(statut='o',max=3,a=SIMP(typ='I'),))
83        mcfact=cata({},'mcf',None)
84        valid=0
85        liste=(
86              ({},1),
87              ({'xx':{}},1),
88              ({'xx':{'a':1}},1),
89              ({'xx':"error"},0),
90              ({'xx':("error","err2","err3")},0),
91              ({'xx':({'a':1},"err2","err3")},0),
92              ({'xx':("err1",{'a':1},"err3")},0),
93              ({'xx':("err1",{'a':1},"err3","err4")},0),
94              )
95        for valeur,valid in liste:
96            o=cata(valeur,'mcf',None)
97            self.assertEqual(o.isvalid(),valid,"erreur sur le test %s %s" % (valeur,valid)+'\n'+str(o.report()))