Salome HOME
Merge branch 'master' into V9_merge
[tools/eficas.git] / Tests / testelem / testvalidator2.py
index 31b3b1bf8fe567cf787e9f338b1a306a8399f5bf..f78f84331910d6dc3a7a9aab82bc0311ee0e1af5 100644 (file)
@@ -1,11 +1,13 @@
 # coding=utf-8
 from Accas import *
+from Extensions.param2 import Variable
 
 import unittest
 import compare
 OK="""Mot-clé simple : mcs
 Fin Mot-clé simple : mcs
 """
+from cata5 import entier
 
 class TestValidCase(unittest.TestCase):
    def setUp(self):
@@ -22,7 +24,6 @@ class TestValidCase(unittest.TestCase):
            valid=compare.check(rep,report)
            if not valid:
               msg="le rapport d'erreur est incorrect.\n valeur = %s\n expected =\n%s\n got =\n%s " % (valeur,report,rep)
-              print msg
            self.assert_(valid,msg=msg)
 
    def test001(self):
@@ -30,23 +31,35 @@ class TestValidCase(unittest.TestCase):
        cata=SIMP(typ='TXM',validators=LongStr(3,5))
        liste=(("aa",
 """Mot-clé simple : mcs
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Mot-clé :  mcs devrait avoir  longueur de la chaine entre 3 et 5 !
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : 'aa' n'est pas de la bonne longueur !
+   ! Critere de validite: longueur de la chaine entre 3 et 5    !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),("aaa",OK),
               ("aaaa",OK),("aaaaa",OK),
               ("axyzaa",
 """Mot-clé simple : mcs
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Mot-clé :  mcs devrait avoir  longueur de la chaine entre 3 et 5 !
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : 'axyzaa' n'est pas de la bonne longueur !
+   ! Critere de validite: longueur de la chaine entre 3 et 5        !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),("bbbbaaa",
 """Mot-clé simple : mcs
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Mot-clé :  mcs devrait avoir  longueur de la chaine entre 3 et 5 !
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : 'bbbbaaa' n'est pas de la bonne longueur !
+   ! Critere de validite: longueur de la chaine entre 3 et 5         !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+"""),
+              (Variable('x',"aaa"),OK),
+              (Variable('x',"aaaaaaaaaaaa"),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : 'aaaaaaaaaaaa' n'est pas de la bonne longueur !
+   ! Critere de validite: longueur de la chaine entre 3 et 5              !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),
              )
