"""
self._test_grp_service_utilisateurs()
self._test_acces_ko(self.url)
+
+
+class EmployeListTest(RhTest):
+ """
+ Test la suppression d'un employé
+ """
+
+ def setUp(self):
+ super(EmployeListTest, self).setUp()
+ self.url = reverse('admin:rh_employe_changelist')
+
+ def test_anonyme(self):
+ """
+ Un anonyme ne peut pas voir les employés
+ """
+ self._test_anonyme()
+ self._test_acces_ko(self.url)
+
+ def test_correspondant_rh(self):
+ """
+ Un correspodant RH peut voir les employés
+ """
+ self._test_correspondant_rh()
+ self._test_acces_ok(self.url)
+
+ def test_administrateur_regional(self):
+ """
+ Un administrateur peut voir les employés
+ """
+ self._test_administrateur_regional()
+ self._test_acces_ok(self.url)
+
+ def test_directeur_bureau(self):
+ """
+ Un directeur de bureau peut voir les employés
+ """
+ self._test_directeur_bureau()
+ self._test_acces_ok(self.url)
+
+ def test_drh(self):
+ """
+ Un DRH peut voir les employés
+ """
+ self._test_drh()
+ self._test_acces_ok(self.url)
+
+ def test_drh2(self):
+ """
+ Un DRH (2ieme niveau) peut voir les employés
+ """
+ self._test_drh2()
+ self._test_acces_ok(self.url)
+
+ def _test_grp_accior(self):
+ """
+ Un membre de l'ACCIOR ne peut pas voir les 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 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 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 voir les employés
+ """
+ self._test_grp_service_utilisateurs()
+ self._test_acces_ko(self.url)
-# -*- coding: utf-8 -*-
-import datetime
-from django.core.urlresolvers import reverse
-from django.test.client import RequestFactory, Client
-from django.contrib.auth.models import User
-from project.rh import groups
-from auf.django.references import models as ref
-from django.test import TestCase
-from project.rh import models as rh
-
-
-class RhTest(TestCase):
-
- def setUp(self):
- """
- POSTES
- ======
- self.poste_cnf_ngaoundere
- self.poste_cnf_bangui
- self.poste_bap_bureau
- self.poste_bap_ifi
-
- EMPLOYES
- ========
- self.employe_cnf_ngaoundere
- self.employe_cnf_bangui
- self.employe_bap_bureau
- self.employe_bap_ifi
-
- USERS DJANGO
- ============
- cf. EMPLOYES
-
- DOSSIERS
- ========
- self.dossier_cnf_ngaoundere
- self.dossier_cnf_bangui
- self.dossier_bap_bureau
- self.dossier_bap_ifi
-
-
- """
- self.factory = RequestFactory()
- self.password = "0000"
- today = datetime.datetime.now()
- #########################
- # Régions / Implantations
- #########################
- self.REGION_ACGL = ref.Region.objects.get(id=1)
- self.IMPLANTATION_ACGL_CNF_NGAOUNDERE = ref.Implantation.objects.get(id=90)
- self.IMPLANTATION_ACGL_CNF_BANGUI = ref.Implantation.objects.get(id=85)
-
- self.REGION_BAP = ref.Region.objects.get(id=4)
- self.IMPLANTATION_BAP_BUREAU = ref.Implantation.objects.get(id=51)
- self.IMPLANTATION_BAP_IFI = ref.Implantation.objects.get(id=55)
-
-
- ##########
- # Employés
- ##########
- self.employe_cnf_ngaoundere = rh.Employe(
- nom="Employé",
- prenom="ngaoundere",
- )
- self.employe_cnf_ngaoundere.save()
- self.employe_cnf_bangui = rh.Employe(
- nom="Employé",
- prenom="bangui",
- )
- self.employe_cnf_bangui.save()
- self.employe_bap_bureau = rh.Employe(
- nom="Employé",
- prenom="BAP bureau",
- )
- self.employe_bap_bureau.save()
- self.employe_bap_ifi = rh.Employe(
- nom="Employé",
- prenom="BAP IFI",
- )
- self.employe_bap_ifi.save()
-
- ##############
- # Users Django
- ##############
- for idx, e in enumerate(rh.Employe.objects.all()):
- email = u"%s@test.auf" % idx
- u = User(first_name=e.prenom,
- is_staff=True,
- last_name=e.nom,
- username=email,
- email=email)
- u.set_password(self.password)
- u.save()
- auth = ref.Authentification(
- courriel=u.email,
- motdepasse=u.password,
- actif=1,
- )
- auth.id_id = e.id
- auth.save()
-
- ######
- # ACGL
- ######
- self.poste_cnf_ngaoundere = rh.Poste(nom="poste à NGAOUNDERE",
- implantation=self.IMPLANTATION_ACGL_CNF_NGAOUNDERE)
-
- self.poste_cnf_bangui = rh.Poste(nom="poste à BANGUI",
- implantation=self.IMPLANTATION_ACGL_CNF_BANGUI)
-
- self.poste_cnf_ngaoundere.save()
- self.poste_cnf_bangui.save()
-
- self.dossier_cnf_ngaoundere = rh.Dossier(poste=self.poste_cnf_ngaoundere,
- employe=self.employe_cnf_ngaoundere, date_debut=today)
- self.dossier_cnf_bangui = rh.Dossier(poste=self.poste_cnf_bangui,
- employe=self.employe_cnf_bangui, date_debut=today)
-
- self.dossier_cnf_ngaoundere.save()
- self.dossier_cnf_bangui.save()
-
- #####
- # BAP
- #####
- self.poste_bap_bureau = rh.Poste(nom="poste au Bureau BAP",
- implantation=self.IMPLANTATION_BAP_BUREAU)
- self.poste_bap_ifi = rh.Poste(nom="poste à l'IFI",
- implantation=self.IMPLANTATION_BAP_IFI)
-
- self.poste_bap_bureau.save()
- self.poste_bap_ifi.save()
-
- self.dossier_bap_bureau = rh.Dossier(poste=self.poste_bap_bureau,
- employe=self.employe_bap_bureau, date_debut=today)
- self.dossier_bap_ifi = rh.Dossier(poste=self.poste_bap_ifi,
- employe=self.employe_bap_ifi, date_debut=today)
-
- self.dossier_bap_bureau.save()
- self.dossier_bap_ifi.save()
-
- def _test_acces_ok(self, url):
- response = self.client.get(url, follow=True)
- self.assertEqual(response.status_code, 200)
- self.assertEqual('next' in response.context, False)
-
-
-class PortalTest(RhTest):
-
- def test_anonyme_frontend(self):
- response = self.client.get('/')
- self.assertEqual(response.status_code, 200)
-
- def test_anonyme_backend(self):
- admin_index_url = reverse('admin:index')
- response = self.client.get(admin_index_url)
- self.assertEqual(response.context['next'], admin_index_url)
-
- def test_logged_sans_groupe_backend(self):
- email = "0@test.auf"
- admin_index_url = reverse('admin:index')
- self.client.login(username=email, password=self.password)
- response = self.client.get(admin_index_url)
- self.assertEqual(response.context['next'], admin_index_url)
-
-class EmployeAddTest(RhTest):
- """
- Test l'ajout d'un employé
- """
-
- def test_correspondant_rh(self):
- """
- Un correspodant RH peut ajouter un employé
- """
- 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}
- url = reverse('admin:rh_employe_add')
- self.assertTrue(self.client.login(**credentials), "login failed")
- self._test_acces_ok(url)
-
- def test_administrateur_regional(self):
- """
- Un administrateur peut ajouter un employé
- """
- 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}
- url = reverse('admin:rh_employe_add')
- self.assertTrue(self.client.login(**credentials), "login failed")
- self._test_acces_ok(url)
-
- def test_directeur_bureau(self):
- """
- Un directeur de bureau peut ajouter un employé
- """
- email = "0@test.auf"
-
- u = User.objects.get(email=email)
- groups.grp_directeurs_bureau.user_set.add(u)
- groups.grp_directeurs_bureau.save()
-
- credentials = {'username': email, 'password': self.password}
- url = reverse('admin:rh_employe_add')
- self.assertTrue(self.client.login(**credentials), "login failed")
- self._test_acces_ok(url)
-
- def test_drh(self):
- """
- Un DRH peut ajouter un employé
- """
- email = "0@test.auf"
-
- u = User.objects.get(email=email)
- groups.grp_drh.user_set.add(u)
- groups.grp_drh.save()
-
- credentials = {'username': email, 'password': self.password}
- url = reverse('admin:rh_employe_add')
- self.assertTrue(self.client.login(**credentials), "login failed")
- self._test_acces_ok(url)
-
- def test_drh2(self):
- """
- Un DRH (2ieme niveau) peut ajouter un employé
- """
- email = "0@test.auf"
-
- u = User.objects.get(email=email)
- groups.grp_drh2.user_set.add(u)
- groups.grp_drh2.save()
-
- credentials = {'username': email, 'password': self.password}
- url = reverse('admin:rh_employe_add')
- self.assertTrue(self.client.login(**credentials), "login failed")
- self._test_acces_ok(url)
+from project.rh.test.employe import *