2e5a4ba9642a1149a77c41d8da033feaf4b56c83
[auf_rh_dae.git] / project / rh / test / rapport.py
1 # -*- coding: utf-8 -*-
2
3 import datetime
4 from django.core.urlresolvers import reverse
5 from project.rh.test.common import RhTest
6 from project.rh import models as rh
7
8 class RapportContratTest(RhTest):
9 """
10 Test l'accès au rapport des contrats
11 """
12 url = reverse('rhr_contrats')
13
14 def setUp(self):
15 super(RapportContratTest, self).setUp()
16
17 cdi = rh.TypeContrat(nom="CDI")
18 cdi.save()
19
20 contrat = rh.Contrat(
21 type_contrat=cdi,
22 date_debut=self.today,
23 dossier=self.dossier_cnf_ngaoundere,)
24 contrat.save()
25
26 contrat = rh.Contrat(
27 type_contrat=cdi,
28 date_debut=self.today,
29 dossier=self.dossier_bap_ifi)
30 contrat.save()
31
32 salaire = rh.TypeRemuneration(nom="salaire",
33 type_paiement="Régulier",
34 nature_remuneration="Indemnité",
35 )
36 salaire.save()
37
38 remun_cnf_ngaoundere = rh.Remuneration(
39 type=salaire,
40 date_debut=self.today,
41 dossier=self.dossier_cnf_ngaoundere,
42 montant="100",
43 devise=self.devise_cad,
44 )
45 remun_cnf_ngaoundere.save()
46
47 remun_bap_ifi = rh.Remuneration(
48 type=salaire,
49 date_debut=self.today,
50 dossier=self.dossier_bap_ifi,
51 montant="200",
52 devise=self.devise_cad,
53 )
54 remun_bap_ifi.save()
55
56
57 def test_anonyme(self):
58 """
59 Un anonyme ne peut pas accéder à ce rapport
60 """
61 self._test_anonyme()
62 self._test_acces_ko(self.url)
63
64 def test_correspondant_rh(self):
65 """
66 Un correspondant RH peut accéder à ce rapport limité aux dossiers de sa
67 région
68 """
69 self._test_correspondant_rh()
70 self._test_acces_ok(self.url)
71 contrats = self.client.get(self.url).context['contrats']
72 self.assertEqual(len(contrats), 1)
73
74 def test_administrateur_regional(self):
75 """
76 Un administrateur peut accéder à ce rapport limité aux dossiers de sa
77 région
78 """
79 self._test_administrateur_regional()
80 self._test_acces_ok(self.url)
81 contrats = self.client.get(self.url).context['contrats']
82 self.assertEqual(len(contrats), 1)
83
84 def test_directeur_bureau(self):
85 """
86 Un directeur de bureau peut accéder à ce rapport limité aux dossiers de
87 sa région
88 """
89 self._test_directeur_bureau()
90 self._test_acces_ok(self.url)
91 contrats = self.client.get(self.url).context['contrats']
92 self.assertEqual(len(contrats), 1)
93
94 def test_drh(self):
95 """
96 Un DRH peut accéder à ce rapport
97 """
98 self._test_drh()
99 self._test_acces_ok(self.url)
100 contrats = self.client.get(self.url).context['contrats']
101 self.assertEqual(len(contrats), 2)
102
103 def test_drh2(self):
104 """
105 Un DRH (2ieme niveau) peut accéder à ce rapport
106 """
107 self._test_drh2()
108 self._test_acces_ok(self.url)
109 contrats = self.client.get(self.url).context['contrats']
110 self.assertEqual(len(contrats), 2)
111
112 def _test_grp_accior(self):
113 """
114 Un membre de l'ACCIOR ne peut pas accéder à ce rapport
115 """
116 self._test_grp_accior()
117 self._test_acces_ko(self.url)
118
119 def _test_grp_abf(self):
120 """
121 Un membre de l'ABF ne peut pas accéder à ce rapport
122 """
123 self._test_grp_abf(self)
124 self._test_acces_ko(self.url)
125
126 def _test_grp_haute_direction(self):
127 """
128 Un membre de la haute direction ne peut pas accéder à ce rapport
129 """
130 self._test_grp_haute_direction()
131 self._test_acces_ko(self.url)
132
133 def _test_grp_service_utilisateurs(self):
134 """
135 Un membre du groupe service utilisateur ne peut pas accéder à ce rapport
136 """
137 self._test_grp_service_utilisateurs()
138 self._test_acces_ko(self.url)
139
140
141 class RapportMasseSalarialeTest(RhTest):
142 """
143 Test l'accès au rapport de masse salariale
144 """
145 url = reverse('rhr_masse_salariale')
146
147 today = datetime.date.today()
148 annee_moins_2 = datetime.date(today.year - 2, 1, 1)
149 annee_moins_1 = datetime.date(today.year - 1, 1, 1)
150 annee_plus_2 = datetime.date(today.year + 2, 1, 1)
151 annee_plus_1 = datetime.date(today.year + 1, 1, 1)
152
153
154 def setUp(self):
155 super(RapportMasseSalarialeTest, self).setUp()
156 # 2 dossiers actifs
157 self.dossier_cnf_ngaoundere.date_debut = self.annee_moins_1
158 self.dossier_cnf_ngaoundere.date_fin = self.annee_plus_1
159 self.dossier_cnf_ngaoundere.save()
160
161 self.dossier_cnf_bangui.date_debut = self.annee_moins_1
162 self.dossier_cnf_bangui.date_fin = self.annee_plus_1
163 self.dossier_cnf_bangui.save()
164
165 # 1 dossier inactif
166 self.dossier_bap_bureau.date_debut = self.annee_moins_2
167 self.dossier_bap_bureau.date_fin = self.annee_moins_1
168 self.dossier_bap_bureau.save()
169
170 # 1 dossier futur
171 self.dossier_bap_ifi.date_debut = self.annee_plus_1
172 self.dossier_bap_ifi.date_fin = self.annee_plus_2
173 self.dossier_bap_ifi.save()
174
175 def test_filtrage(self):
176 """
177 Test la page avec des paramètres de filtrage.
178 """
179 self._test_drh()
180 self._test_acces_ok(self.url)
181 params = {'implantation': self.IMPLANTATION_ACGL_CNF_NGAOUNDERE.id,
182 'region': self.REGION_ACGL.id,
183 'annee': self.today.year,
184 }
185 resp = self.client.get(self.url, params)
186 self.assertEqual(resp.context['form'].is_valid(), True)
187 self.assertEqual(resp.status_code, 200)
188
189 def test_anonyme(self):
190 """
191 Un anonyme ne peut pas accéder à ce rapport
192 """
193 self._test_anonyme()
194 self._test_acces_ko(self.url)
195
196 def test_correspondant_rh(self):
197 """
198 Un correspondant RH peut accéder à ce rapport
199 """
200 self._test_correspondant_rh()
201 self._test_acces_ok(self.url)
202 # todo TEST rapport
203
204 def test_administrateur_regional(self):
205 """
206 Un administrateur peut accéder à ce rapport
207 """
208 self._test_administrateur_regional()
209 self._test_acces_ok(self.url)
210 # todo TEST rapport
211
212 def test_directeur_bureau(self):
213 """
214 Un directeur de bureau peut accéder à ce rapport
215 """
216 self._test_directeur_bureau()
217 self._test_acces_ok(self.url)
218 # todo TEST rapport
219
220 def test_drh(self):
221 """
222 Un DRH peut accéder à ce rapport
223 """
224 self._test_drh()
225 self._test_acces_ok(self.url)
226
227 def test_drh2(self):
228 """
229 Un DRH (2ieme niveau) peut accéder à ce rapport
230 """
231 self._test_drh2()
232 self._test_acces_ok(self.url)
233 # todo TEST rapport
234
235 def _test_grp_accior(self):
236 """
237 Un membre de l'ACCIOR ne peut pas accéder à ce rapport
238 """
239 self._test_grp_accior()
240 self._test_acces_ko(self.url)
241
242 def _test_grp_abf(self):
243 """
244 Un membre de l'ABF ne peut pas accéder à ce rapport
245 """
246 self._test_grp_abf(self)
247 self._test_acces_ko(self.url)
248
249 def _test_grp_haute_direction(self):
250 """
251 Un membre de la haute direction ne peut pas accéder à ce rapport
252 """
253 self._test_grp_haute_direction()
254 self._test_acces_ko(self.url)
255
256 def _test_grp_service_utilisateurs(self):
257 """
258 Un membre du groupe service utilisateur ne peut pas accéder à ce rapport
259 """
260 self._test_grp_service_utilisateurs()
261 self._test_acces_ko(self.url)
262
263
264 class RapportOrganigrammeTest(RhTest):
265 """
266 Test l'accès aux organigrammes
267 """
268 def setUp(self):
269 super(RapportOrganigrammeTest, self).setUp()
270 self.url1 = reverse('rho_employe', args=[1, 'all'])
271 self.url2 = reverse('rho_employe_sans_niveau', args=[1])
272 self.url3 = reverse('rho_service', args=[1])
273 self.url4 = reverse('rho_implantation', args=[90])
274 self.url5 = reverse('rho_region', args=[1])
275
276 self.url5 = reverse('admin:rh_implantationproxy_changelist')
277 self.url6 = reverse('admin:rh_serviceproxy_changelist')
278 self.url7 = reverse('admin:rh_regionproxy_changelist')
279 self.url8 = reverse('admin:rh_employeproxy_changelist')
280
281 self.urls = (
282 #self.url1,
283 #self.url2,
284 #self.url3,
285 #self.url4,
286 self.url5,
287 self.url6,
288 self.url7,
289 self.url8,
290 )
291
292
293 def test_anonyme(self):
294 """
295 Un anonyme ne peut pas accéder à ce rapport
296 """
297 self._test_anonyme()
298 for url in self.urls:
299 self._test_acces_ko(url)
300
301 def test_correspondant_rh(self):
302 """
303 Un correspondant RH peut accéder à ce rapport
304 """
305 self._test_correspondant_rh()
306 for url in self.urls:
307 self._test_acces_ok(url)
308
309 def test_administrateur_regional(self):
310 """
311 Un administrateur peut accéder à ce rapport
312 """
313 self._test_administrateur_regional()
314 for url in self.urls:
315 self._test_acces_ok(url)
316
317 def test_directeur_bureau(self):
318 """
319 Un directeur de bureau peut accéder à ce rapport
320 """
321 self._test_directeur_bureau()
322 for url in self.urls:
323 self._test_acces_ok(url)
324
325 def test_drh(self):
326 """
327 Un DRH peut accéder à ce rapport
328 """
329 self._test_drh()
330 for url in self.urls:
331 self._test_acces_ok(url)
332
333 def test_drh2(self):
334 """
335 Un DRH (2ieme niveau) peut accéder à ce rapport
336 """
337 self._test_drh2()
338 for url in self.urls:
339 self._test_acces_ok(url)
340
341 def _test_grp_accior(self):
342 """
343 Un membre de l'ACCIOR ne peut pas accéder à ce rapport
344 """
345 self._test_grp_accior()
346 for url in self.urls:
347 self._test_acces_ko(url)
348
349 def _test_grp_abf(self):
350 """
351 Un membre de l'ABF ne peut pas accéder à ce rapport
352 """
353 self._test_grp_abf(self)
354 for url in self.urls:
355 self._test_acces_ko(url)
356
357 def _test_grp_haute_direction(self):
358 """
359 Un membre de la haute direction ne peut pas accéder à ce rapport
360 """
361 self._test_grp_haute_direction()
362 for url in self.urls:
363 self._test_acces_ko(url)
364
365 def _test_grp_service_utilisateurs(self):
366 """
367 Un membre du groupe service utilisateur ne peut pas accéder à ce rapport
368 """
369 self._test_grp_service_utilisateurs()
370 for url in self.urls:
371 self._test_acces_ko(url)