1 # -*- coding: utf-8 -*-
3 from django
.core
.urlresolvers
import reverse
4 from project
.rh
.test
.common
import RhTest
7 class EmployeAddTest(RhTest
):
9 Test l'ajout d'un employé
11 url
= reverse('admin:rh_employe_add')
13 def test_anonyme(self
):
15 Un anonyme ne peut pas créer d'employé
18 self
._test_acces_ko(self
.url
)
20 def test_correspondant_rh(self
):
22 Un correspodant RH peut ajouter un employé
24 self
._test_correspondant_rh()
25 self
._test_acces_ok(self
.url
)
27 def test_administrateur_regional(self
):
29 Un administrateur peut ajouter un employé
31 self
._test_administrateur_regional()
32 self
._test_acces_ok(self
.url
)
34 def test_directeur_bureau(self
):
36 Un directeur de bureau peut ajouter un employé
38 self
._test_directeur_bureau()
39 self
._test_acces_ok(self
.url
)
43 Un DRH peut ajouter un employé
46 self
._test_acces_ok(self
.url
)
50 Un DRH (2ieme niveau) peut ajouter un employé
53 self
._test_acces_ok(self
.url
)
55 def test_grp_accior(self
):
57 Un membre de l'ACCIOR ne peut pas ajouter un employé
59 self
._test_grp_accior()
60 self
._test_acces_ko(self
.url
)
62 def test_grp_abf(self
):
64 Un membre de l'ABF ne peut pas ajouter un employé
67 self
._test_acces_ko(self
.url
)
69 def test_grp_finance(self
):
71 Un membre de Finance ne peut pas ajouter un employé
73 self
._test_grp_finance()
74 self
._test_acces_ko(self
.url
)
76 def test_grp_haute_direction(self
):
78 Un membre de la haute direction ne peut pas ajouter un employé
80 self
._test_grp_haute_direction()
81 self
._test_acces_ko(self
.url
)
83 def test_grp_service_utilisateurs(self
):
85 Un membre du groupe service utilisateur ne peut pas ajouter un employé
87 self
._test_grp_service_utilisateurs()
88 self
._test_acces_ko(self
.url
)
91 class EmployeDeleteTest(RhTest
):
93 Test la suppression d'un employé
97 super(EmployeDeleteTest
, self
).setUp()
98 self
.url
= reverse('admin:rh_employe_delete',
99 args
=[self
.employe_cnf_ngaoundere
.id])
101 def test_anonyme(self
):
103 Un anonyme ne peut pas supprimer un employé
106 self
._test_acces_ko(self
.url
)
108 def test_correspondant_rh(self
):
110 Un correspodant RH ne peut pas supprimer un employé
112 self
._test_correspondant_rh()
113 self
._test_acces_ko(self
.url
)
115 def test_administrateur_regional(self
):
117 Un administrateur ne peut pas supprimer un employé
119 self
._test_administrateur_regional()
120 self
._test_acces_ko(self
.url
)
122 def test_directeur_bureau(self
):
124 Un directeur de bureau ne peut pas supprimer un employé
126 self
._test_directeur_bureau()
127 self
._test_acces_ko(self
.url
)
131 Un DRH peut supprimer un employé
134 self
._test_acces_ok(self
.url
)
138 Un DRH (2ieme niveau) peut supprimer un employé
141 self
._test_acces_ok(self
.url
)
143 def _test_grp_accior(self
):
145 Un membre de l'ACCIOR ne peut pas supprimer un employé
147 self
._test_grp_accior()
148 self
._test_acces_ko(self
.url
)
150 def test_grp_abf(self
):
152 Un membre de l'ABF ne peut pas supprimer un employé
155 self
._test_acces_ko(self
.url
)
157 def test_grp_finance(self
):
159 Un membre de Finance ne peut pas supprimer un employé
162 self
._test_acces_ko(self
.url
)
164 def test_grp_haute_direction(self
):
166 Un membre de la haute direction ne peut pas supprimer un employé
168 self
._test_grp_haute_direction()
169 self
._test_acces_ko(self
.url
)
171 def test_grp_service_utilisateurs(self
):
173 Un membre du groupe service utilisateur
174 ne peut pas supprimer un employé
176 self
._test_grp_service_utilisateurs()
177 self
._test_acces_ko(self
.url
)
180 class EmployeListTest(RhTest
):
182 Test la suppression d'un employé
186 super(EmployeListTest
, self
).setUp()
187 self
.url
= reverse('admin:rh_employe_changelist')
189 def test_anonyme(self
):
191 Un anonyme ne peut pas voir les employés
194 self
._test_acces_ko(self
.url
)
196 def test_correspondant_rh(self
):
198 Un correspodant RH peut voir les employés
200 self
._test_correspondant_rh()
201 self
._test_acces_ok(self
.url
)
202 qs
= self
.client
.get(self
.url
).context
['cl'].query_set
203 self
.assertEqual(len(qs
), 2)
205 def test_administrateur_regional(self
):
207 Un administrateur peut voir les employés de sa région
209 self
._test_administrateur_regional()
210 self
._test_acces_ok(self
.url
)
211 qs
= self
.client
.get(self
.url
).context
['cl'].query_set
212 self
.assertEqual(len(qs
), 2)
214 def test_directeur_bureau(self
):
216 Un directeur de bureau peut voir les employés de sa région
218 self
._test_directeur_bureau()
219 self
._test_acces_ok(self
.url
)
220 qs
= self
.client
.get(self
.url
).context
['cl'].query_set
221 self
.assertEqual(len(qs
), 2)
225 Un DRH peut voir tous les employés
228 self
._test_acces_ok(self
.url
)
229 qs
= self
.client
.get(self
.url
).context
['cl'].query_set
230 self
.assertEqual(len(qs
), 4)
234 Un DRH (2ieme niveau) peut voir tous les employés
237 self
._test_acces_ok(self
.url
)
239 def test_grp_accior(self
):
241 Un membre de l'ACCIOR ne peut pas voir les employés
243 self
._test_grp_accior()
244 self
._test_acces_ko(self
.url
)
246 def test_grp_abf(self
):
248 Un membre de l'ABF ne peut pas voir les employés
251 self
._test_acces_ko(self
.url
)
253 def test_grp_finance(self
):
255 Un membre de Finance ne peut pas voir les employés
257 self
._test_grp_finance()
258 self
._test_acces_ko(self
.url
)
260 def test_grp_haute_direction(self
):
262 Un membre de la haute direction ne peut pas voir les employés
264 self
._test_grp_haute_direction()
265 self
._test_acces_ko(self
.url
)
267 def _test_grp_service_utilisateurs(self
):
269 Un membre du groupe service utilisateur ne peut pas voir les employés
271 self
._test_grp_service_utilisateurs()
272 self
._test_acces_ko(self
.url
)
275 class EmployeApercuTest(RhTest
):
277 Test l'accès à un aperçu de l'employé
281 super(EmployeApercuTest
, self
).setUp()
282 self
.url
= reverse('employe_apercu',
283 args
=[self
.employe_cnf_ngaoundere
.id])
284 self
.url2
= reverse('employe_apercu',
285 args
=[self
.employe_bap_ifi
.id])
287 def test_anonyme(self
):
289 Un anonyme ne peut pas voir l'aperçu
292 self
._test_acces_ko(self
.url
)
294 def test_correspondant_rh(self
):
296 Un correspondant RH peut voir l'aperçu
297 Les dossiers qui ne sont pas de sa région ne sont pas disponibles
299 self
._test_correspondant_rh()
300 self
._test_acces_ok(self
.url
)
301 dossiers
= self
.client
.get(self
.url
).context
['dossiers']
302 self
.assertEqual(len(dossiers
), 1)
303 self
._test_acces_ok(self
.url2
)
304 dossiers
= self
.client
.get(self
.url2
).context
['dossiers']
305 self
.assertEqual(len(dossiers
), 0)
307 def test_administrateur_regional(self
):
309 Un administrateur peut voir l'aperçu de l'employé
310 Les dossiers qui ne sont pas de sa région ne sont pas disponibles
312 self
._test_administrateur_regional()
313 self
._test_acces_ok(self
.url
)
314 dossiers
= self
.client
.get(self
.url
).context
['dossiers']
315 self
.assertEqual(len(dossiers
), 1)
316 self
._test_acces_ok(self
.url2
)
317 dossiers
= self
.client
.get(self
.url2
).context
['dossiers']
318 self
.assertEqual(len(dossiers
), 0)
320 def test_directeur_bureau(self
):
322 Un directeur de bureau peut voir l'aperçu employé
323 Les dossiers qui ne sont pas de sa région ne sont pas disponibles
325 self
._test_directeur_bureau()
326 dossiers
= self
.client
.get(self
.url
).context
['dossiers']
327 self
.assertEqual(len(dossiers
), 1)
328 self
._test_acces_ok(self
.url2
)
329 dossiers
= self
.client
.get(self
.url2
).context
['dossiers']
330 self
.assertEqual(len(dossiers
), 0)
334 Un DRH peut voir tous les aperçus d'employés avec tous les dossiers
337 self
._test_acces_ok(self
.url
)
338 self
._test_acces_ok(self
.url2
)
339 dossiers
= self
.client
.get(self
.url
).context
['dossiers']
340 self
.assertEqual(len(dossiers
), 1)
341 dossiers
= self
.client
.get(self
.url2
).context
['dossiers']
342 self
.assertEqual(len(dossiers
), 1)
346 Un DRH (2ieme niveau) peut voir tous les aperçus d'employés
347 avec tous les dossiers
350 self
._test_acces_ok(self
.url
)
351 self
._test_acces_ok(self
.url2
)
352 dossiers
= self
.client
.get(self
.url
).context
['dossiers']
353 self
.assertEqual(len(dossiers
), 1)
354 dossiers
= self
.client
.get(self
.url2
).context
['dossiers']
355 self
.assertEqual(len(dossiers
), 1)
357 def test_grp_accior(self
):
359 Un membre de l'ACCIOR ne peut pas voir les aperçus d'employés
361 self
._test_grp_accior()
362 self
._test_acces_ko(self
.url
)
364 def test_grp_abf(self
):
366 Un membre de l'ABF ne peut pas voir les aperçus d'employés
369 self
._test_acces_ko(self
.url
)
371 def test_grp_finance(self
):
373 Un membre de Finance ne peut pas voir les aperçus d'employés
375 self
._test_grp_finance()
376 self
._test_acces_ko(self
.url
)
378 def test_grp_haute_direction(self
):
380 Un membre de la haute direction ne peut pas voir
381 les aperçus d'employés
383 self
._test_grp_haute_direction()
384 self
._test_acces_ko(self
.url
)
386 def test_grp_service_utilisateurs(self
):
388 Un membre du groupe service utilisateur ne pas pas voir
389 les aperçus d'employés
391 self
._test_grp_service_utilisateurs()
392 self
._test_acces_ko(self
.url
)