tests DAE poste
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 26 Jul 2012 15:25:31 +0000 (11:25 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 26 Jul 2012 15:25:31 +0000 (11:25 -0400)
project/dae/decorators.py
project/dae/forms.py
project/dae/test/__init__.py [new file with mode: 0644]
project/dae/test/common.py [new file with mode: 0644]
project/dae/test/poste.py [new file with mode: 0644]
project/dae/tests.py

index 04f05cb..bb20b84 100644 (file)
@@ -53,13 +53,15 @@ def poste_dans_ma_region_ou_service(fn):
             return fn(request, *args, **kwargs)
 
         # Rechercher dans la demande, la région ou le service associé
-        try:
+        if '-' in key:
             source, id = key.split('-')
             if source == 'dae':
                 Poste = dae.Poste
-            if source == 'rh':
+            elif source == 'rh':
                 Poste = rh.Poste
-        except:
+            else:
+                raise Exception("source inconnue : dae ou rh")
+        else:
             id = key
             Poste = dae.Poste
         postes = Poste.objects.ma_region_ou_service(user).filter(id=id)
index f06683d..28de814 100644 (file)
@@ -178,9 +178,12 @@ def label_poste_display(poste):
 
     nom = poste.nom
     
-    label = u"%s %s - %s [%s]" % (
-        annee, nom, poste.type_poste.categorie_emploi.nom, poste.id
-    )
+    try:
+        label = u"%s %s - %s [%s]" % (
+            annee, nom, poste.type_poste.categorie_emploi.nom, poste.id
+        )
+    except:
+        label = unicode(poste)
     return label
 
 
diff --git a/project/dae/test/__init__.py b/project/dae/test/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/dae/test/common.py b/project/dae/test/common.py
new file mode 100644 (file)
index 0000000..887853b
--- /dev/null
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+
+from project.rh.test.common import RhTest
+
+class DaeTest(RhTest):
+
+    def setUp(self):
+        super(DaeTest, self).setUp()
diff --git a/project/dae/test/poste.py b/project/dae/test/poste.py
new file mode 100644 (file)
index 0000000..0acb336
--- /dev/null
@@ -0,0 +1,87 @@
+# -*- coding: utf-8 -*-
+
+from django.core.urlresolvers import reverse
+from project.dae.test.common import DaeTest
+
+class PosteAddFromRHTest(DaeTest):
+    """
+    Test l'ajout d'un poste
+    """
+    url = reverse('admin:rh_poste_add')
+
+    def setUp(self):
+        super(PosteAddFromRHTest, self).setUp()
+        key = "rh-%s" % self.poste_cnf_ngaoundere.id
+        self.url = reverse('poste', kwargs={'key': key})
+
+    def test_anonyme(self):
+        """
+        Un anonyme ne peut pas créer d'poste
+        """
+        self._test_anonyme()
+        self._test_acces_ko(self.url)
+
+    def test_correspondant_rh(self):
+        """
+        Un correspodant RH peut ajouter un poste
+        """
+        self._test_correspondant_rh()
+        self._test_acces_ok(self.url)
+
+    def test_administrateur_regional(self):
+        """
+        Un administrateur peut ajouter un poste
+        """
+        self._test_administrateur_regional()
+        self._test_acces_ok(self.url)
+
+    def test_directeur_bureau(self):
+        """
+        Un directeur de bureau peut ajouter un poste
+        """
+        self._test_directeur_bureau()
+        self._test_acces_ok(self.url)
+
+    def test_drh(self):
+        """
+        Un DRH peut ajouter un poste
+        """
+        self._test_drh()
+        self._test_acces_ok(self.url)
+
+    def test_drh2(self):
+        """
+        Un DRH (2ieme niveau) peut ajouter un poste
+        """
+        self._test_drh2()
+        self._test_acces_ok(self.url)
+
+    def _test_grp_accior(self):
+        """
+        Un membre de l'ACCIOR ne peut pas ajouter un poste
+        """
+        self._test_grp_accior()
+        self._test_acces_ko(self.url)
+
+    def _test_grp_abf(self):
+        """
+        Un membre de l'ABF ne peut pas ajouter un poste
+        """
+        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 ajouter un poste
+        """
+        self._test_grp_haute_direction()
+        self._test_acces_ko(self.url)
+
+    def _test_grp_service_utilisateurs(self):
+        """
+        Un membre du groupe service utilisateur ne peut pas ajouter un poste
+        """
+        self._test_grp_service_utilisateurs()
+        self._test_acces_ko(self.url)
+
+
index 2247054..fc582f0 100644 (file)
@@ -1,23 +1 @@
-"""
-This file demonstrates two different styles of tests (one doctest and one
-unittest). These will both pass when you run "manage.py test".
-
-Replace these with more appropriate tests for your application.
-"""
-
-from django.test import TestCase
-
-class SimpleTest(TestCase):
-    def test_basic_addition(self):
-        """
-        Tests that 1 + 1 always equals 2.
-        """
-        self.failUnlessEqual(1 + 1, 2)
-
-__test__ = {"doctest": """
-Another way to test that 1 + 1 is equal to 2.
-
->>> 1 + 1 == 2
-True
-"""}
-
+from project.dae.test.poste import *