1 # -*- coding: utf-8 -*-
4 from auf
.django
.saml
.settings
import SAML_REDIRECT_FIELD_NAME
5 from django
.contrib
.auth
.models
import User
, Group
6 from project
import groups
7 from auf
.django
.references
import models
as ref
8 from django
.test
import TestCase
9 from project
.rh
import models
as rh
11 class RhTest(TestCase
):
22 self.classement_p_5_10
36 FAMILLE PROFESSIONNELLE
37 =======================
46 self.grp_correspondants_rh
47 self.grp_administrateurs
48 self.grp_directeurs_bureau
53 self.grp_haute_direction
54 self.grp_service_utilisateurs
58 self.poste_cnf_ngaoundere
65 0@test.auf: self.employe_cnf_ngaoundere
66 1@test.auf: self.employe_cnf_bangui
67 2@test.auf: self.employe_bap_bureau
68 3@test.auf: self.employe_bap_ifi
76 self.dossier_cnf_ngaoundere
77 self.dossier_cnf_bangui
78 self.dossier_bap_bureau
86 self
.devise_cad
= rh
.Devise(code
="CAD", nom
="CAD")
87 self
.devise_cad
.save()
92 self
.classement_p_5_0
= rh
.Classement(type="P", echelon
=5, degre
=1, coefficient
=5.01)
93 self
.classement_p_5_0
.save()
95 self
.classement_p_5_10
= rh
.Classement(type="P", echelon
=5, degre
=10, coefficient
=5.10)
96 self
.classement_p_5_10
.save()
101 self
.srv_info
= rh
.Service(nom
="info")
107 self
.cat_emploi_pro
= rh
.CategorieEmploi(nom
="pro")
108 self
.cat_emploi_pro
.save()
113 self
.famille_cadre
= rh
.FamilleProfessionnelle(nom
="cadre")
114 self
.famille_cadre
.save()
119 self
.type_poste_tech
= rh
.TypePoste(nom
="tech",
120 categorie_emploi
=self
.cat_emploi_pro
,
121 famille_professionnelle
=self
.famille_cadre
)
122 self
.type_poste_tech
.save()
127 self
.grp_correspondants_rh
= Group(name
=groups
.CORRESPONDANT_RH
)
128 self
.grp_correspondants_rh
.save()
130 self
.grp_administrateurs
= Group(name
=groups
.ADMINISTRATEURS
)
131 self
.grp_administrateurs
.save()
133 self
.grp_directeurs_bureau
= Group(name
=groups
.DIRECTEUR_DE_BUREAU
)
134 self
.grp_directeurs_bureau
.save()
136 self
.grp_drh
= Group(name
=groups
.DRH_NIVEAU_1
)
139 self
.grp_drh2
= Group(name
=groups
.DRH_NIVEAU_2
)
142 self
.grp_accior
= Group(name
=groups
.ACCIOR
)
143 self
.grp_accior
.save()
145 self
.grp_abf
= Group(name
=groups
.ABF
)
148 self
.grp_haute_direction
= Group(name
=groups
.HAUTE_DIRECTION
)
149 self
.grp_haute_direction
.save()
151 self
.grp_service_utilisateurs
= Group(name
=groups
.SERVICE_UTILISATEURS
)
152 self
.grp_service_utilisateurs
.save()
154 self
.password
= "0000"
155 self
.today
= datetime
.datetime
.now()
156 self
.tomorrow
= self
.today
+ datetime
.timedelta(days
=1)
158 #########################
159 # Régions / Implantations
160 #########################
161 self
.REGION_ACGL
= ref
.Region
.objects
.get(id=1)
162 self
.IMPLANTATION_ACGL_CNF_NGAOUNDERE
= ref
.Implantation
.objects
.get(id=90)
163 self
.IMPLANTATION_ACGL_CNF_BANGUI
= ref
.Implantation
.objects
.get(id=85)
165 self
.REGION_BAP
= ref
.Region
.objects
.get(id=4)
166 self
.IMPLANTATION_BAP_BUREAU
= ref
.Implantation
.objects
.get(id=51)
167 self
.IMPLANTATION_BAP_IFI
= ref
.Implantation
.objects
.get(id=55)
172 self
.vp_cad_ngaoundere_2012
= rh
.ValeurPoint(valeur
=1000.1,
173 devise
=self
.devise_cad
,
174 implantation
=self
.IMPLANTATION_ACGL_CNF_NGAOUNDERE
,
176 self
.vp_cad_ngaoundere_2012
.save()
183 self
.employe_cnf_ngaoundere
= rh
.Employe(
188 self
.employe_cnf_ngaoundere
.save()
189 self
.employe_cnf_bangui
= rh
.Employe(
194 self
.employe_cnf_bangui
.save()
195 self
.employe_bap_bureau
= rh
.Employe(
200 self
.employe_bap_bureau
.save()
201 self
.employe_bap_ifi
= rh
.Employe(
206 self
.employe_bap_ifi
.save()
211 self
.poste_cnf_ngaoundere
= rh
.Poste(nom
="poste à NGAOUNDERE",
212 implantation
=self
.IMPLANTATION_ACGL_CNF_NGAOUNDERE
)
214 self
.poste_cnf_bangui
= rh
.Poste(nom
="poste à BANGUI",
215 implantation
=self
.IMPLANTATION_ACGL_CNF_BANGUI
)
217 self
.poste_cnf_ngaoundere
.save()
218 self
.poste_cnf_bangui
.save()
220 self
.dossier_cnf_ngaoundere
= rh
.Dossier(poste
=self
.poste_cnf_ngaoundere
,
221 employe
=self
.employe_cnf_ngaoundere
, date_debut
=self
.today
)
222 self
.dossier_cnf_bangui
= rh
.Dossier(poste
=self
.poste_cnf_bangui
,
223 employe
=self
.employe_cnf_bangui
, date_debut
=self
.today
)
225 self
.dossier_cnf_ngaoundere
.save()
226 self
.dossier_cnf_bangui
.save()
231 self
.poste_bap_bureau
= rh
.Poste(nom
="poste au Bureau BAP",
232 implantation
=self
.IMPLANTATION_BAP_BUREAU
)
233 self
.poste_bap_ifi
= rh
.Poste(nom
="poste à l'IFI",
234 implantation
=self
.IMPLANTATION_BAP_IFI
)
236 self
.poste_bap_bureau
.save()
237 self
.poste_bap_ifi
.save()
239 self
.dossier_bap_bureau
= rh
.Dossier(poste
=self
.poste_bap_bureau
,
240 employe
=self
.employe_bap_bureau
, date_debut
=self
.today
)
241 self
.dossier_bap_ifi
= rh
.Dossier(poste
=self
.poste_bap_ifi
,
242 employe
=self
.employe_bap_ifi
, date_debut
=self
.today
)
244 self
.dossier_bap_bureau
.save()
245 self
.dossier_bap_ifi
.save()
251 for idx
, e
in enumerate(rh
.Employe
.objects
.all().order_by('id')):
252 email
= u
"%s@test.auf" % idx
253 u
= User(first_name
=e
.prenom
,
258 u
.set_password(self
.password
)
261 # on le porte dans le référentiel employé
262 ref_e
= ref
.Employe(id=u
.id,
263 nom
=e
.nom
, prenom
=e
.prenom
,
264 implantation
=e
.dossier_principal().poste
.implantation
,
265 implantation_physique
=e
.dossier_principal().poste
.implantation
,
266 service
=ref
.Service
.objects
.get(id=1))
269 # on le porte dans le référentiel auth
270 ref
.Authentification(id=ref_e
, courriel
=u
.email
).save()
272 def _clean_refs(self
):
273 courriels
= [u
"%s@test.auf" % idx
for idx
, e
in
274 enumerate(rh
.Employe
.objects
.all())]
275 ref
.Employe
.objects
.filter(courriel__in
=courriels
).delete()
276 ref
.Authentification
.objects
.filter(courriel__in
=courriels
).delete()
281 def _test_acces_ok(self
, url
):
282 response
= self
.client
.get(url
, follow
=True)
283 self
.assertEqual(response
.status_code
, 200)
284 self
.assertEqual('next' in response
.context
, False)
286 def _test_acces_ko(self
, url
):
287 response
= self
.client
.get(url
, follow
=True)
288 is_ko
= response
.status_code
in (403, 404) or \
289 'next' in response
.context
or \
290 SAML_REDIRECT_FIELD_NAME
in response
.context
['request'].GET
.keys()
291 self
.assertEqual(is_ko
, True)
293 def _test_anonyme(self
):
296 def _test_correspondant_rh(self
, email
="0@test.auf"):
297 u
= User
.objects
.get(email
=email
)
298 self
.grp_correspondants_rh
.user_set
.add(u
)
299 self
.grp_correspondants_rh
.save()
301 credentials
= {'username': email
, 'password': self
.password
}
302 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
304 def _test_administrateur_regional(self
, email
="0@test.auf"):
305 u
= User
.objects
.get(email
=email
)
306 self
.grp_administrateurs
.user_set
.add(u
)
307 self
.grp_administrateurs
.save()
309 credentials
= {'username': email
, 'password': self
.password
}
310 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
312 def _test_directeur_bureau(self
, email
="0@test.auf"):
313 u
= User
.objects
.get(email
=email
)
314 self
.grp_directeurs_bureau
.user_set
.add(u
)
315 self
.grp_directeurs_bureau
.save()
317 credentials
= {'username': email
, 'password': self
.password
}
318 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
323 u
= User
.objects
.get(email
=email
)
324 self
.grp_drh
.user_set
.add(u
)
327 credentials
= {'username': email
, 'password': self
.password
}
328 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
330 def _test_drh2(self
):
333 u
= User
.objects
.get(email
=email
)
334 self
.grp_drh2
.user_set
.add(u
)
337 credentials
= {'username': email
, 'password': self
.password
}
338 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
340 def _test_grp_accior(self
):
343 u
= User
.objects
.get(email
=email
)
344 self
.grp_accior
.user_set
.add(u
)
345 self
.grp_accior
.save()
347 credentials
= {'username': email
, 'password': self
.password
}
348 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
350 def _test_grp_abf(self
):
353 u
= User
.objects
.get(email
=email
)
354 self
.grp_abf
.user_set
.add(u
)
357 credentials
= {'username': email
, 'password': self
.password
}
358 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
360 def _test_grp_haute_direction(self
):
363 u
= User
.objects
.get(email
=email
)
364 self
.grp_haute_direction
.user_set
.add(u
)
365 self
.grp_haute_direction
.save()
367 credentials
= {'username': email
, 'password': self
.password
}
368 self
.assertTrue(self
.client
.login(**credentials
), "login failed")
370 def _test_grp_service_utilisateurs(self
):
373 u
= User
.objects
.get(email
=email
)
374 self
.grp_service_utilisateurs
.user_set
.add(u
)
375 self
.grp_service_utilisateurs
.save()
377 credentials
= {'username': email
, 'password': self
.password
}
378 self
.assertTrue(self
.client
.login(**credentials
), "login failed")