dossier volumetrie
[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(self)
67 self._test_acces_ko(self.url)
68
69 def _test_grp_haute_direction(self):
70 """
71 Un membre de la haute direction ne peut pas ajouter un employé
72 """
73 self._test_grp_haute_direction()
74 self._test_acces_ko(self.url)
75
76 def _test_grp_service_utilisateurs(self):
77 """
78 Un membre du groupe service utilisateur ne peut pas ajouter un employé
79 """
80 self._test_grp_service_utilisateurs()
81 self._test_acces_ko(self.url)
82
83
84 class EmployeDeleteTest(RhTest):
85 """
86 Test la suppression d'un employé
87 """
88
89 def setUp(self):
90 super(EmployeDeleteTest, self).setUp()
91 self.url = reverse('admin:rh_employe_delete',
92 args=[self.employe_cnf_ngaoundere.id])
93
94 def test_anonyme(self):
95 """
96 Un anonyme ne peut pas supprimer un employé
97 """
98 self._test_anonyme()
99 self._test_acces_ko(self.url)
100
101 def test_correspondant_rh(self):
102 """
103 Un correspodant RH ne peut pas supprimer un employé
104 """
105 self._test_correspondant_rh()
106 self._test_acces_ko(self.url)
107
108 def test_administrateur_regional(self):
109 """
110 Un administrateur ne peut pas supprimer un employé
111 """
112 self._test_administrateur_regional()
113 self._test_acces_ko(self.url)
114
115 def test_directeur_bureau(self):
116 """
117 Un directeur de bureau ne peut pas supprimer un employé
118 """
119 self._test_directeur_bureau()
120 self._test_acces_ko(self.url)
121
122 def test_drh(self):
123 """
124 Un DRH peut supprimer un employé
125 """
126 self._test_drh()
127 self._test_acces_ok(self.url)
128
129 def test_drh2(self):
130 """
131 Un DRH (2ieme niveau) peut supprimer un employé
132 """
133 self._test_drh2()
134 self._test_acces_ok(self.url)
135
136 def _test_grp_accior(self):
137 """
138 Un membre de l'ACCIOR ne peut pas supprimer un employé
139 """
140 self._test_grp_accior()
141 self._test_acces_ko(self.url)
142
143 def _test_grp_abf(self):
144 """
145 Un membre de l'ABF ne peut pas supprimer un employé
146 """
147 self._test_grp_abf(self)
148 self._test_acces_ko(self.url)
149
150 def _test_grp_haute_direction(self):
151 """
152 Un membre de la haute direction ne peut pas supprimer un employé
153 """
154 self._test_grp_haute_direction()
155 self._test_acces_ko(self.url)
156
157 def _test_grp_service_utilisateurs(self):
158 """
159 Un membre du groupe service utilisateur
160 ne peut pas supprimer un employé
161 """
162 self._test_grp_service_utilisateurs()
163 self._test_acces_ko(self.url)
164
165
166 class EmployeListTest(RhTest):
167 """
168 Test la suppression d'un employé
169 """
170
171 def setUp(self):
172 super(EmployeListTest, self).setUp()
173 self.url = reverse('admin:rh_employe_changelist')
174
175 def test_anonyme(self):
176 """
177 Un anonyme ne peut pas voir les employés
178 """
179 self._test_anonyme()
180 self._test_acces_ko(self.url)
181
182 def test_correspondant_rh(self):
183 """
184 Un correspodant RH peut voir les employés
185 """
186 self._test_correspondant_rh()
187 self._test_acces_ok(self.url)
188 qs = self.client.get(self.url).context['cl'].query_set
189 self.assertEqual(len(qs), 2)
190
191 def test_administrateur_regional(self):
192 """
193 Un administrateur peut voir les employés de sa région
194 """
195 self._test_administrateur_regional()
196 self._test_acces_ok(self.url)
197 qs = self.client.get(self.url).context['cl'].query_set
198 self.assertEqual(len(qs), 2)
199
200 def test_directeur_bureau(self):
201 """
202 Un directeur de bureau peut voir les employés de sa région
203 """
204 self._test_directeur_bureau()
205 self._test_acces_ok(self.url)
206 qs = self.client.get(self.url).context['cl'].query_set
207 self.assertEqual(len(qs), 2)
208
209 def test_drh(self):
210 """
211 Un DRH peut voir tous les employés
212 """
213 self._test_drh()
214 self._test_acces_ok(self.url)
215 qs = self.client.get(self.url).context['cl'].query_set
216 self.assertEqual(len(qs), 4)
217
218 def test_drh2(self):
219 """
220 Un DRH (2ieme niveau) peut voir tous les employés
221 """
222 self._test_drh2()
223 self._test_acces_ok(self.url)
224
225 def _test_grp_accior(self):
226 """
227 Un membre de l'ACCIOR ne peut pas voir les employés
228 """
229 self._test_grp_accior()
230 self._test_acces_ko(self.url)
231
232 def _test_grp_abf(self):
233 """
234 Un membre de l'ABF ne peut pas voir les employés
235 """
236 self._test_grp_abf(self)
237 self._test_acces_ko(self.url)
238
239 def _test_grp_haute_direction(self):
240 """
241 Un membre de la haute direction ne peut pas voir les employés
242 """
243 self._test_grp_haute_direction()
244 self._test_acces_ko(self.url)
245
246 def _test_grp_service_utilisateurs(self):
247 """
248 Un membre du groupe service utilisateur ne peut pas voir les employés
249 """
250 self._test_grp_service_utilisateurs()
251 self._test_acces_ko(self.url)
252
253
254 class EmployeApercuTest(RhTest):
255 """
256 Test l'accès à un aperçu de l'employé
257 """
258
259 def setUp(self):
260 super(EmployeApercuTest, self).setUp()
261 self.url = reverse('employe_apercu',
262 args=[self.employe_cnf_ngaoundere.id])
263 self.url2 = reverse('employe_apercu',
264 args=[self.employe_bap_ifi.id])
265
266 def test_anonyme(self):
267 """
268 Un anonyme ne peut pas voir l'aperçu
269 """
270 self._test_anonyme()
271 self._test_acces_ko(self.url)
272
273 def test_correspondant_rh(self):
274 """
275 Un correspondant RH peut voir l'aperçu
276 Les dossiers qui ne sont pas de sa région ne sont pas disponibles
277 """
278 self._test_correspondant_rh()
279 self._test_acces_ok(self.url)
280 dossiers = self.client.get(self.url).context['dossiers']
281 self.assertEqual(len(dossiers), 1)
282 self._test_acces_ok(self.url2)
283 dossiers = self.client.get(self.url2).context['dossiers']
284 self.assertEqual(len(dossiers), 0)
285
286 def test_administrateur_regional(self):
287 """
288 Un administrateur peut voir l'aperçu de l'employé
289 Les dossiers qui ne sont pas de sa région ne sont pas disponibles
290 """
291 self._test_administrateur_regional()
292 self._test_acces_ok(self.url)
293 dossiers = self.client.get(self.url).context['dossiers']
294 self.assertEqual(len(dossiers), 1)
295 self._test_acces_ok(self.url2)
296 dossiers = self.client.get(self.url2).context['dossiers']
297 self.assertEqual(len(dossiers), 0)
298
299 def test_directeur_bureau(self):
300 """
301 Un directeur de bureau peut voir l'aperçu employé
302 Les dossiers qui ne sont pas de sa région ne sont pas disponibles
303 """
304 self._test_directeur_bureau()
305 dossiers = self.client.get(self.url).context['dossiers']
306 self.assertEqual(len(dossiers), 1)
307 self._test_acces_ok(self.url2)
308 dossiers = self.client.get(self.url2).context['dossiers']
309 self.assertEqual(len(dossiers), 0)
310
311 def test_drh(self):
312 """
313 Un DRH peut voir tous les aperçus d'employés avec tous les dossiers
314 """
315 self._test_drh()
316 self._test_acces_ok(self.url)
317 self._test_acces_ok(self.url2)
318 dossiers = self.client.get(self.url).context['dossiers']
319 self.assertEqual(len(dossiers), 1)
320 dossiers = self.client.get(self.url2).context['dossiers']
321 self.assertEqual(len(dossiers), 1)
322
323 def test_drh2(self):
324 """
325 Un DRH (2ieme niveau) peut voir tous les aperçus d'employés
326 avec tous les dossiers
327 """
328 self._test_drh2()
329 self._test_acces_ok(self.url)
330 self._test_acces_ok(self.url2)
331 dossiers = self.client.get(self.url).context['dossiers']
332 self.assertEqual(len(dossiers), 1)
333 dossiers = self.client.get(self.url2).context['dossiers']
334 self.assertEqual(len(dossiers), 1)
335
336 def _test_grp_accior(self):
337 """
338 Un membre de l'ACCIOR ne peut pas voir les aperçus d'employés
339 """
340 self._test_grp_accior()
341 self._test_acces_ko(self.url)
342
343 def _test_grp_abf(self):
344 """
345 Un membre de l'ABF ne peut pas voir les aperçus d'employés
346 """
347 self._test_grp_abf(self)
348 self._test_acces_ko(self.url)
349
350 def _test_grp_haute_direction(self):
351 """
352 Un membre de la haute direction ne peut pas voir
353 les aperçus d'employés
354 """
355 self._test_grp_haute_direction()
356 self._test_acces_ko(self.url)
357
358 def _test_grp_service_utilisateurs(self):
359 """
360 Un membre du groupe service utilisateur ne pas pas voir
361 les aperçus d'employés
362 """
363 self._test_grp_service_utilisateurs()
364 self._test_acces_ko(self.url)