2 from Accas import SIMP,FACT,BLOC,UN_PARMI,OPER,ASSD,MACRO,_F
5 class concept(ASSD,Noyau.AsBase):pass
11 CONTEXT.unset_current_cata()
12 CONTEXT.set_current_cata(self)
13 def enregistre(self,cmd):
19 OP1 = OPER(nom='OP1',op=1, sd_prod=concept,
20 WWWW=SIMP(statut='o',typ='TXM', position='global'),
21 XXXX=SIMP(typ='TXM', position='global',defaut='XXXX'),
22 traitement=FACT(statut='o',
23 TATA=SIMP(typ='TXM', position='global',defaut='DDD'),
24 TTTT=SIMP(statut='o',typ='TXM', position='global',defaut='EEE'),
25 UUUU=SIMP(typ='TXM', position='global'),
26 VVVV=SIMP(statut='o',typ='TXM', position='global'),
27 regles=( UN_PARMI('TYPE_RAFFINEMENT_LIBRE','TYPE_RAFFINEMENT_UNIFORME'),),
28 TYPE_RAFFINEMENT_LIBRE = FACT(statut='f',
29 RAFFINEMENT = SIMP(statut='o',typ='TXM', position='global',
30 into=("LIBRE","UNIFORME",) ),
31 DERAFFINEMENT = SIMP(statut='o',typ='TXM', position='global',
33 TOTO=SIMP(statut='o',typ='TXM', position='global'),
34 # un mot cle global facultatif ne sera pas visible tant
35 # qu'il n'aura pas de valeur meme s'il a un defaut
36 TITI=SIMP(typ='TXM', position='global',defaut='BBB'),
37 TUTU=SIMP(statut='o',typ='TXM', position='global',defaut='CCC'),
39 b_maj_champ =BLOC(condition="(RAFFINEMENT!=None) or (DERAFFINEMENT!=None)",
40 NITER =SIMP(statut='o',typ='I',),
41 NOM_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',),
42 FICHIER_MED_MAILLAGE_NP1 =SIMP(statut='o',typ='TXM',),
45 trait=FACT(statut='o',
46 FFFF=SIMP(typ='TXM',),
47 b_champ =BLOC(condition="WWWW=='WWWW'",
48 N =SIMP(statut='o',typ='I',),
53 MACR_BIDON=OPER(nom="MACR_BIDON",op=None,sd_prod=concept,
54 reentrant='n',UIinfo={"groupes":("Outils métier",)},fr="",
55 NOM_CHAM=SIMP(statut='f',typ='TXM',into=('ACCE','DEPL'),position="global"),
56 RESULTAT=FACT(statut='o',b_acce=BLOC(condition="NOM_CHAM=='ACCE'",
57 VAL1=SIMP(statut='o',typ='R'),
59 VAL2=SIMP(statut='o',typ='R'),
64 class TestMCBlocCase(unittest.TestCase):
67 """ bloc conditionnel declenche par mot cle global avec defaut
69 mcf={'TYPE_RAFFINEMENT_LIBRE':{'TOTO':'AAA'}}
70 co=OP1(traitement=mcf,WWWW='WWWW')
71 mcfact=co.etape['traitement']
72 self.assertEqual(mcfact['TYPE_RAFFINEMENT_LIBRE']['DERAFFINEMENT'] , None)
73 dico=mcfact[0].cree_dict_valeurs(mcfact[0].mc_liste)
74 self.assertEqual(dico['DERAFFINEMENT'] , None)
75 self.assertEqual(dico['RAFFINEMENT'] , None)
76 self.assertEqual(dico['WWWW'] , 'WWWW')
77 self.assertRaises(IndexError, mcfact.__getitem__, 'NITER')
79 mcfact=co.etape['trait'][0]
80 dico=mcfact.cree_dict_valeurs(mcfact.mc_liste)
81 self.assertEqual(dico['DERAFFINEMENT'] , None)
82 self.assertEqual(dico['RAFFINEMENT'] , None)
83 self.assertEqual(dico['WWWW'] , 'WWWW')
84 self.assertEqual(dico['TOTO'] , 'AAA')
85 self.assertEqual(dico['TUTU'] , 'CCC')
86 self.assertEqual(dico['FFFF'] , None)
87 self.assertEqual(dico['VVVV'] , None)
88 self.assertEqual(dico['TTTT'] , 'EEE')
89 self.assertEqual(dico['XXXX'] , 'XXXX')
90 self.assertEqual(mcfact['N'] , None)
91 self.assertRaises(KeyError, dico.__getitem__, 'TITI')
94 mcf={'TYPE_RAFFINEMENT_LIBRE':{'RAFFINEMENT':'LIBRE'},'NITER':1}
95 co=OP1(traitement=mcf)
96 mcfact=co.etape['traitement']
97 self.assertEqual(mcfact['TYPE_RAFFINEMENT_LIBRE']['RAFFINEMENT'] , 'LIBRE')
98 self.assertEqual(mcfact['NITER'] , 1)
101 co=MACR_BIDON(NOM_CHAM='ACCE',RESULTAT=_F(VAL2=3.4))
102 mcfact=co.etape['RESULTAT']
103 self.assertEqual(co.etape.isvalid(), 0)
107 'TYPE_RAFFINEMENT_LIBRE':{'RAFFINEMENT':'LIBRE','DERAFFINEMENT':'LIBRE','TOTO':'AA'},
109 'FICHIER_MED_MAILLAGE_NP1':'',
110 'NOM_MED_MAILLAGE_NP1':'',
112 co=OP1(traitement=mcf,WWWW="WWWW",trait={'N':1})
113 val=co.etape.isvalid()
114 if not val:msg=co.etape.report()
116 self.assertEqual(co.etape.isvalid() , 1,msg=msg)
118 co=OP1(traitement=mcf,WWWW="WWWW")
119 val=co.etape.isvalid()
120 if not val:msg=co.etape.report()
122 self.assertEqual(co.etape.isvalid() , 0,msg=msg)
124 co=OP1(traitement=mcf,WWWW="WW",trait={'N':1})
125 val=co.etape.isvalid()
126 if not val:msg=co.etape.report()
128 self.assertEqual(co.etape.isvalid() , 0,msg=msg)
130 co=OP1(traitement=mcf,WWWW="WW",trait={'FFFF':'X'})
131 val=co.etape.isvalid()
132 if not val:msg=co.etape.report()
134 self.assertEqual(co.etape.isvalid() , 1,msg=msg)
136 co=OP1(traitement=mcf,WWWW="WW",)
137 val=co.etape.isvalid()
138 if not val:msg=co.etape.report()
140 self.assertEqual(co.etape.isvalid() , 1,msg=msg)
143 OP1 = OPER(nom='OP1',op=1, sd_prod=concept,
144 MASS = FACT(statut='f',max='**',
145 Y = SIMP(statut='f',typ='I',),
146 Z = FACT(T=SIMP(typ='I')),
148 b_mass = BLOC(condition = "MASS != None",
149 MODE = SIMP(statut='o',typ='I',)
151 bb_mass = BLOC(condition = "MASS and len(MASS) > 1 ",
152 XX = SIMP(statut='o',typ='I',)
154 bbb_mass = BLOC(condition = "MASS and MASS[0]['Y'] == 1 ",
155 YY = SIMP(statut='o',typ='I',)
157 bbbb_mass = BLOC(condition = "MASS and MASS[0]['Z'] and MASS[0]['Z'][0]['T'] == 1 ",
158 ZZ = SIMP(statut='o',typ='I',)
162 msg=co.etape.report()
163 self.assertEqual(co.etape.isvalid() , 1,msg=msg)
164 co=OP1(MASS={},MODE=1)
165 msg=co.etape.report()
166 self.assertEqual(co.etape.isvalid() , 1,msg=msg)
167 co=OP1(MASS=({},{}),MODE=1,XX=1)
168 msg=co.etape.report()
169 self.assertEqual(co.etape.isvalid() , 1,msg=msg)
170 co=OP1(MASS=({'Y':1},{}),MODE=1,XX=1,YY=1)
171 msg=co.etape.report()
172 self.assertEqual(co.etape.isvalid() , 1,msg=msg)
173 co=OP1(MASS=({'Y':1,'Z':{'T':1}},{}),MODE=1,XX=1,YY=1,ZZ=1)
174 msg=co.etape.report()
175 self.assertEqual(co.etape.isvalid() , 1,msg=msg)