2f173bf0b09a3e5bd430c1ebd7f0e3e25029eea8
[auf_django_saml.git] / auf / django / saml / tests / common.py
1 # -*- coding: utf-8 -*-
2
3 import urllib
4 import urlparse
5
6 from django.test import TestCase
7 from django.test.client import Client
8
9 from django.contrib.auth.models import User
10
11 from auf.django.references import models as ref
12
13 from .middleware import LOGGED_USER_EMAIL, ANONYMOUS_KEY, LOGGED_USER_USERNAME
14
15
16 class CommonTest(TestCase):
17
18 def setUp(self):
19 self.client = Client()
20
21 def anonymize(self, url):
22 """
23 Ajoute un flag dans l'URL pour fonctionner comme utilisateur non
24 authentifié.
25 """
26 params = {ANONYMOUS_KEY: 1, }
27 url_parts = urlparse.urlsplit(url)
28 qs = urlparse.parse_qs(url_parts[4])
29 qs.update(params)
30 return "%s?%s" % (url, urllib.urlencode(qs), )
31
32 def redirectize(self, url):
33 """
34 Extrait de l'URL le protocole et fqdn
35 """
36 url_parts = urlparse.urlsplit(url)
37 if url_parts[3]:
38 return "%s?%s" % (url_parts[2], url_parts[3], )
39 else:
40 return url_parts[2]
41
42 def creer_employe(self):
43 """
44 Créer un employé correspondant à la personne connecté dans le
45 MockMiddleware.
46 """
47 ref.Employe(
48 implantation_id=1,
49 implantation_physique_id=1,
50 service_id=1,
51 courriel=LOGGED_USER_EMAIL).save()
52
53 def creer_user(self):
54 """
55 Créer un user Django staff correspondant à la personne connecté dans le
56 MockMiddleware.
57 """
58 User(
59 is_staff=True,
60 username=LOGGED_USER_USERNAME,
61 email=LOGGED_USER_EMAIL).save()