Blame view

src/user_manager/tests.py 6.53 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
        #print(response.context)
6b16badb   Quentin Durand   Fix unitests + ne...
56
        self.assertTrue(response.context.get("success"))
fd99569d   haribo   Date: 22/06/2016
57
        self.assertIn('_auth_user_id', self.client.session, "The user should be logged in")
6b16badb   Quentin Durand   Fix unitests + ne...
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

    def test_login_not_active(self):
        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
        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")
        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.save()
        self.assertEqual(PyrosUser.objects.all()[0].is_active, False, "user should not be active")

        # Log user
        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 """
        # print(response.context)
        self.assertFalse(response.context.get("success"))
        self.assertNotIn('_auth_user_id', self.client.session, "The user should be logged in")
fd99569d   haribo   Date: 22/06/2016
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117

    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")