/[openfoncier]/trunk/tests/080_consultation.robot
ViewVC logotype

Contents of /trunk/tests/080_consultation.robot

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4210 - (show annotations)
Thu May 19 10:28:50 2016 UTC (8 years, 8 months ago) by nmeucci
File size: 46218 byte(s)
Amélioration des tests du suivi

1 *** Settings ***
2 Documentation Gestion des consultations.
3
4 # On inclut les mots-clefs
5 Resource resources/resources.robot
6 # On ouvre/ferme le navigateur au début/à la fin du Test Suite.
7 Suite Setup For Suite Setup
8 Suite Teardown For Suite Teardown
9
10 *** Variables ***
11 ${json_consultation} {"module":"consultation"}
12
13
14 *** Test Cases ***
15 TNR Routine de mise à jour des consultations tacites
16
17 [Documentation] Permet de vérifier l'état des consultations après le
18 ... traitement tacite.
19 ... Attention ! ce test est en premier car il utilise les données du init_data
20 ... il est nécessaire d'améilorer ce point
21
22 # On exécute le WS de mise à jour des consultations
23 Vérifier le code retour du web service et vérifier que son message est Post maintenance ${json_consultation} 200 2 consultations mise(s) à jour.
24
25 # On vérifie que la valeur de la consultation qui a été passée en tacite
26 # est bien marquée comme 'non lu'
27 # Définition de l'id du widget des retours de consultation du profil INSTRUCTEUR
28 ${widget_id} = Set Variable widget_3
29 # En tant que profil 'INSTRUCTEUR'
30 Depuis la page d'accueil instr instr
31 # On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
32 Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 1
33 # On clique sur le lien "Voir +" du widget
34 Click Element css=#${widget_id} .widget-footer a
35 # On accède au listing des restours de consultation
36 Page Title Should Be Instruction > Consultations > Mes Retours
37 # On clique sur le dossier en question
38 Click On Link PC 013055 12 00002P0
39 # On vérifie que les champs ont bien été mis à jour par le webservice
40 Wait Until Keyword Succeeds 5 sec 0.2 sec Form Static Value Should Be css=#lu Non
41 Form Static Value Should Be css=#avis_consultation Tacite
42 Form Static Value Should Be css=#date_retour 01/02/2013
43
44
45 Constitution du jeu de données
46
47 [Documentation] Constitue le jeu de données.
48
49 # Date du jour au format : JJ/MM/AAAA
50 ${date_jour} = Date du jour FR
51 Set Suite Variable ${date_jour}
52
53 #
54 Depuis la page d'accueil guichet guichet
55
56 #
57 # Supposition : ces dossiers sont affectés à l'instructeur "Louis Laurent"
58 # (instr) division "H" même division que "Martine Nadeau" (instr1)
59 #
60
61 #
62 &{args_petitionnaire_1} = Create Dictionary
63 ... particulier_nom=DUPONT
64 ... particulier_prenom=Jacques
65 #
66 &{args_demande_1} = Create Dictionary
67 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
68 ... demande_type=Dépôt Initial
69 ... date_demande=12/04/2015
70 #
71 ${di_1} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande_1} ${args_petitionnaire_1}
72 Set Suite Variable ${di_1}
73
74 #
75 Depuis la page d'accueil instr instr
76 Ajouter une consultation depuis un dossier ${di_1} 59.01 - Direction de l'Eau et de l'Assainissement
77
78 #
79 &{args_avis_consultation_1} = Create Dictionary
80 ... avis_consultation=Favorable
81
82 Depuis la page d'accueil avec widget de redirection consu consu
83 #
84 Rendre l'avis sur la consultation du dossier ${di_1} ${args_avis_consultation_1}
85 #
86 Se déconnecter avec widget de redirection
87
88 #
89 Depuis la page d'accueil guichet guichet
90 #
91 &{args_petitionnaire_3} = Create Dictionary
92 ... particulier_nom=DUPONT
93 ... particulier_prenom=Jacques
94 #
95 &{args_demande_3} = Create Dictionary
96 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
97 ... demande_type=Dépôt Initial
98 ... date_demande=01/04/2016
99 #
100 ${di_3} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande_3} ${args_petitionnaire_3}
101 Set Suite Variable ${di_3}
102
103
104 Ajout d'une consultation simple
105
106 [Documentation]
107
108 ##
109 ## Constitution du jeu de données
110 ##
111 # Données du demandeur
112 &{args_petitionnaire} = Create Dictionary
113 ... qualite=personne morale
114 ... personne_morale_denomination=DAINEAU Ets
115 ... personne_morale_civilite=Monsieur
116 ... personne_morale_nom=MICHEL
117 ... personne_morale_prenom=Alain
118 # Données de la demande
119 &{args_demande} = Create Dictionary
120 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
121 ... demande_type=Dépôt Initial
122 ... date_demande=03/05/2016
123 # Données techniques du dossiers pour le tableau des surfaces
124 &{donnees_techniques_values} = Create Dictionary
125 ... su_avt_shon1=10
126 ... su_avt_shon2=10
127 ... su_avt_shon3=10
128 ... su_avt_shon4=10
129 ... su_avt_shon5=10
130 ... su_avt_shon6=10
131 ... su_avt_shon7=10
132 ... su_avt_shon8=10
133 ... su_avt_shon9=10
134 ... su_cstr_shon1=10
135 ... su_cstr_shon2=10
136 ... su_cstr_shon3=10
137 ... su_cstr_shon4=10
138 ... su_cstr_shon5=10
139 ... su_cstr_shon6=10
140 ... su_cstr_shon7=10
141 ... su_cstr_shon8=10
142 ... su_cstr_shon9=10
143 ... su_chge_shon1=10
144 ... su_chge_shon2=10
145 ... su_chge_shon3=10
146 ... su_chge_shon4=10
147 ... su_chge_shon5=10
148 ... su_chge_shon6=10
149 ... su_chge_shon7=10
150 ... su_chge_shon8=10
151 ... su_chge_shon9=10
152 ... su_demo_shon1=10
153 ... su_demo_shon2=10
154 ... su_demo_shon3=10
155 ... su_demo_shon4=10
156 ... su_demo_shon5=10
157 ... su_demo_shon6=10
158 ... su_demo_shon7=10
159 ... su_demo_shon8=10
160 ... su_demo_shon9=10
161 ... su_sup_shon1=10
162 ... su_sup_shon2=10
163 ... su_sup_shon3=10
164 ... su_sup_shon4=10
165 ... su_sup_shon5=10
166 ... su_sup_shon6=10
167 ... su_sup_shon7=10
168 ... su_sup_shon8=10
169 ... su_sup_shon9=10
170 # Ajout de la nouvelle demande pour création du DI
171 Depuis la page d'accueil guichet guichet
172 ${di} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire}
173 # Saisie des données techniques sur le DI
174 Depuis la page d'accueil instr instr
175 Modifier les données techniques pour le calcul des surfaces ${di} ${donnees_techniques_values}
176
177 ##
178 ## Cas d'usage n°1
179 ##
180 ## Le principe ici est de tester l'ajout d'une consultation simple par un
181 ## profil qui n'a pas les permissions de sélectionner la date d'envoi, les
182 ## points clés testés sont :
183 ## - l'ajout de consultation simple est disponible
184 ## - le champ date d'envoi n'est pas présent
185 ## - le champ service est obligatoire
186 ## - un mail est envoyé au service
187 ## - le champ date d'envoi est positionné à la date du jour à l'enregistrement
188 ## - l'édition PDF est accessible et contient :
189 ## * le demandeur
190 ## * le total du calcul des surfaces
191 ##
192 # On se connecte en tant que "instr" (Profil 'INSTRUCTEUR')
193 Depuis la page d'accueil instr instr
194 # Définition du service dans ce cas d'usage - notification email configurée sur ce service
195 ${service_1} = Set Variable 59.01 - Direction de l'Eau et de l'Assainissement
196 # On accède à l'onglet "Consultation(s)" du DI
197 Depuis l'onglet consultation du dossier ${di}
198 # On vérifie que nous avons bien le bon nombre de consultations affichées
199 Element Should Contain css=#sousform-consultation .pagination-text 1 - 0 enregistrement(s) sur 0
200 # On clique sur le lien "Ajouter" dans le listing
201 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element action-soustab-consultation-corner-ajouter
202 # On attend que le formulaire soit chargé correctement
203 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#service
204 # En tant que Profil 'INSTRUCTEUR', le champ date d'envoi doit être caché
205 Element Should Not Be Visible css=#sformulaire #date_envoi
206 # On valide le formulaire sans sélectionner de service
207 Click On Submit Button In Subform
208 # On vérifie que la soumission du formulaire est rejetée
209 Error Message Should Contain In Subform SAISIE NON ENREGISTRÉE
210 # Le service est obligatoire
211 Error Message Should Contain In Subform Le champ Service est obligatoire
212 # En tant que Profil 'INSTRUCTEUR', le champ date d'envoi doit être caché
213 Element Should Not Be Visible css=#sformulaire #date_envoi
214 # On sélectionne le service
215 Select From List By Label css=#sformulaire #service ${service_1}
216 # On valide le formulaire
217 Click On Submit Button In Subform
218 # On vérifie que la soumission du formulaire est validée
219 Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées
220 # On vérifie que le courriel de notification a été envoyé
221 Valid Message Should Contain In Subform Envoi d'un mail de notification au service
222 # On retourne au listing
223 Click On Back Button In Subform
224 # On vérifie que nous avons bien le bon nombre de consultations affichées
225 Element Should Contain css=#sousform-consultation .pagination-text 1 - 1 enregistrement(s) sur 1
226 # On accède à la fiche de visualisation de la consultation créée
227 Depuis le contexte de la consultation ${di} ${service_1}
228 # Vérification que la date d'envoi de la consultation est bien la date du jour
229 Element Text Should Be css=#sformulaire #date_envoi ${date_jour}
230 # On clique sur l'action édition
231 Click On SubForm Portlet Action consultation consulter_pdf
232 # On ouvre le PDF
233 Open PDF file
234 # On vérifie le champ de fusion
235 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain DAINEAU Ets représenté(e) par Monsieur MICHEL Alain
236 # On vérifie le résultat total du tableau des surface
237 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Surface totale : 90
238 # On ferme le PDF
239 Close PDF
240
241 ##
242 ## Cas d'usage n°2
243 ##
244 ## Le principe ici est de tester l'ajout d'une consultation simple par un
245 ## profil qui a les permissions de sélectionner la date d'envoi, les
246 ## points clés testés sont :
247 ## - l'ajout de consultation simple est disponible
248 ## - le champ date d'envoi est présent
249 ## - YYY le champ date d'envoi du formulaire est positionné à la date du jour
250 ## - un mail n'est pas envoyé au service
251 ## - le champ date d'envoi n'est pas positionné à la date du jour à l'enregistrement
252 ## - le délai est calculé correctement
253 ##
254 # On se connecte en tant que "admingen" (Profil 'ADMINISTRATEUR GENERAL')
255 Depuis la page d'accueil admingen admingen
256 # Définition du service dans ce cas d'usage
257 # - pas de notification email configurée sur ce service
258 # - délai 1 mois
259 ${service_2} = Set Variable 59.02 - Atelier du Patrimoine
260 # On accède à l'onglet "Consultation(s)" du DI
261 Depuis l'onglet consultation du dossier ${di}
262 # On vérifie que nous avons bien le bon nombre de consultations affichées
263 Element Should Contain css=#sousform-consultation .pagination-text 1 - 1 enregistrement(s) sur 1
264 # On clique sur le lien "Ajouter" dans le listing
265 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element action-soustab-consultation-corner-ajouter
266 # On attend que le formulaire soit chargé correctement
267 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#service
268 # En tant que Profil 'ADMINISTRATEUR GENERAL', le champ date d'envoi doit être affiché
269 Element Should Be Visible css=#sformulaire #date_envoi
270 # On vérifie que la date du jour est pré-remplie dans le champs "date d'envoi"
271 Form Value Should Be css=#sformulaire #date_envoi ${date_jour}
272 # On sélectionne le service
273 Select From List By Label css=#sformulaire #service ${service_2}
274 # On vide le champ de date d'envoi
275 Input Text date_envoi ${EMPTY}
276 # On valide le formulaire sans sélectionner de date d'envoi
277 Click On Submit Button In Subform
278 # On vérifie que la soumission du formulaire est rejetée
279 Error Message Should Contain In Subform SAISIE NON ENREGISTRÉE
280 # Le service est obligatoire
281 Error Message Should Contain In Subform Le champ Date d'envoi est obligatoire
282 # On positionne une date d'envoi
283 Input Text date_envoi 01/04/2016
284 # On valide le formulaire
285 Click On Submit Button In Subform
286 # On vérifie que la soumission du formulaire est validée
287 Valid Message Should Contain In Subform Vos modifications ont bien été enregistrées
288 # On vérifie qu'il n'y a pas eu de notification email
289 Page Should Not Contain Envoi d'un mail de notification au service
290 # On vérifie que le calcul du délai est correct
291 Valid Message Should Contain In Subform Délai Retour 1 Mois -> Retour 01/05/2016
292 # On retourne au listing
293 Click On Back Button In Subform
294 # On vérifie que nous avons bien le bon nombre de consultations affichées
295 Element Should Contain css=#sousform-consultation .pagination-text 1 - 2 enregistrement(s) sur 2
296 # On accède à la fiche de visualisation de la consultation créée
297 Depuis le contexte de la consultation ${di} ${service_2}
298 # Vérification que la date d'envoi de la consultation est bien la date saisie
299 Element Text Should Be css=#sformulaire #date_envoi 01/04/2016
300 # Vérification que la date limite de la consultation est bien la date saisie + 1 mois
301 Element Text Should Be css=#sformulaire #date_limite 01/05/2016
302
303
304 Ajout d'une consultation multiple
305
306 [Documentation]
307
308 ##
309 ## Constitution du jeu de données
310 ##
311 # Données du demandeur
312 &{args_petitionnaire} = Create Dictionary
313 ... particulier_nom=Bourgeau
314 ... particulier_prenom=Aurore
315 # Données de la demande
316 &{args_demande} = Create Dictionary
317 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
318 ... demande_type=Dépôt Initial
319 ... date_demande=08/04/2016
320 # Ajout de la nouvelle demande pour création du DI
321 Depuis la page d'accueil guichet guichet
322 ${di} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire}
323
324 ##
325 ## Cas d'usage n°1
326 ##
327 ## Le principe ici est de tester l'ajout d'une consultation multiple par un
328 ## profil qui n'a pas les permissions de sélectionner la date d'envoi, les
329 ## points clés testés sont :
330 ## - l'ajout de consultation multiple est disponible
331 ## - le champ date d'envoi n'est pas présent
332 ## - il est obligatoire de sélectionner au moins un service
333 ## - l'interface de sélection/désélection de services fonctionne
334 ## - le champ date d'envoi est positionné à la date du jour à l'enregistrement
335 ## - l'option version papier génère un PDF multiple
336 ## - l'édition PDF est accessible et contient :
337 ##  * une page par consultation
338 ## * le demandeur sur chaque page
339 ##
340 # On se connecte en tant que "instr" (Profil 'INSTRUCTEUR')
341 Depuis la page d'accueil instr instr
342 # On accède à l'onglet "Consultation(s)" du DI
343 Depuis l'onglet consultation du dossier ${di}
344 # On vérifie que nous avons bien le bon nombre de consultations affichées
345 Element Should Contain css=#sousform-consultation .pagination-text 1 - 0 enregistrement(s) sur 0
346 # On clique sur le lien "Ajouter multiples" dans le tableau
347 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element action-soustab-consultation-corner-ajouter_multiple
348 # On attend que le formulaire soit chargé correctement
349 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible button_val
350 # En tant que Profil 'INSTRUCTEUR', le champ date d'envoi doit être caché
351 Element Should Not Be Visible css=#sformulaire #date_envoi
352 # On clique sur le bouton "Ajouter" du formulaire sans sélectionner de service
353 Click Element button_val
354 # On vérifie qu'une alerte javascript nous indique qu'il y a une erreur de saisie
355 ${alert} = Get Alert Message
356 Should Be Equal As Strings ${alert} Veuillez choisir au moins un service et une date d envoi
357 # En tant que Profil 'INSTRUCTEUR', le champ date d'envoi doit être caché
358 Element Should Not Be Visible date_envoi
359 # On sélectionne quatre services
360 Click Element t10_572_0_
361 Click Element t10_575_0_
362 Click Element t2_13_0_
363 Click Element t10_542_0_
364 # On les ajoute à la sélection
365 Click Element add-ser-them
366 # On sélectionne un des services sélectionnés
367 Click Element css=div[name="t10_542_0_"]
368 # On l'enlève de la sélection
369 Click Element del-ser-them
370 # On coche la case pour la consultation papier pour deux des services
371 Select Checkbox css=div.cell2 > div > input.t10_575_0_
372 Select Checkbox css=div.cell2 > div > input.t10_572_0_
373 # On clique sur le bouton "Ajouter" du formulaire
374 Click Element button_val
375 # On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
376 Page Should Not Contain Errors
377 # Le PDF s'ouvre tout seul, on sélectionne la bonne fenêtre
378 Open PDF pdfetat
379 # On vérifie que le PDF a bien deux pages
380 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} PDF Pages Number Should Be 2
381 # Et que le nom du pétitionnaire est bien remplacé sur chaque page
382 PDF Page Number Should Contain 1 Bourgeau Aurore
383 PDF Page Number Should Contain 2 Bourgeau Aurore
384 # On ferme le PDF
385 Close PDF
386 # On vérifie que le message de validation est présent avec le bon nombre de consultations
387 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform 3 service(s) sélectionné(s) dont 2 consultation(s) papier.
388 # On vérifie que nous avons bien le bon nombre de consultations affichées
389 Element Should Contain css=#sousform-consultation .pagination-text 1 - 3 enregistrement(s) sur 3
390 # On accède à la fiche de visualisation de la consultation créée
391 Depuis le contexte de la consultation ${di} 59.88 - DAE - COMMERCE ARTISANAT
392 # Vérification que la date d'envoi de la consultation est bien la date du jour
393 Element Text Should Be date_envoi ${date_jour}
394
395 ##
396 ## Cas d'usage n°2
397 ##
398 ## Le principe ici est de tester l'ajout d'une consultation multiple par un
399 ## profil qui a les permissions de sélectionner la date d'envoi, les
400 ## points clés testés sont :
401 ## - l'ajout de consultation multiple est disponible
402 ## - le champ date d'envoi est présent
403 ## - le champ date d'envoi du formulaire est positionné à la date du jour
404 ## - le champ date d'envoi n'est pas positionné à la date du jour à l'enregistrement
405 ##
406 # On se connecte en tant que "admingen" (Profil 'ADMINISTRATEUR GENERAL')
407 Depuis la page d'accueil admingen admingen
408 # On accède à l'onglet "Consultation(s)" du DI
409 Depuis l'onglet consultation du dossier ${di}
410 # On vérifie que nous avons bien le bon nombre de consultations affichées
411 Element Should Contain css=#sousform-consultation .pagination-text 1 - 3 enregistrement(s) sur 3
412 # On clique sur le lien "Ajouter multiples" dans le tableau
413 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Click Element action-soustab-consultation-corner-ajouter_multiple
414 # On attend que le formulaire soit chargé correctement
415 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible button_val
416 # En tant que Profil 'ADMINISTRATEUR GENERAL', le champ date d'envoi doit être affiché
417 Element Should Be Visible css=#sformulaire #date_envoi
418 # On vérifie que la date du jour est pré-remplie dans le champs "date d'envoi"
419 Form Value Should Be css=#sformulaire #date_envoi ${date_jour}
420 # Service 59.12 - Direction de la Propreté Urbaine
421 Click Element t10_12_0_
422 # Service 59.30 - Orange France
423 Click Element t10_15_0_
424 # On les ajoute à la sélection
425 Click Element add-ser-them
426 # Input de la date en JavaScript pour éviter l'appel au onChange sur ce
427 # champ, qui appelle une fonction JS fonctionnant une fois sur deux dans
428 # les tests
429 Input Value With JS date_envoi 01/04/2016
430 # On clique sur le bouton "Ajouter" du formulaire
431 Click Element button_val
432 # On vérifie qu'il n'y a pas d'erreur sur l'élément affiché
433 Page Should Not Contain Errors
434 # On vérifie le message de validation
435 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Valid Message Should Contain In Subform 2 service(s) sélectionné(s) dont 0 consultation(s) papier.
436 # On vérifie que nous avons bien le bon nombre de consultations affichées
437 Element Should Contain css=#sousform-consultation .pagination-text 1 - 5 enregistrement(s) sur 5
438 # On accède à la fiche de visualisation de la consultation créée
439 Depuis le contexte de la consultation ${di} 59.12 - Direction de la Propreté Urbaine
440 # Vérification que la date d'envoi de la consultation est bien la date saisie
441 Element Text Should Be date_envoi 01/04/2016
442
443
444 Gestion des retours de consultation depuis la rubrique 'Instruction'
445
446 [Documentation]
447
448 ##
449 ## Constitution du jeu de données
450 ##
451 ## On cré trois deux nouvelles collectivités pour être sûr du nombre
452 ## de retours de consultations à vérifier dans les widgets et tableaux
453 ##
454 #
455 Depuis la page d'accueil admin admin
456 # collectivité 01 'WORKINGTON' de niveau 1
457 Ajouter la collectivité depuis le menu WORKINGTON mono
458 #
459 Ajouter l'utilisateur depuis le menu Carter SANCHEZ [email protected] csanchez csanchez INSTRUCTEUR WORKINGTON
460 Ajouter l'instructeur depuis le menu Carter SANCHEZ subdivision H Carter SANCHEZ
461 Ajouter l'affectation depuis le menu Carter SANCHEZ null WORKINGTON
462 #
463 Ajouter l'utilisateur depuis le menu Selma SAUNDERS [email protected] ssaunders ssaunders INSTRUCTEUR WORKINGTON
464 Ajouter l'instructeur depuis le menu Selma SAUNDERS subdivision H Selma SAUNDERS
465 Ajouter l'affectation depuis le menu Selma SAUNDERS Permis de construire comprenant ou non des démolitions WORKINGTON
466 #
467 Ajouter l'utilisateur depuis le menu Harriet SANTIAGO [email protected] hsantiago hsantiago INSTRUCTEUR WORKINGTON
468 Ajouter l'instructeur depuis le menu Harriet SANTIAGO subdivision J Harriet SANTIAGO
469 Ajouter l'affectation depuis le menu Harriet SANTIAGO Permis de démolir WORKINGTON
470 #
471 Ajouter l'utilisateur depuis le menu Alden SYKES [email protected] asykes asykes SERVICE CONSULTÉ WORKINGTON
472 &{service} = Create Dictionary
473 ... abrege=95A
474 ... libelle=Direction de la circulation de Workington
475 ... edition=Consultation - Demande d'avis
476 ... om_collectivite=WORKINGTON
477 Ajouter le service depuis le listing ${service}
478 &{lien_service_om_utilisateur} = Create Dictionary
479 ... om_utilisateur=Alden SYKES
480 ... service=Direction de la circulation de Workington
481 Ajouter lien service/utilisateur ${lien_service_om_utilisateur}
482 # collectivité 02 'LIDINGO' de niveau 1
483 Ajouter la collectivité depuis le menu LIDINGO mono
484 #
485 Ajouter l'utilisateur depuis le menu Mary JOYCE [email protected] mjoyce mjoyce INSTRUCTEUR LIDINGO
486 Ajouter l'instructeur depuis le menu Mary JOYCE subdivision H Mary JOYCE
487 Ajouter l'affectation depuis le menu Mary JOYCE null LIDINGO
488 #
489 Ajouter l'utilisateur depuis le menu Alexandra TERRELL [email protected] aterrell aterrell SERVICE CONSULTÉ LIDINGO
490 &{service} = Create Dictionary
491 ... abrege=96A
492 ... libelle=Direction de la circulation de Lidingo
493 ... edition=Consultation - Demande d'avis
494 ... om_collectivite=LIDINGO
495 Ajouter le service depuis le listing ${service}
496 &{lien_service_om_utilisateur} = Create Dictionary
497 ... om_utilisateur=Alexandra TERRELL
498 ... service=Direction de la circulation de Lidingo
499 Ajouter lien service/utilisateur ${lien_service_om_utilisateur}
500 #
501 &{args_avis_consultation} = Create Dictionary
502 ... avis_consultation=Favorable
503 # DI n°1 :
504 # - Collectivité 'WORKINGTON' (niveau mono)
505 # - Instructeur 'Harriet SANTIAGO' (hsantiago)
506 # - Division 'J'
507 #
508 &{args_petitionnaire_01} = Create Dictionary
509 ... particulier_nom=DUPONT
510 ... particulier_prenom=Jacques
511 ... om_collectivite=WORKINGTON
512 #
513 &{args_demande_01} = Create Dictionary
514 ... dossier_autorisation_type_detaille=Permis de démolir
515 ... demande_type=Dépôt Initial
516 ... date_demande=12/04/2015
517 ... om_collectivite=WORKINGTON
518 #
519 ${di_01} = Ajouter la nouvelle demande depuis le menu ${args_demande_01} ${args_petitionnaire_01}
520 # DI n°2 :
521 # - Collectivité 'WORKINGTON' (niveau mono)
522 # - Instructeur 'Carter SANCHEZ' (csanchez)
523 # - Division 'H'
524 #
525 &{args_petitionnaire_02} = Create Dictionary
526 ... particulier_nom=VACHIER
527 ... particulier_prenom=Arthur
528 ... om_collectivite=WORKINGTON
529 #
530 &{args_demande_02} = Create Dictionary
531 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
532 ... demande_type=Dépôt Initial
533 ... date_demande=12/04/2015
534 ... om_collectivite=WORKINGTON
535 #
536 ${di_02} = Ajouter la nouvelle demande depuis le menu ${args_demande_02} ${args_petitionnaire_02}
537 # DI n°3 :
538 # - Collectivité 'WORKINGTON' (niveau mono)
539 # - Instructeur 'Selma SAUNDERS' (ssaunders)
540 # - Division 'H'
541 #
542 &{args_petitionnaire_03} = Create Dictionary
543 ... particulier_nom=BRAY
544 ... particulier_prenom=Guy
545 ... om_collectivite=WORKINGTON
546 #
547 &{args_demande_03} = Create Dictionary
548 ... dossier_autorisation_type_detaille=Permis de construire comprenant ou non des démolitions
549 ... demande_type=Dépôt Initial
550 ... date_demande=12/04/2015
551 ... om_collectivite=WORKINGTON
552 #
553 ${di_03} = Ajouter la nouvelle demande depuis le menu ${args_demande_03} ${args_petitionnaire_03}
554 # DI n°4 :
555 # - Collectivité 'LIDINGO' (niveau mono)
556 # - Instructeur 'Mary JOYCE' (mjoyce)
557 # - Division 'H'
558 #
559 &{args_petitionnaire_04} = Create Dictionary
560 ... particulier_nom=BOULAGE
561 ... particulier_prenom=Damien
562 ... om_collectivite=LIDINGO
563 #
564 &{args_demande_04} = Create Dictionary
565 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
566 ... demande_type=Dépôt Initial
567 ... date_demande=12/04/2015
568 ... om_collectivite=LIDINGO
569 #
570 ${di_04} = Ajouter la nouvelle demande depuis le menu ${args_demande_04} ${args_petitionnaire_04}
571 #
572 Ajouter une consultation depuis un dossier ${di_01} 95A - Direction de la circulation de Workington
573 Ajouter une consultation depuis un dossier ${di_02} 95A - Direction de la circulation de Workington
574 Ajouter une consultation depuis un dossier ${di_03} 95A - Direction de la circulation de Workington
575 Ajouter une consultation depuis un dossier ${di_04} 96A - Direction de la circulation de Lidingo
576 #
577 Go To Dashboard
578 Se déconnecter
579 Input Username asykes
580 Input Password asykes
581 Click Button login.action.connect
582 #
583 Sleep 2
584 Rendre l'avis sur la consultation du dossier ${di_01} ${args_avis_consultation}
585 Sleep 2
586 Rendre l'avis sur la consultation du dossier ${di_02} ${args_avis_consultation}
587 Sleep 2
588 Rendre l'avis sur la consultation du dossier ${di_03} ${args_avis_consultation}
589 Sleep 2
590 #
591 Click Link css=#actions a.actions-logout
592 #
593 Input Username aterrell
594 Input Password aterrell
595 Click Button login.action.connect
596 #
597 Sleep 2
598 Rendre l'avis sur la consultation du dossier ${di_04} ${args_avis_consultation}
599 Sleep 2
600 #
601 Click Link css=#actions a.actions-logout
602
603
604 ##
605 ## Cas d'usage n°1
606 ##
607 ##
608 ##
609 #
610 ${widget_id} = Set Variable widget_3
611
612 # On se connecte en tant que utilisateur de niveau 2
613 Depuis la page d'accueil admin admin
614 # On vérifie qu'on a la collonne collectivité dans le listing tous les retours
615 Go To Submenu In Menu instruction consultation_tous_retours
616 Page Title Should Be Instruction > Consultations > Tous Les Retours
617 First Tab Title Should Be Consultation
618 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction situés dans toutes les collectivités.
619 Element Should Contain css=#tab-consultation_tous_retours table thead instructeur
620 Element Should Contain css=#tab-consultation_tous_retours table thead division
621 Element Should Contain css=#tab-consultation_tous_retours table thead collectivité
622 # On va sur le listing 'Tous les retours'
623 # Il doit contenir des retours des deux collectivités
624 Element Should Contain css=#tab-consultation_tous_retours table WORKINGTON
625 Element Should Contain css=#tab-consultation_tous_retours table LIDINGO
626
627 # On se connecte en tant que "csanchez" (Profil 'INSTRUCTEUR')
628 Depuis la page d'accueil csanchez csanchez
629 # On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
630 Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 1
631 # On clique sur le lien "Voir +" du widget
632 Click Element css=#${widget_id} .widget-footer a
633 # Le lien Voir + nous amène sur le listing 'Mes retours'
634 # Il ne doit contenir qu'un seul retour
635 Submenu In Menu Should Be Selected instruction consultation_mes_retours
636 Page Title Should Be Instruction > Consultations > Mes Retours
637 First Tab Title Should Be Consultation
638 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction dont je suis l'instructeur.
639 Element Should Contain css=#tab-consultation_mes_retours .pagination-text 1 - 1 enregistrement(s) sur 1
640 # On va sur le listing 'Retours de ma division'
641 # Il doit contenir deux retours
642 Go To Submenu In Menu instruction consultation_retours_ma_division
643 Page Title Should Be Instruction > Consultations > Retours De Ma Division
644 First Tab Title Should Be Consultation
645 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction situés dans ma division.
646 Element Should Contain css=#tab-consultation_retours_ma_division .pagination-text 1 - 2 enregistrement(s) sur 2
647 Element Should Contain css=#tab-consultation_retours_ma_division table Selma SAUNDERS
648 # On va sur le listing 'Tous les retours'
649 # Il doit contenir trois retours
650 Go To Submenu In Menu instruction consultation_tous_retours
651 Page Title Should Be Instruction > Consultations > Tous Les Retours
652 First Tab Title Should Be Consultation
653 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction situés dans ma collectivité.
654 Element Should Contain css=#tab-consultation_tous_retours .pagination-text 1 - 3 enregistrement(s) sur 3
655
656 # Filtre sur l'instructeur
657 Depuis la page d'accueil admin admin
658 Go To Tab om_widget
659 Click On Link consultation_retours
660 Click On Form Portlet Action om_widget modifier
661 Input Text texte filtre=division
662 Click On Submit Button
663
664 # On se connecte en tant que "csanchez" (Profil 'INSTRUCTEUR')
665 Depuis la page d'accueil csanchez csanchez
666 # On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
667 Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 2
668 # On clique sur le lien "Voir +" du widget
669 Click Element css=#${widget_id} .widget-footer a
670 # Le lien Voir + nous amène sur le listing 'Retours de ma division'
671 # Il doit contenir deux retours
672 Submenu In Menu Should Be Selected instruction consultation_retours_ma_division
673 Page Title Should Be Instruction > Consultations > Retours De Ma Division
674 First Tab Title Should Be Consultation
675 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction situés dans ma division.
676 Element Should Contain css=#tab-consultation_retours_ma_division .pagination-text 1 - 2 enregistrement(s) sur 2
677
678 # Filtre sur l'instructeur
679 Depuis la page d'accueil admin admin
680 Go To Tab om_widget
681 Click On Link consultation_retours
682 Click On Form Portlet Action om_widget modifier
683 Input Text texte filtre=aucun
684 Click On Submit Button
685
686 # On se connecte en tant que "csanchez" (Profil 'INSTRUCTEUR')
687 Depuis la page d'accueil csanchez csanchez
688 # On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
689 Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 3
690 # On clique sur le lien "Voir +" du widget
691 Click Element css=#${widget_id} .widget-footer a
692 # Le lien Voir + nous amène sur le listing 'Tous les retours'
693 # Il doit contenir trois retours
694 Submenu In Menu Should Be Selected instruction consultation_tous_retours
695 Page Title Should Be Instruction > Consultations > Tous Les Retours
696 First Tab Title Should Be Consultation
697 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction situés dans ma collectivité.
698 Element Should Contain css=#tab-consultation_tous_retours .pagination-text 1 - 3 enregistrement(s) sur 3
699
700 # Filtre sur l'instructeur
701 Depuis la page d'accueil admin admin
702 Go To Tab om_widget
703 Click On Link consultation_retours
704 Click On Form Portlet Action om_widget modifier
705 Input Text texte filtre=instructeur
706 Click On Submit Button
707
708 # On se connecte en tant que Profil 'INSTRUCTEUR'
709 Depuis la page d'accueil mjoyce mjoyce
710 # On vérifie que les consultations apparaissent bien sur le tableau de bord de l'instructeur
711 Element Should Contain css=#${widget_id} .widget-content-wrapper span.box-icon 1
712 # On clique sur le lien "Voir +" du widget
713 Click Element css=#${widget_id} .widget-footer a
714 # On clique sur le lien "59.01 Direction de l'Eau et de l'Assainissement" dans le tableau
715 Click Link ${di_04}
716 #
717 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Be Visible css=#sousform-consultation #service
718 #
719 Page Title Should Contain ${di_04}
720 Page Title Should Contain BOULAGE DAMIEN
721
722 #
723 Portlet Action Should Be In SubForm consultation marquer_comme_lu
724 #
725 Click On SubForm Portlet Action consultation marquer_comme_lu
726 #
727 Valid Message Should Contain In Subform Mise à jour effectuée avec succès
728
729 #
730 Depuis la page d'accueil mjoyce mjoyce
731 #
732 # On vérifie que lorsqu'il n'y a aucune consultation, un message dans le widget 'Retours de consultation'
733 # l'indique et que le lien Voir + n'est pas présent
734 #
735 Element Should Contain css=#${widget_id} .widget-content-wrapper Aucun retour de consultation non lu.
736 Element Should Not Contain css=#${widget_id} Voir +
737
738 #
739 # On clique sur les trois listings liés pour vérifier qu'il n'y a aucun résultat
740 #
741 Go To Submenu In Menu instruction consultation_mes_retours
742 Page Title Should Be Instruction > Consultations > Mes Retours
743 First Tab Title Should Be Consultation
744 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction dont je suis l'instructeur.
745 Element Should Contain css=#tab-consultation_mes_retours .pagination-text 1 - 0 enregistrement(s) sur 0
746 Element Should Not Contain css=#tab-consultation_mes_retours table thead instructeur
747 Element Should Not Contain css=#tab-consultation_mes_retours table thead division
748 Element Should Not Contain css=#tab-consultation_mes_retours table thead collectivité
749 #
750 Go To Submenu In Menu instruction consultation_retours_ma_division
751 Page Title Should Be Instruction > Consultations > Retours De Ma Division
752 First Tab Title Should Be Consultation
753 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction situés dans ma division.
754 Element Should Contain css=#tab-consultation_retours_ma_division .pagination-text 1 - 0 enregistrement(s) sur 0
755 Element Should Contain css=#tab-consultation_retours_ma_division table thead instructeur
756 Element Should Not Contain css=#tab-consultation_retours_ma_division table thead division
757 Element Should Not Contain css=#tab-consultation_retours_ma_division table thead collectivité
758 #
759 Go To Submenu In Menu instruction consultation_tous_retours
760 Page Title Should Be Instruction > Consultations > Tous Les Retours
761 First Tab Title Should Be Consultation
762 Page Should Contain Les consultations marquées comme 'non lu' qui concernent des dossiers d'instruction situés dans ma collectivité.
763 Element Should Contain css=#tab-consultation_tous_retours .pagination-text 1 - 0 enregistrement(s) sur 0
764 Element Should Contain css=#tab-consultation_tous_retours table thead instructeur
765 Element Should Contain css=#tab-consultation_tous_retours table thead division
766 Element Should Not Contain css=#tab-consultation_tous_retours table thead collectivité
767
768
769 Paramétrage d'un service et de l'édition PDF de la consultation
770 [Documentation] L'objet de ce TestCase est de vérifier que l'édition
771 ... paramétrée sur un service est correctement répercutée lors de la
772 ... consultation d'un service après finalisation et avant définalisation
773 ... et après définalisation.
774
775 ##
776 ## Étape 1
777 ##
778 # On ajoute deux états dont l'id commence par 'consultation_' : un qui
779 # contient test_10_1 et l'autre test_10_2.
780 # On ajoute un service en sélectionnant l'édition test_10_1.
781 ##
782 Depuis la page d'accueil admin admin
783 Ajouter le état depuis le menu consultation_testconsultation10_1 testconsultation10_1 test_10_1 test_10_1 Récapitulatif consultation true agglo
784 Ajouter le état depuis le menu consultation_testconsultation10_2 testconsultation10_2 test_10_2 test_10_2 Récapitulatif consultation true agglo
785 &{service} = Create Dictionary
786 ... abrege=ts10
787 ... libelle=test_service_10
788 ... edition=testconsultation10_1
789 ... om_collectivite=agglo
790 Ajouter le service depuis le listing ${service}
791
792 ##
793 ## Étape 2
794 ##
795 # On ajoute une consultation du service ajouté précédemment sur un dossier
796 # et on vérifie que l'édition contient bien la chaine test_10_1 et ne
797 # contient pas la chaine test_10_2.
798 ##
799 Depuis la page d'accueil instr instr
800 Ajouter une consultation depuis un dossier ${di_1} ts10 - test_service_10
801 Depuis le contexte de la consultation ${di_1} ts10 - test_service_10
802 Click On SubForm Portlet Action consultation consulter_pdf
803 Open PDF file
804 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain test_10_1
805 Page Should Not Contain test_10_2
806 Close PDF
807
808 ##
809 ## Étape 3
810 ##
811 # On modifie le paramétrage du service pour lui sélectionner l'édition
812 # test_10_2.
813 ##
814 Depuis la page d'accueil admin admin
815 &{service} = Create Dictionary
816 ... edition=testconsultation10_2
817 Modifier le service ts10 test_service_10 ${service}
818
819 ##
820 ## Étape 4.1
821 ##
822 # On retourne sur la consultation précédente, on vérifie que l'édition
823 # contient toujours bien la chaine test_10_1 et ne contient pas la chaine
824 # test_10_2.
825 ##
826 Depuis la page d'accueil instr instr
827 Depuis le contexte de la consultation ${di_1} ts10 - test_service_10
828 Click On SubForm Portlet Action consultation consulter_pdf
829 Open PDF file
830 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain test_10_1
831 Page Should Not Contain test_10_2
832 Close PDF
833 ##
834 ## Étape 4.2
835 ##
836 # Ensuite on définalise l'édition et on vérifie que l'édition contient bien
837 # la chaine test_10_2 et ne contient pas la chaine test_10_1.
838 ##
839 Click On SubForm Portlet Action consultation unfinalise
840 Valid Message Should Be In Subform La definalisation du document s'est effectuée avec succès.
841 Click On SubForm Portlet Action consultation consulter_pdf
842 Open PDF sousform
843 Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain test_10_2
844 Page Should Not Contain test_10_1
845 Close PDF
846
847
848 TNR Bug Recherche sur le critère "Instructeur" de la recherche avancée de "Instruction > Consultations > Tous les retours" ne fonctionne pas
849
850 [Documentation] La recherche portait sur l'identifiant de l'instructeur
851 ... au lieu de porter sur son nom
852
853 #
854 Depuis la page d'accueil instr1 instr
855 #
856 Go To Tab dossier_autorisation
857 Go To Submenu In Menu instruction consultation_tous_retours
858 #
859 Click Element css=#toggle-advanced-display
860 #
861 Sleep 1
862 # On remplit
863 Input Text css=div#adv-search-adv-fields input#instructeur Louis Laurent
864 # On valide le formulaire de recherche
865 Click On Search Button
866 #
867 Page Should Not Contain Aucun enregistrement
868
869
870 TNR Bug Droits insuffisants sur l'onglet pièces sur la demande d'avis
871
872 [Documentation] L'accés à l'onglet pièce n'était pas possible
873
874 # On se connecte en tant que "consu"
875 Depuis la page d'accueil avec widget de redirection consu consu
876 #
877 Sleep 2
878 #
879 Depuis la demande d'avis passée du dossier ${di_1}
880 On clique sur l'onglet document_numerise Pièce(s)
881 Page Should Not Contain Droits insuffisants. Vous n'avez pas suffisamment de droits pour acceder à cette page.
882 # Déconnexion spécifique avec l'utilisateur consu
883 Se déconnecter avec widget de redirection
884
885
886 TNR Bug demande de consultation par le profil guichetsuivi
887
888 [Documentation] Vérification du dépôt de consultation par le profil
889 ... guichetsuivi
890
891 Depuis la page d'accueil guichetsuivi guichetsuivi
892 &{args_petitionnaire_1} = Create Dictionary
893 ... particulier_nom=DUPONT
894 ... particulier_prenom=Maurice
895 #
896 &{args_demande_1} = Create Dictionary
897 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
898 ... demande_type=Dépôt Initial
899 ... date_demande=12/09/2015
900 #
901 ${di_1} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande_1} ${args_petitionnaire_1}
902 Ajouter une consultation depuis un dossier ${di_1} DAEWE - DAE - BUREAU ENTREPOT INDUSTRIE AGRICOLE
903
904
905 TNR Bug suppression de la pièce jointe à la modification d'une consultation
906
907 [Documentation] Vérifie que la pièce jointe d'une consultation ne disparaît
908 ... pas quand on modifie la consultation en tant qu'instructeur polyvalent.
909
910 Depuis la page d'accueil guichet guichet
911 &{args_petitionnaire} = Create Dictionary
912 ... particulier_nom=Roussel
913 ... particulier_prenom=Agnès
914 #
915 &{args_demande} = Create Dictionary
916 ... dossier_autorisation_type_detaille=Permis de construire pour une maison individuelle et / ou ses annexes
917 ... demande_type=Dépôt Initial
918 ... date_demande=03/02/2016
919 #
920 ${di} = Ajouter la nouvelle demande depuis le tableau de bord ${args_demande} ${args_petitionnaire}
921
922 Depuis la page d'accueil instrpoly instrpoly
923 Ajouter une consultation depuis un dossier ${di} 59.01 - Direction de l'Eau et de l'Assainissement
924 # Définalise la consultation pour pouvoir la modifier
925 Depuis le contexte de la consultation ${di} 59.01 - Direction de l'Eau et de l'Assainissement
926 Click On SubForm Portlet Action consultation unfinalise
927
928 # Ajoute une pièce à la consultation
929 &{piece_values} = Create Dictionary
930 ... fichier_upload=testImportManuel.pdf
931 ... date_demande=03/02/2016
932 ... avis_consultation=Tacite
933 ${nom_piece} = Ajouter une pièce à la consultation ${piece_values}
934
935 # Vérifie que l'instructeur polyvalent peut modifier la pièce
936 &{piece_values_2} = Create Dictionary
937 ... fichier_upload=testImportManuel2.pdf
938 ${nom_piece_2} = Ajouter une pièce à la consultation ${piece_values_2}
939
940 # Nouvelles valeurs de la consultation
941 &{saisie_values} = Create Dictionary
942 ... avis_consultation=Favorable
943
944 Modifier la consultation ${saisie_values}
945 Click On Back Button In Subform
946 # Vérifie que le fichier est toujours ajouté à la consultation
947 Page Should Contain ${nom_piece_2}
948
949
950 Ajout consultation et rendu d'avis par le profil instructeur service
951
952 [Documentation] Vérifie l'affichage de l'avis rendu, de la motivation et du
953 ... fichier
954 ... Vérifier que ce testcase n'est pas un doublon du "090.Réponse à une consultation par le service consulté" (CU n°4)
955 #
956 Depuis la page d'accueil instrserv instrserv
957 Ajouter une consultation depuis un dossier ${di_3} 59.01 - Direction de l'Eau et de l'Assainissement
958
959 &{args_avis_consultation} = Create Dictionary
960 ... avis_consultation=Favorable
961 ... motivation=Pas de réserves
962 ... fichier_upload=testImportManuel.pdf
963
964 Rendre l'avis sur la consultation du dossier ${di_3} ${args_avis_consultation}
965 # On clique sur l'action édition
966 Depuis la demande d'avis passée du dossier ${di_3}
967
968 Element Should Contain avis_consultation Favorable
969 Element Should Contain motivation Pas de réserves
970 Element Should Contain fichier consultation_avis
971

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26