# -*- coding: utf-8 -*-
+from decimal import Decimal
from django.core.urlresolvers import reverse
+from django.contrib.auth.models import User
+from project.dae import models as dae
from project.dae.test.common import DaeTest
+from project.dae.forms import PosteForm
+
+class PosteFormTest(DaeTest):
+ """
+ Test le le formulaire de poste
+ """
+ def test_add(self):
+ """
+ Test PosteForm sans instance
+ """
+
+ class Request:
+ user = None
+
+ request = Request()
+ request.user = User.objects.get(email='0@test.auf')
+ post = {
+ 'nom' : 'nom',
+ 'regime_travail_nb_heure_semaine' : '35',
+ 'indemn_expat_min' : '110',
+ 'indemn_expat_max' : '210',
+ 'type_intervention': dae.POSTE_ACTION[0][0],
+ 'service' : self.srv_info.id,
+ 'implantation' : self.IMPLANTATION_ACGL_CNF_NGAOUNDERE.id,
+ 'indemn_fct_min' : '120',
+ 'indemn_fct_max' : '220',
+ 'appel' : dae.POSTE_APPEL_CHOICES[0][0],
+ 'regime_travail': '100',
+ 'type_poste': self.type_poste_tech.id,
+ 'responsable' : self.poste_cnf_ngaoundere.id,
+ 'devise_min' : self.devise_cad.id,
+ 'devise_max' : self.devise_cad.id,
+ 'classement_min' : self.classement_p_5_0.id,
+ 'classement_max' : self.classement_p_5_10.id,
+ 'valeur_point_min' : self.vp_cad_ngaoundere_2012.id,
+ 'valeur_point_max' : self.vp_cad_ngaoundere_2012.id,
+ 'salaire_min' : '130',
+ 'salaire_max' : '230',
+ 'autre_min' : '150',
+ 'autre_max' : '250',
+ 'charges_patronales_min' : '160',
+ 'charges_patronales_max' : '260',
+ }
+ expect = {
+ 'nom' : 'nom',
+ 'regime_travail_nb_heure_semaine' : Decimal('35'),
+ 'indemn_expat_min' : Decimal('110'),
+ 'indemn_expat_max' : Decimal('210'),
+ 'type_intervention': dae.POSTE_ACTION[0][0],
+ 'service' : self.srv_info,
+ 'implantation' : self.IMPLANTATION_ACGL_CNF_NGAOUNDERE,
+ 'indemn_fct_min' : Decimal('120'),
+ 'indemn_fct_max' : Decimal('220'),
+ 'appel' : dae.POSTE_APPEL_CHOICES[0][0],
+ 'regime_travail': Decimal('100'),
+ 'type_poste': self.type_poste_tech,
+ 'responsable' : self.poste_cnf_ngaoundere,
+ 'devise_min' : self.devise_cad,
+ 'devise_max' : self.devise_cad,
+ 'classement_min' : self.classement_p_5_0,
+ 'classement_max' : self.classement_p_5_10,
+ 'valeur_point_min' : self.vp_cad_ngaoundere_2012,
+ 'valeur_point_max' : self.vp_cad_ngaoundere_2012,
+ 'salaire_min' : Decimal('130'),
+ 'salaire_max' : Decimal('230'),
+ 'autre_min' : Decimal('150'),
+ 'autre_max' : Decimal('250'),
+ 'charges_patronales_min' : Decimal('160'),
+ 'charges_patronales_max' : Decimal('260'),
+ }
+ form = PosteForm(post, request=request)
+ form.is_valid()
+ self.assertTrue(form.is_valid())
+
+ form.save()
+
+ poste = dae.Poste.objects.get(nom=post['nom'])
+ for k, expect_value in expect.items():
+ self.assertEqual(getattr(poste, k), expect_value)
class PosteAddFromRHTest(DaeTest):
"""
def setUp(self):
"""
+ DEVISES
+ =======
+ self.devise_cad
+
+ CLASSEMENTS
+ ===========
+ self.classement_p_5_0
+ self.classement_p_5_10
+
+ VALEUR POINTS
+ =============
+ self.vp_cad_scm_2012
+
+ SERVICES
+ ========
+ self.srv_info
+
+ CATEGORIE EMPLOI
+ ================
+ self.cat_emploi_pro
+
+ FAMILLE PROFESSIONNELLE
+ =======================
+ self.famille_cadre
+
+ TYPE POSTES
+ ===========
+ self.type_poste_tech
+
GROUPES
=======
self.grp_correspondants_rh
"""
+ #########
+ # DEVISES
+ #########
+ self.devise_cad = rh.Devise(code="CAD", nom="CAD")
+ self.devise_cad.save()
+
+ #############
+ # CLASSEMENTS
+ #############
+ self.classement_p_5_0 = rh.Classement(type="P", echelon=5, degre=1, coefficient=5.01)
+ self.classement_p_5_0.save()
+
+ self.classement_p_5_10 = rh.Classement(type="P", echelon=5, degre=10, coefficient=5.10)
+ self.classement_p_5_10.save()
+
+ ##########
+ # SERVICES
+ ##########
+ self.srv_info = rh.Service(nom="info")
+ self.srv_info.save()
+
+ ###################
+ # CATEGORIES EMPLOI
+ ###################
+ self.cat_emploi_pro = rh.CategorieEmploi(nom="pro")
+ self.cat_emploi_pro.save()
+
+ #################
+ # FAMILLES EMPLOI
+ #################
+ self.famille_cadre = rh.FamilleProfessionnelle(nom="cadre")
+ self.famille_cadre.save()
+
+ #############
+ # TYPES POSTE
+ #############
+ self.type_poste_tech = rh.TypePoste(nom="tech",
+ categorie_emploi=self.cat_emploi_pro,
+ famille_professionnelle=self.famille_cadre)
+ self.type_poste_tech.save()
+
+ #########
+ # GROUPES
+ #########
self.grp_correspondants_rh = Group(name=groups.CORRESPONDANT_RH)
self.grp_correspondants_rh.save()
self.IMPLANTATION_BAP_BUREAU = ref.Implantation.objects.get(id=51)
self.IMPLANTATION_BAP_IFI = ref.Implantation.objects.get(id=55)
+ #############
+ #VALEUR POINT
+ #############
+ self.vp_cad_ngaoundere_2012 = rh.ValeurPoint(valeur=1000.1,
+ devise=self.devise_cad,
+ implantation=self.IMPLANTATION_ACGL_CNF_NGAOUNDERE,
+ annee=2012)
+ self.vp_cad_ngaoundere_2012.save()
+
+
##########
# Employés