@@ -59,14 +72,33 @@ Fin Mot-cl
               (("aaaa","aaaaa","axyzaa","bbbbaaa","zzz"),OK),
               (("aaaa","aaaa","axyz","bbbb","zzz"),
 """Mot-clé simple : mcs
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Mot-clé :  mcs devrait avoir  : pas de présence de doublon dans la liste !
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : aaaa est un doublon                      !
+   ! Critere de validite: : pas de présence de doublon dans la liste !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),
               (("aaaa","axyz","bbbb","zzz"),OK),
               ("aaaa",OK),("aaaaa",OK),
               ("axyzaa",OK),("bbbbaaa",OK),
+              (("aaa",Variable('x',"bbb")),OK),
+              (("aaa",Variable('x',"aaa")),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : aaa est un doublon                       !
+   ! Critere de validite: : pas de présence de doublon dans la liste !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+"""),
+              (Variable('x',("aaa","bbb")),OK),
+              (Variable('x',("aaa","bbb","bbb")),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : bbb est un doublon                       !
+   ! Critere de validite: : pas de présence de doublon dans la liste !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+"""),
              )
        self._test(cata,liste)
 
@@ -77,16 +109,17 @@ Fin Mot-cl
               (("TUTU","TATA","CCCC"),OK),
               (("TUTU","TATA","CCCC","TUTU","TATA","CCCC"),
 """Mot-clé simple : mcs
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Mot-clé :  mcs devrait avoir  : pas de présence de doublon dans la liste !
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : TUTU est un doublon                      !
+   ! Critere de validite: : pas de présence de doublon dans la liste !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),
               (("TUTU","TATA","CCCC","TUTU","TATA","CCCC","TUTU","TATA","CCCC"),
 """Mot-clé simple : mcs
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ! Nombre d'arguments de ('TUTU', 'TATA', 'CCCC', 'TUTU', 'TATA', 'CCCC', 'TUTU', !
-   ! 'TATA', 'CCCC') incorrect pour mcs (min = 1, max = 6)                          !
+   ! 'TATA', 'CCCC') incorrect (min = 1, max = 6)                                   !
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),
@@ -107,20 +140,184 @@ Fin Mot-cl
 Fin Mot-clé simple : mcs
 """),((1,3,5),
 """Mot-clé simple : mcs
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Mot-clé :  mcs devrait avoir  : pas de présence de doublon dans la liste !
-   !  et valeur paire                                                         !
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (1, 3, 5) contient des valeurs non paires !
+   ! Critere de validite: : pas de présence de doublon dans la liste  !
+   !  et valeur paire                                                 !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),
                ((2,4,6),OK),
                ((2,4,4),
 """Mot-clé simple : mcs
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   ! Mot-clé :  mcs devrait avoir  : pas de présence de doublon dans la liste !
-   !  et valeur paire                                                         !
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : 4 est un doublon                         !
+   ! Critere de validite: : pas de présence de doublon dans la liste !
+   !  et valeur paire                                                !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 Fin Mot-clé simple : mcs
 """),
              )
        self._test(cata,liste)
+
+   def test017(self):
+       """Test du validateur NoRepeat avec objet entier """
+       cata=SIMP(statut='o',typ='I',min=1,max=6,validators=NoRepeat())
+       i=entier()
+       liste=( (i,OK),
+               ((i,i),OK),
+               ((1,i,i),OK),
+               ((i,1,i,i),OK),
+               ((1,1,i,i),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : 1 est un doublon                         !
+   ! Critere de validite: : pas de présence de doublon dans la liste !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               )
+       self._test(cata,liste)
+
+   def test018(self):
+       """Test du validateur OrdList('croissant') avec objet entier """
+       cata=SIMP(statut='o',typ='I',min=1,max=6,validators=OrdList('croissant'))
+       i=entier()
+       liste=( (i,OK),
+               ((i,i),OK),
+               ((1,i,i),OK),
+               ((i,1,i,i),OK),
+               ((2,1,i,i),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (2, 1, <concept entier>, <concept entier>) n'est pas par !
+   ! valeurs croissantes                                                             !
+   ! Critere de validite: liste croissant                                            !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+"""),
+               )
+       self._test(cata,liste)
+
+   def test019(self):
+       """Test du validateur Compulsory avec objet entier """
+       cata=SIMP(statut='o',typ='I',min=1,max=6,validators=Compulsory((5,6,7)))
+       i=entier()
+       liste=( ((5,6,7),OK),
+               ((5,6,7,i),OK),
+               ((i,5,6,7,i),OK),
+               ((i,5,7,i),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
+   ! pas les elements obligatoires : [6]                                           !
+   ! Critere de validite: valeur (5, 6, 7) obligatoire                             !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               )
+       self._test(cata,liste)
+
+   def test020(self):
+       """Test du validateur NoRepeat OU Compulsory avec objet entier """
+       cata=SIMP(statut='o',typ='I',min=1,max=6,validators=(NoRepeat(),Compulsory((5,6,7))))
+       i=entier()
+       liste=( ((5,6,7),OK),
+               ((5,6,7,i),OK),
+               ((i,5,6,7,i),OK),
+               ((i,5,7,i), OK ),
+               )
+       self._test(cata,liste)
+
+   def test021(self):
+       """Test du validateur NoRepeat ET Compulsory avec objet entier """
+       cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[NoRepeat(),Compulsory((5,6,7))])
+       i=entier()
+       liste=( ((5,6,7),OK),
+               ((5,6,7,i),OK),
+               ((i,5,6,7,i),OK),
+               ((i,5,7,i),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
+   ! pas les elements obligatoires : [6]                                           !
+   ! Critere de validite: : pas de présence de doublon dans la liste               !
+   !  et valeur (5, 6, 7) obligatoire                                              !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               )
+       self._test(cata,liste)
+
+   def test022(self):
+       """Test du validateur Compulsory(5,6,7) ET OrdList('croissant') avec objet entier """
+       cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[Compulsory((5,6,7)),OrdList('croissant')])
+       i=entier()
+       liste=( ((5,6,7),OK),
+               ((5,6,7,i),OK),
+               ((i,5,6,7,i),OK),
+               ((i,5,7,i),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
+   ! pas les elements obligatoires : [6]                                           !
+   ! Critere de validite: valeur (5, 6, 7) obligatoire                             !
+   !  et liste croissant                                                           !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               ((i,5,7,i,6),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>, 6) n'est pas !
+   ! par valeurs croissantes                                                        !
+   ! Critere de validite: valeur (5, 6, 7) obligatoire                              !
+   !  et liste croissant                                                            !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               )
+       self._test(cata,liste)
+
+   def test023(self):
+       """Test du validateur Compulsory(5,6,7) ET OrdList('croissant') ET NoRepeat() avec objet entier """
+       cata=SIMP(statut='o',typ='I',min=1,max=6,validators=[Compulsory((5,6,7)),OrdList('croissant'),NoRepeat()])
+       i=entier()
+       liste=( ((5,6,7),OK),
+               ((5,6,7,i),OK),
+               ((i,5,6,7,i),OK),
+               ((i,5,7,i),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>) ne contient !
+   ! pas les elements obligatoires : [6]                                           !
+   ! Critere de validite: valeur (5, 6, 7) obligatoire                             !
+   !  et liste croissant                                                           !
+   !  et : pas de présence de doublon dans la liste                                !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               ((i,5,7,i,6),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : (<concept entier>, 5, 7, <concept entier>, 6) n'est pas !
+   ! par valeurs croissantes                                                        !
+   ! Critere de validite: valeur (5, 6, 7) obligatoire                              !
+   !  et liste croissant                                                            !
+   !  et : pas de présence de doublon dans la liste                                 !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               ((i,5,i,6,7,7),
+"""Mot-clé simple : mcs
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+   ! Mot-clé mcs invalide : 7 est un doublon           !
+   ! Critere de validite: valeur (5, 6, 7) obligatoire !
+   !  et liste croissant                               !
+   !  et : pas de présence de doublon dans la liste    !
+   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+Fin Mot-clé simple : mcs
+""" ),
+               ((i,5,6,7,i,8),OK),
+               )
+       self._test(cata,liste)