7 def __init__(self,valeur):
9 def __adapt__(self,protocol):
10 return protocol.adapt(self.valeur)
12 from Noyau.N_VALIDATOR import listProto,TypeProtocol,IntoProtocol
14 def __init__(self,valeur):
17 def hasvaleur(obj,protocol,**args):
18 return protocol.adapt(obj.valeur)
20 listProto.register(param,hasvaleur)
21 TypeProtocol.register(param,hasvaleur)
22 IntoProtocol.register(param,hasvaleur)
23 OrdList.register(param,hasvaleur)
25 class TestValidCase(unittest.TestCase):
32 def _test(self,cata,liste):
33 for valeur,valid in liste:
34 o=cata(valeur,'mcs',None)
36 if valid != o.isvalid() :
38 msg="erreur : le mot cle devrait etre invalide. valeur = %s, valid = %s " % (valeur,valid)
40 msg="erreur : le mot cle devrait etre valide. valeur = %s, valid = %s " % (valeur,valid) + '\n' + str(o.report())
41 self.assertEqual(o.isvalid(),valid,msg)
43 self.assertEqual(o.get_valeur(),valeur)
46 cata=SIMP(typ='TXM',validators=LongStr(3,5))
47 liste=(("aa",0),("aaa",1),
48 ("aaaa",1),("aaaaa",1),
49 ("axyzaa",0),("bbbbaaa",0),
51 self._test(cata,liste)
54 cata=SIMP(statut='o',typ='TXM',min=1,max=4,validators=LongStr(3,5))
57 (("aaaa","aaaaa","axyzaa","bbbbaaa","zzz"),0),
58 (("aaaa","aaaaa","axyz","bbbb","zzz"),0),
59 (("aaaa","axyz","bbbb","zzz"),1),
60 ("aaaa",1),("aaaaa",1),
61 ("axyzaa",0),("bbbbaaa",0),
62 (("aaaa",param("axyz"),"bbbb","zzz"),1),
64 self._test(cata,liste)
67 cata=SIMP(statut='o',typ='I',validators=TypeVal(1))
69 (1,1),(1.1,0),(1.25,0),
72 self._test(cata,liste)
75 cata=SIMP(statut='o',typ='I',into=(1,2,3,4,5,6),max='**',validators=OrdList("croissant"))
83 (myparam((1,2,3,4,5)),1),
84 (myparam((1,2,myparam(3),4,5)),1),
85 (myparam((1,2,myparam(6),4,5)),0),
88 (param((1,2,3,4,5)),1),
89 (param((1,2,myparam(3),4,5)),1),
90 (param((1,2,param(3),4,5)),1),
91 (param((1,2,param(6),4,5)),0),
93 self._test(cata,liste)
96 cata=SIMP(statut='o',typ='I',validators=EnumVal((3,2,4,8,9,15)))
101 self._test(cata,liste)
104 cata=SIMP(statut='o',typ='I',max='**',validators=OrdList("croissant"))
113 self._test(cata,liste)
116 cata=SIMP(statut='o',typ='I',min=1,max=4,validators=PairVal())
124 self._test(cata,liste)
127 cata=SIMP(statut='o',typ='I',validators=RangeVal(3,15))
132 self._test(cata,liste)
135 cata=SIMP(statut='o',typ='I',max='**',validators=CardVal(3,15))
143 self._test(cata,liste)
146 cata=SIMP(statut='o',typ='TXM',min=1,max=6,validators=NoRepeat())
149 (("aaaa","aaaaa","axyzaa","bbbbaaa","zzz"),1),
150 (("aaaa","aaaa","axyz","bbbb","zzz"),0),
151 (("aaaa","axyz","bbbb","zzz"),1),
152 ("aaaa",1),("aaaaa",1),
153 ("axyzaa",1),("bbbbaaa",1),
154 (("aaaa",param("aaaaa"),"axyzaa","bbbbaaa","zzz"),1),
155 (("aaaa",param("aaaa"),"axyzaa","bbbbaaa","zzz"),0),
156 (("aaaa",myparam("aaaaa"),"axyzaa","bbbbaaa","zzz"),1),
157 (("aaaa",myparam("aaaa"),"axyzaa","bbbbaaa","zzz"),0),
159 self._test(cata,liste)
162 cata=SIMP(statut='o',typ='TXM',min=1,max=6,into =( "TUTU","TATA","CCCC"),validators=NoRepeat())
164 ("TUTU",1),("TATA",1),
165 (("TUTU","TATA","CCCC"),1),
166 (("TUTU","TATA","CCCC","TUTU","TATA","CCCC"),0),
167 (("TUTU","TATA","CCCC","TUTU","TATA","CCCC","TUTU","TATA","CCCC"),0),
169 self._test(cata,liste)
172 cata=SIMP(statut='o',typ='I',min=1,max=1,into =( 1,2,3),validators=PairVal())
174 (2,1),(1,0),(3,0),(4,0),
175 (param(2),1),(param(3),0),
176 (myparam(2),1),(myparam(3),0),
178 self._test(cata,liste)
181 cata=SIMP(statut='o',typ='I',min=1,max=1,validators=PairVal())
183 (2,1),(1,0),(3,0),(4,1),
185 self._test(cata,liste)
188 cata=SIMP(statut='o',typ='I',min=1,max=6,validators=PairVal())
190 (2,1),(1,0),(3,0),(4,1),
191 ((2,4,6,8),1),((2,4,6,8,10,12,14),0),
192 ((2,4,6,8,7),0),((2,4,6,8,10,12,14,23),0),
194 self._test(cata,liste)
197 """Test du validateur OU : pas de doublon OU valeur paire """
198 cata=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),PairVal()))
200 (2,1),(1,1),(3,1),(4,1),
201 ((2,4,6,8),1),((2,4,6,8,10,12,14),0),
203 ((2,4,6,8,7),1),((2,4,6,8,10,12,14,23),0),
205 self._test(cata,liste)
208 """Test du validateur ET : pas de doublon ET valeur paire """
209 cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),PairVal()])
210 liste=( (2,1),(None,0),((1,3,5),0),
215 self._test(cata,liste)