#3774
[auf_rh_dae.git] / project / rh / test / employe.py
1 # -*- coding: utf-8 -*-
2
3 from django.core.urlresolvers import reverse
4 from project.rh.test.common import RhTest
5
6
7 class EmployeAddTest(RhTest):
8 """
9 Test l'ajout d'un employé
10 """
11 url = reverse('admin:rh_employe_add')
12
13 def test_anonyme(self):
14 """
15 Un anonyme ne peut pas créer d'employé
16 """
17 self._test_anonyme()
18 self._test_acces_ko(self.url)
19
20 def test_correspondant_rh(self):
21 """
22 Un correspodant RH peut ajouter un employé
23 """
24 self._test_correspondant_rh()
25 self._test_acces_ok(self.url)
26
27 def test_administrateur_regional(self):
28 """
29 Un administrateur peut ajouter un employé
30 """
31 self._test_administrateur_regional()
32 self._test_acces_ok(self.url)
33
34 def test_directeur_bureau(self):
35 """
36 Un directeur de bureau peut ajouter un employé
37 """
38 self._test_directeur_bureau()
39 self._test_acces_ok(self.url)
40
41 def test_drh(self):
42 """
43 Un DRH peut ajouter un employé
44 """
45 self._test_drh()
46 self._test_acces_ok(self.url)
47
48 def test_drh2(self):
49 """
50 Un DRH (2ieme niveau) peut ajouter un employé
51 """
52 self._test_drh2()
53 self._test_acces_ok(self.url)
54
55 def test_grp_accior(self):
56 """
57 Un membre de l'ACCIOR ne peut pas ajouter un employé
58 """
59 self._test_grp_accior()
60 self._test_acces_ko(self.url)
61
62 def test_grp_abf(self):
63 """
64 Un membre de l'ABF ne peut pas ajouter un employé
65 """
66 self._test_grp_abf()
67 self._test_acces_ko(self.url)
68
69 def test_grp_finance(self):
70 """
71 Un membre de Finance ne peut pas ajouter un employé
72 """
73 self._test_grp_finance()
74 self._test_acces_ko(self.url)
75
76 def test_grp_haute_direction(self):
77 """
78 Un membre de la haute direction ne peut pas ajouter un employé
79 """
80 self._test_grp_haute_direction()
81 self._test_acces_ko(self.url)
82
83 def test_grp_service_utilisateurs(self):
84 """
85 Un membre du groupe service utilisateur ne peut pas ajouter un employé
86 """
87 self._test_grp_service_utilisateurs()
88 self._test_acces_ko(self.url)
89
90
91 class EmployeDeleteTest(RhTest):
92 """
93 Test la suppression d'un employé
94 """
95
96 def setUp(self):
97 super(EmployeDeleteTest, self).setUp()
98 self.url = reverse('admin:rh_employe_delete',
99 args=[self.employe_cnf_ngaoundere.id])
100
101 def test_anonyme(self):
102 """
103 Un anonyme ne peut pas supprimer un employé
104 """
105 self._test_anonyme()
106 self._test_acces_ko(self.url)
107
108 def test_correspondant_rh(self):
109 """
110 Un correspodant RH ne peut pas supprimer un employé
111 """
112 self._test_correspondant_rh()
113 self._test_acces_ko(self.url)
114
115 def test_administrateur_regional(self):
116 """
117 Un administrateur ne peut pas supprimer un employé
118 """
119 self._test_administrateur_regional()
120 self._test_acces_ko(self.url)
121
122 def test_directeur_bureau(self):
123 """
124 Un directeur de bureau ne peut pas supprimer un employé
125 """
126 self._test_directeur_bureau()
127 self._test_acces_ko(self.url)
128
129 def test_drh(self):
130 """
131 Un DRH peut supprimer un employé
132 """
133 self._test_drh()
134 self._test_acces_ok(self.url)
135
136 def test_drh2(self):
137 """
138 Un DRH (2ieme niveau) peut supprimer un employé
139 """
140 self._test_drh2()
141 self._test_acces_ok(self.url)
142
143 def _test_grp_accior(self):
144 """
145 Un membre de l'ACCIOR ne peut pas supprimer un employé
146 """
147 self._test_grp_accior()
148 self._test_acces_ko(self.url)
149
150 def test_grp_abf(self):
151 """
152 Un membre de l'ABF ne peut pas supprimer un employé
153 """
154 self._test_grp_abf()
155 self._test_acces_ko(self.url)
156
157 def test_grp_finance(self):
158 """
159 Un membre de Finance ne peut pas supprimer un employé
160 """
161 self._test_grp_abf()
162 self._test_acces_ko(self.url)
163
164 def test_grp_haute_direction(self):
165 """
166 Un membre de la haute direction ne peut pas supprimer un employé
167 """
168 self._test_grp_haute_direction()
169 self._test_acces_ko(self.url)
170
171 def test_grp_service_utilisateurs(self):
172 """
173 Un membre du groupe service utilisateur
174 ne peut pas supprimer un employé
175 """
176 self._test_grp_service_utilisateurs()
177 self._test_acces_ko(self.url)
178
179
180 class EmployeListTest(RhTest):
181 """
182 Test la suppression d'un employé
183 """
184
185 def setUp(self):
186 super(EmployeListTest, self).setUp()
187 self.url = reverse('admin:rh_employe_changelist')
188
189 def test_anonyme(self):
190 """
191 Un anonyme ne peut pas voir les employés
192 """
193 self._test_anonyme()
194 self._test_acces_ko(self.url)
195
196 def test_correspondant_rh(self):
197 """
198 Un correspodant RH peut voir les employés
199 """
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)
204
205 def test_administrateur_regional(self):
206 """
207 Un administrateur peut voir les employés de sa région
208 """
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)
213
214 def test_directeur_bureau(self):
215 """
216 Un directeur de bureau peut voir les employés de sa région
217 """
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)
222
223 def test_drh(self):
224 """
225 Un DRH peut voir tous les employés
226 """
227 self._test_drh()
228 self._test_acces_ok(self.url)
229 qs = self.client.get(self.url).context['cl'].query_set
230 self.assertEqual(len(qs), 4)
231
232 def test_drh2(self):
233 """
234 Un DRH (2ieme niveau) peut voir tous les employés
235 """
236 self._test_drh2()
237 self._test_acces_ok(self.url)
238
239 def test_grp_accior(self):
240 """
241 Un membre de l'ACCIOR ne peut pas voir les employés
242 """
243 self._test_grp_accior()
244 self._test_acces_ko(self.url)
245
246 def test_grp_abf(self):
247 """
248 Un membre de l'ABF ne peut pas voir les employés
249 """
250 self._test_grp_abf()
251 self._test_acces_ko(self.url)
252
253 def test_grp_finance(self):
254 """
255 Un membre de Finance ne peut pas voir les employés
256 """
257 self._test_grp_finance()
258 self._test_acces_ko(self.url)
259
260 def test_grp_haute_direction(self):
261 """
262 Un membre de la haute direction ne peut pas voir les employés
263 """
264 self._test_grp_haute_direction()
265 self._test_acces_ko(self.url)
266
267 def _test_grp_service_utilisateurs(self):
268 """
269 Un membre du groupe service utilisateur ne peut pas voir les employés
270 """
271 self._test_grp_service_utilisateurs()
272 self._test_acces_ko(self.url)
273
274
275 class EmployeApercuTest(RhTest):
276 """
277 Test l'accès à un aperçu de l'employé
278 """
279
280 def setUp(self):
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])
286
287 def test_anonyme(self):
288 """
289 Un anonyme ne peut pas voir l'aperçu
290 """
291 self._test_anonyme()
292 self._test_acces_ko(self.url)
293
294 def test_correspondant_rh(self):
295 """
296 Un correspondant RH peut voir l'aperçu
297 Les dossiers qui ne sont pas de sa région ne sont pas disponibles
298 """
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)
306
307 def test_administrateur_regional(self):
308 """
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
311 """
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)
319
320 def test_directeur_bureau(self):
321 """
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
324 """
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)
331
332 def test_drh(self):
333 """
334 Un DRH peut voir tous les aperçus d'employés avec tous les dossiers
335 """
336 self._test_drh()
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)
343
344 def test_drh2(self):
345 """
346 Un DRH (2ieme niveau) peut voir tous les aperçus d'employés
347 avec tous les dossiers
348 """
349 self._test_drh2()
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)
356
357 def test_grp_accior(self):
358 """
359 Un membre de l'ACCIOR ne peut pas voir les aperçus d'employés
360 """
361 self._test_grp_accior()
362 self._test_acces_ko(self.url)
363
364 def test_grp_abf(self):
365 """
366 Un membre de l'ABF ne peut pas voir les aperçus d'employés
367 """
368 self._test_grp_abf()
369 self._test_acces_ko(self.url)
370
371 def test_grp_finance(self):
372 """
373 Un membre de Finance ne peut pas voir les aperçus d'employés
374 """
375 self._test_grp_finance()
376 self._test_acces_ko(self.url)
377
378 def test_grp_haute_direction(self):
379 """
380 Un membre de la haute direction ne peut pas voir
381 les aperçus d'employés
382 """
383 self._test_grp_haute_direction()
384 self._test_acces_ko(self.url)
385
386 def test_grp_service_utilisateurs(self):
387 """
388 Un membre du groupe service utilisateur ne pas pas voir
389 les aperçus d'employés
390 """
391 self._test_grp_service_utilisateurs()
392 self._test_acces_ko(self.url)