EMPLOYES
========
- self.employe_cnf_ngaoundere
- self.employe_cnf_bangui
- self.employe_bap_bureau
- self.employe_bap_ifi
+ 0@test.auf: self.employe_cnf_ngaoundere
+ 1@test.auf: self.employe_cnf_bangui
+ 2@test.auf: self.employe_bap_bureau
+ 3@test.auf: self.employe_bap_ifi
USERS DJANGO
============
# Employés
##########
self.employe_cnf_ngaoundere = rh.Employe(
+ id=1,
nom="Employé",
prenom="ngaoundere",
)
self.employe_cnf_ngaoundere.save()
self.employe_cnf_bangui = rh.Employe(
+ id=2,
nom="Employé",
prenom="bangui",
)
self.employe_cnf_bangui.save()
self.employe_bap_bureau = rh.Employe(
+ id=3,
nom="Employé",
prenom="BAP bureau",
)
self.employe_bap_bureau.save()
self.employe_bap_ifi = rh.Employe(
+ id=4,
nom="Employé",
prenom="BAP IFI",
)
##############
# Users Django
##############
-
- for idx, e in enumerate(rh.Employe.objects.all()):
+ self._clean_refs()
+ for idx, e in enumerate(rh.Employe.objects.all().order_by('id')):
email = u"%s@test.auf" % idx
u = User(first_name=e.prenom,
is_staff=True,
service=ref.Service.objects.get(id=1))
ref_e.save()
- def tearDown(self):
+ # on le porte dans le référentiel auth
+ ref.Authentification(id=ref_e, courriel=u.email).save()
+
+ def _clean_refs(self):
courriels = [u"%s@test.auf" % idx for idx, e in
enumerate(rh.Employe.objects.all())]
ref.Employe.objects.filter(courriel__in=courriels).delete()
+ ref.Authentification.objects.filter(courriel__in=courriels).delete()
+
+ def tearDown(self):
+ self._clean_refs()
def _test_acces_ok(self, url):
response = self.client.get(url, follow=True)
def _test_anonyme(self):
pass
- def _test_correspondant_rh(self):
- email = "0@test.auf"
-
+ def _test_correspondant_rh(self, email="0@test.auf"):
u = User.objects.get(email=email)
groups.grp_correspondants_rh.user_set.add(u)
groups.grp_correspondants_rh.save()
credentials = {'username': email, 'password': self.password}
self.assertTrue(self.client.login(**credentials), "login failed")
- def _test_administrateur_regional(self):
- email = "0@test.auf"
-
+ def _test_administrateur_regional(self, email="0@test.auf"):
u = User.objects.get(email=email)
groups.grp_administrateurs.user_set.add(u)
groups.grp_administrateurs.save()
credentials = {'username': email, 'password': self.password}
self.assertTrue(self.client.login(**credentials), "login failed")
- def _test_directeur_bureau(self):
- email = "0@test.auf"
-
+ def _test_directeur_bureau(self, email="0@test.auf"):
u = User.objects.get(email=email)
groups.grp_directeurs_bureau.user_set.add(u)
groups.grp_directeurs_bureau.save()
def _test_grp_service_utilisateurs(self):
"""
- Un membre du groupe service utilisateur peut voir les employés
+ Un membre du groupe service utilisateur ne peut pas voir les employés
+ """
+ self._test_grp_service_utilisateurs()
+ self._test_acces_ko(self.url)
+
+
+class EmployeApercuTest(RhTest):
+ """
+ Test l'accès à un aperçu de l'employé
+ """
+
+ def setUp(self):
+ super(EmployeApercuTest, self).setUp()
+ self.url = reverse('employe_apercu',
+ args=[self.employe_cnf_ngaoundere.id])
+ self.url2 = reverse('employe_apercu',
+ args=[self.employe_bap_ifi.id])
+
+ def test_anonyme(self):
+ """
+ Un anonyme ne peut pas voir l'aperçu
+ """
+ self._test_anonyme()
+ self._test_acces_ko(self.url)
+
+ def test_correspondant_rh(self):
+ """
+ Un correspondant RH peut voir l'aperçu
+ Les dossiers qui ne sont pas de sa région ne sont pas disponibles
+ """
+ self._test_correspondant_rh()
+ self._test_acces_ok(self.url)
+ dossiers = self.client.get(self.url).context['dossiers']
+ self.assertEqual(len(dossiers), 1)
+ self._test_acces_ok(self.url2)
+ dossiers = self.client.get(self.url2).context['dossiers']
+ self.assertEqual(len(dossiers), 0)
+
+ def test_administrateur_regional(self):
+ """
+ Un administrateur peut voir l'aperçu de l'employé
+ Les dossiers qui ne sont pas de sa région ne sont pas disponibles
+ """
+ self._test_administrateur_regional()
+ self._test_acces_ok(self.url)
+ dossiers = self.client.get(self.url).context['dossiers']
+ self.assertEqual(len(dossiers), 1)
+ self._test_acces_ok(self.url2)
+ dossiers = self.client.get(self.url2).context['dossiers']
+ self.assertEqual(len(dossiers), 0)
+
+ def test_directeur_bureau(self):
+ """
+ Un directeur de bureau peut voir l'aperçu employé
+ Les dossiers qui ne sont pas de sa région ne sont pas disponibles
+ """
+ self._test_directeur_bureau()
+ dossiers = self.client.get(self.url).context['dossiers']
+ self.assertEqual(len(dossiers), 1)
+ self._test_acces_ok(self.url2)
+ dossiers = self.client.get(self.url2).context['dossiers']
+ self.assertEqual(len(dossiers), 0)
+
+ def test_drh(self):
+ """
+ Un DRH peut voir tous les aperçus d'employés avec tous les dossiers
+ """
+ self._test_drh()
+ self._test_acces_ok(self.url)
+ self._test_acces_ok(self.url2)
+ dossiers = self.client.get(self.url).context['dossiers']
+ self.assertEqual(len(dossiers), 1)
+ dossiers = self.client.get(self.url2).context['dossiers']
+ self.assertEqual(len(dossiers), 1)
+
+ def test_drh2(self):
+ """
+ Un DRH (2ieme niveau) peut voir tous les aperçus d'employés avec tous les dossiers
+ """
+ self._test_drh2()
+ self._test_acces_ok(self.url)
+ self._test_acces_ok(self.url2)
+ dossiers = self.client.get(self.url).context['dossiers']
+ self.assertEqual(len(dossiers), 1)
+ dossiers = self.client.get(self.url2).context['dossiers']
+ self.assertEqual(len(dossiers), 1)
+
+ def _test_grp_accior(self):
+ """
+ Un membre de l'ACCIOR ne peut pas voir les aperçus d'employés
+ """
+ self._test_grp_accior()
+ self._test_acces_ko(self.url)
+
+ def _test_grp_abf(self):
+ """
+ Un membre de l'ABF ne peut pas voir les aperçus d'employés
+ """
+ self._test_grp_abf(self)
+ self._test_acces_ko(self.url)
+
+ def _test_grp_haute_direction(self):
+ """
+ Un membre de la haute direction ne peut pas voir les aperçus d'employés
+ """
+ self._test_grp_haute_direction()
+ self._test_acces_ko(self.url)
+
+ def _test_grp_service_utilisateurs(self):
+ """
+ Un membre du groupe service utilisateur ne pas pas voir les aperçus d'employés
"""
self._test_grp_service_utilisateurs()
self._test_acces_ko(self.url)