Salome HOME
dernieres modifs
[tools/eficas.git] / Tests / testelem / testvalidator2.py
1 # coding=utf-8
2 from Accas import *
3 from Extensions.param2 import Variable
4
5 import unittest
6 import compare
7 OK="""Mot-clé simple : mcs
8 Fin Mot-clé simple : mcs
9 """
10 from cata5 import entier
11
12 class TestValidCase(unittest.TestCase):
13    def setUp(self):
14        pass
15
16    def tearDown(self):
17        pass
18
19    def _test(self,cata,liste):
20        for valeur,report in liste:
21            o=cata(valeur,'mcs',None)
22            msg=""
23            rep=str(o.report())
24            valid=compare.check(rep,report)
25            if not valid:
26               msg="le rapport d'erreur est incorrect.\n valeur = %s\n expected =\n%s\n got =\n%s " % (valeur,report,rep)
27            self.assert_(valid,msg=msg)
28
29    def test001(self):
30        """ Validateur LongStr(3,5) """
31        cata=SIMP(typ='TXM',validators=LongStr(3,5))
32        liste=(("aa",
33 """Mot-clé simple : mcs
34    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
35    ! Mot-clé mcs invalide : 'aa' n'est pas de la bonne longueur !
36    ! Critere de validite: longueur de la chaine entre 3 et 5    !
37    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
38 Fin Mot-clé simple : mcs
39 """),("aaa",OK),
40               ("aaaa",OK),("aaaaa",OK),
41               ("axyzaa",
42 """Mot-clé simple : mcs
43    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
44    ! Mot-clé mcs invalide : 'axyzaa' n'est pas de la bonne longueur !
45    ! Critere de validite: longueur de la chaine entre 3 et 5        !
46    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
47 Fin Mot-clé simple : mcs
48 """),("bbbbaaa",
49 """Mot-clé simple : mcs
50    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
51    ! Mot-clé mcs invalide : 'bbbbaaa' n'est pas de la bonne longueur !
52    ! Critere de validite: longueur de la chaine entre 3 et 5         !
53    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
54 Fin Mot-clé simple : mcs
55 """),
56               (Variable('x',"aaa"),OK),
57               (Variable('x',"aaaaaaaaaaaa"),
58 """Mot-clé simple : mcs
59    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
60    ! Mot-clé mcs invalide : 'aaaaaaaaaaaa' n'est pas de la bonne longueur !
61    ! Critere de validite: longueur de la chaine entre 3 et 5              !
62    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
63 Fin Mot-clé simple : mcs
64 """),
65              )
66        self._test(cata,liste)
67
68    def test010(self):
69        cata=SIMP(statut='o',typ='TXM',min=1,max=6,validators=NoRepeat())
70        liste=(
71               ("aa",OK),("aaa",OK),
72               (("aaaa","aaaaa","axyzaa","bbbbaaa","zzz"),OK),
73               (("aaaa","aaaa","axyz","bbbb","zzz"),
74 """Mot-clé simple : mcs
75    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
76    ! Mot-clé mcs invalide : aaaa est un doublon                      !
77    ! Critere de validite: : pas de présence de doublon dans la liste !
78    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
79 Fin Mot-clé simple : mcs
80 """),
81               (("aaaa","axyz","bbbb","zzz"),OK),
82               ("aaaa",OK),("aaaaa",OK),
83               ("axyzaa",OK),("bbbbaaa",OK),
84               (("aaa",Variable('x',"bbb")),OK),
85               (("aaa",Variable('x',"aaa")),
86 """Mot-clé simple : mcs
87    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
88    ! Mot-clé mcs invalide : aaa est un doublon                       !
89    ! Critere de validite: : pas de présence de doublon dans la liste !
90    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
91 Fin Mot-clé simple : mcs
92 """),
93               (Variable('x',("aaa","bbb")),OK),
94               (Variable('x',("aaa","bbb","bbb")),
95 """Mot-clé simple : mcs
96    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
97    ! Mot-clé mcs invalide : bbb est un doublon                       !
98    ! Critere de validite: : pas de présence de doublon dans la liste !
99    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
100 Fin Mot-clé simple : mcs
101 """),
102              )
103        self._test(cata,liste)
104
105    def test011(self):
106        cata=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC"),validators=NoRepeat())
107        liste=(
108               ("TUTU",OK),("TATA",OK),
109               (("TUTU","TATA","CCCC"),OK),
110               (("TUTU","TATA","CCCC","TUTU","TATA","CCCC"),
111 """Mot-clé simple : mcs
112    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
113    ! Mot-clé mcs invalide : TUTU est un doublon                      !
114    ! Critere de validite: : pas de présence de doublon dans la liste !
115    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
116 Fin Mot-clé simple : mcs
117 """),
118               (("TUTU","TATA","CCCC","TUTU","TATA","CCCC","TUTU","TATA","CCCC"),
119 """Mot-clé simple : mcs
120    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
121    ! Nombre d'arguments de ('TUTU', 'TATA', 'CCCC', 'TUTU', 'TATA', 'CCCC', 'TUTU', !
122    ! 'TATA', 'CCCC') incorrect (min = 1, max = 6)                                   !
123    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
124 Fin Mot-clé simple : mcs
125 """),
126              )
127        self._test(cata,liste)
128
129    def test016(self):
130        """Test du validateur ET : pas de doublon ET valeur paire """
131        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()])
132        liste=( ((2,),OK),(None,
133 """Mot-clé simple : mcs
134    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
135    ! Mot-clé :  mcs  obligatoire non valorisé !
136    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
137    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
138    ! None n'est pas une valeur autorisée !
139    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
140 Fin Mot-clé simple : mcs
141 """),((1,3,5),
142 """Mot-clé simple : mcs
143    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
144    ! Mot-clé mcs invalide : (1, 3, 5) contient des valeurs non paires !
145    ! Critere de validite: : pas de présence de doublon dans la liste  !
146    !  et valeur paire                                                 !
147    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
148 Fin Mot-clé simple : mcs
149 """),
150                ((2,4,6),OK),
151                ((2,4,4),
152 """Mot-clé simple : mcs
153    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
154    ! Mot-clé mcs invalide : 4 est un doublon                         !
155    ! Critere de validite: : pas de présence de doublon dans la liste !
156    !  et valeur paire                                                !
157    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
158 Fin Mot-clé simple : mcs
159 """),
160              )
161        self._test(cata,liste)
162
163    def test017(self):
164        """Test du validateur NoRepeat avec objet entier """
165        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=NoRepeat())
166        i=entier()
167        liste=( (i,OK),
168                ((i,i),OK),
169                ((1,i,i),OK),
170                ((i,1,i,i),OK),
171                ((1,1,i,i),
172 """Mot-clé simple : mcs
173    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
174    ! Mot-clé mcs invalide : 1 est un doublon                         !
175    ! Critere de validite: : pas de présence de doublon dans la liste !
176    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
177 Fin Mot-clé simple : mcs
178 """ ),
179                )
180        self._test(cata,liste)
181
182    def test018(self):
183        """Test du validateur OrdList('croissant') avec objet entier """
184        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=OrdList('croissant'))
185        i=entier()
186        liste=( (i,OK),
187                ((i,i),OK),
188                ((1,i,i),OK),
189                ((i,1,i,i),OK),
190                ((2,1,i,i),
191 """Mot-clé simple : mcs
192    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
193    ! Mot-clé mcs invalide : (2, 1, <concept entier>, <concept entier>) n'est pas par !
194    ! valeurs croissantes                                                             !
195    ! Critere de validite: liste croissant                                            !
196    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
197 Fin Mot-clé simple : mcs
198 """),
199                )
200        self._test(cata,liste)
201
202    def test019(self):
203        """Test du validateur Compulsory avec objet entier """
204        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=Compulsory((5,6,7)))
205        i=entier()
206        liste=( ((5,6,7),OK),
207                ((5,6,7,i),OK),
208                ((i,5,6,7,i),OK),
209                ((i,5,7,i),
210 """Mot-clé simple : mcs
211    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
212    ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
213    ! pas les elements obligatoires : [6]                                           !
214    ! Critere de validite: valeur (5, 6, 7) obligatoire                             !
215    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
216 Fin Mot-clé simple : mcs
217 """ ),
218                )
219        self._test(cata,liste)
220
221    def test020(self):
222        """Test du validateur NoRepeat OU Compulsory avec objet entier """
223        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),Compulsory((5,6,7))))
224        i=entier()
225        liste=( ((5,6,7),OK),
226                ((5,6,7,i),OK),
227                ((i,5,6,7,i),OK),
228                ((i,5,7,i), OK ),
229                )
230        self._test(cata,liste)
231
232    def test021(self):
233        """Test du validateur NoRepeat ET Compulsory avec objet entier """
234        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),Compulsory((5,6,7))])
235        i=entier()
236        liste=( ((5,6,7),OK),
237                ((5,6,7,i),OK),
238                ((i,5,6,7,i),OK),
239                ((i,5,7,i),
240 """Mot-clé simple : mcs
241    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
242    ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
243    ! pas les elements obligatoires : [6]                                           !
244    ! Critere de validite: : pas de présence de doublon dans la liste               !
245    !  et valeur (5, 6, 7) obligatoire                                              !
246    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
247 Fin Mot-clé simple : mcs
248 """ ),
249                )
250        self._test(cata,liste)
251
252    def test022(self):
253        """Test du validateur Compulsory(5,6,7) ET OrdList('croissant') avec objet entier """
254        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[Compulsory((5,6,7)),OrdList('croissant')])
255        i=entier()
256        liste=( ((5,6,7),OK),
257                ((5,6,7,i),OK),
258                ((i,5,6,7,i),OK),
259                ((i,5,7,i),
260 """Mot-clé simple : mcs
261    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
262    ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
263    ! pas les elements obligatoires : [6]                                           !
264    ! Critere de validite: valeur (5, 6, 7) obligatoire                             !
265    !  et liste croissant                                                           !
266    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
267 Fin Mot-clé simple : mcs
268 """ ),
269                ((i,5,7,i,6),
270 """Mot-clé simple : mcs
271    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
272    ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>, 6) n'est pas !
273    ! par valeurs croissantes                                                        !
274    ! Critere de validite: valeur (5, 6, 7) obligatoire                              !
275    !  et liste croissant                                                            !
276    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
277 Fin Mot-clé simple : mcs
278 """ ),
279                )
280        self._test(cata,liste)
281
282    def test023(self):
283        """Test du validateur Compulsory(5,6,7) ET OrdList('croissant') ET NoRepeat() avec objet entier """
284        cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[Compulsory((5,6,7)),OrdList('croissant'),NoRepeat()])
285        i=entier()
286        liste=( ((5,6,7),OK),
287                ((5,6,7,i),OK),
288                ((i,5,6,7,i),OK),
289                ((i,5,7,i),
290 """Mot-clé simple : mcs
291    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
292    ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
293    ! pas les elements obligatoires : [6]                                           !
294    ! Critere de validite: valeur (5, 6, 7) obligatoire                             !
295    !  et liste croissant                                                           !
296    !  et : pas de présence de doublon dans la liste                                !
297    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
298 Fin Mot-clé simple : mcs
299 """ ),
300                ((i,5,7,i,6),
301 """Mot-clé simple : mcs
302    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
303    ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>, 6) n'est pas !
304    ! par valeurs croissantes                                                        !
305    ! Critere de validite: valeur (5, 6, 7) obligatoire                              !
306    !  et liste croissant                                                            !
307    !  et : pas de présence de doublon dans la liste                                 !
308    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
309 Fin Mot-clé simple : mcs
310 """ ),
311                ((i,5,i,6,7,7),
312 """Mot-clé simple : mcs
313    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
314    ! Mot-clé mcs invalide : 7 est un doublon           !
315    ! Critere de validite: valeur (5, 6, 7) obligatoire !
316    !  et liste croissant                               !
317    !  et : pas de présence de doublon dans la liste    !
318    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
319 Fin Mot-clé simple : mcs
320 """ ),
321                ((i,5,6,7,i,8),OK),
322                )
323        self._test(cata,liste)