Blame view

src/user_manager/tests.py 4.96 KB
3df2d31a   haribo   #3430 : dates are...
1
from django.test import TestCase
ddf59dd4   haribo   Remaniement :
2
from common.models import *
fd99569d   haribo   Date: 22/06/2016
3
from django.contrib.auth.models import User
3df2d31a   haribo   #3430 : dates are...
4

fd99569d   haribo   Date: 22/06/2016
5
6
7
8
9
10
11
12
13
from pprint import pprint

class UserManagerTests(TestCase):

    def setUp(self):
        UserLevel.objects.create()
        Country.objects.create()

    def test_creation(self):
4b59e304   Etienne Pallier   bugfix user test_...
14
15
16
17
18
        self.assertEqual(Country.objects.count(), 1, "There should be 1 Country")
        self.assertEqual(UserLevel.objects.count(), 1, "There should be 1 UserLevel")
        self.assertEqual(PyrosUser.objects.count(), 0, "There should be no User")
        #print("country is", Country.objects.count())
        print("country id is", Country.objects.all()[0].id)
fd99569d   haribo   Date: 22/06/2016
19
20
21
22
23
        path = "/user_manager/creation_validate"
        response = self.client.post(path, {"email": "toto@titi.fr", "password": "aze", "password_confirm": "aze",
                                           "first_name": "toto", "last_name": "titi", "tel": "0123456789",
                                           "laboratory": "IRAP", "address": "ici"})
        self.assertTrue("success" in response.context.keys(), "There should be a success")
53787d30   Jeremy   Alert now inherit...
24
        self.assertEqual(PyrosUser.objects.count(), 1, "There should be one User")
4b59e304   Etienne Pallier   bugfix user test_...
25
26
27
        #self.assertEqual(PyrosUser.objects.count(), 1, "There should be one PyrosUser")
        self.assertEqual(PyrosUser.objects.all()[0].first_name, 'toto')
        self.assertEqual(PyrosUser.objects.all()[0].email, 'toto@titi.fr')
fd99569d   haribo   Date: 22/06/2016
28
29

    def test_login(self):
4b59e304   Etienne Pallier   bugfix user test_...
30
31
32
33
34
        self.assertEqual(Country.objects.count(), 1, "There should be 1 Country")
        self.assertEqual(UserLevel.objects.count(), 1, "There should be 1 UserLevel")
        self.assertEqual(PyrosUser.objects.count(), 0, "There should be no User")
        
        # Create user
fd99569d   haribo   Date: 22/06/2016
35
36
37
38
        path = "/user_manager/creation_validate"
        response = self.client.post(path, {"email": "toto@titi.fr", "password": "aze", "password_confirm": "aze",
                                "first_name": "toto", "last_name": "titi", "tel": "0123456789",
                                "laboratory": "IRAP", "address": "ici"})
4b59e304   Etienne Pallier   bugfix user test_...
39
40
41
42
43
44
45
46
47
48
        self.assertTrue("success" in response.context.keys(), "There should be a success")
        self.assertEqual(PyrosUser.objects.count(), 1, "There should be one User")
        
        # Activate user
        # La variable qui régit l'activation d'un compte est contenue dans pyrosUsers 
        # et s'appelle is_active, il suffit de passer cette variable à True
        current_user = PyrosUser.objects.all()[0]
        current_user.is_active=True
        current_user.save()
        self.assertEqual(PyrosUser.objects.all()[0].is_active, True, "user should be active")
fd99569d   haribo   Date: 22/06/2016
49

4b59e304   Etienne Pallier   bugfix user test_...
50
        # Log user
fd99569d   haribo   Date: 22/06/2016
51
52
53
54
        path = "/user_manager/login"
        response = self.client.post(path, {"email": "toto@titi.fr", "password": "aze"})

        """ Note that we use .has_key() because the login phase change the httpresponse context """
4b59e304   Etienne Pallier   bugfix user test_...
55
56
        #print(response.context)
        #self.assertIn("success", response.context, "There should be a success")
fd99569d   haribo   Date: 22/06/2016
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
        self.assertIn('_auth_user_id', self.client.session, "The user should be logged in")

    def test_wrong_email(self):
        path = "/user_manager/creation_validate"
        response = self.client.post(path, {"email": "toto@titi.fr", "password": "aze", "password_confirm": "aze",
                                "first_name": "toto", "last_name": "titi", "tel": "0123456789",
                                "laboratory": "IRAP", "address": "ici"})

        path = "/user_manager/login"
        response = self.client.post(path, {"email": "toto@tti.fr", "password": "aze"})
        self.assertIn("error", response.context.keys(), "There should be an error")
        self.assertNotIn('_auth_user_id', self.client.session, "There shouldn't be an authentified user")

    def test_wrong_password(self):
        path = "/user_manager/creation_validate"
        response = self.client.post(path, {"email": "toto@titi.fr", "password": "aze", "password_confirm": "aze",
                                "first_name": "toto", "last_name": "titi", "tel": "0123456789",
                                "laboratory": "IRAP", "address": "ici"})
        path = "/user_manager/login"
        response = self.client.post(path, {"email": "toto@titi.fr", "password": "azee"})
        self.assertIn("error", response.context.keys(), "There should be an error")
        self.assertNotIn('_auth_user_id', self.client.session, "There shouldn't be an authentified user")

    def test_logout(self):
        path = "/user_manager/creation_validate"
        response = self.client.post(path, {"email": "toto@titi.fr", "password": "aze", "password_confirm": "aze",
                                           "first_name": "toto", "last_name": "titi", "tel": "0123456789",
                                           "laboratory": "IRAP", "address": "ici"})
        self.client.login(username="toto@titi.fr", password="aze")
        path = "/user_manager/logout"
        self.client.get(path)
        self.assertNotIn('_auth_user_id', self.client.session, "There shouldn't be an authentified user")