|
@@ -1,15 +1,15 @@
|
1
|
1
|
# -*- coding: utf-8 -*-
|
2
|
|
-import transaction
|
3
|
2
|
|
4
|
|
-from tracim.tests import eq_
|
|
3
|
+import transaction
|
5
|
4
|
from tracim.tests import BaseTest
|
6
|
|
-
|
7
|
5
|
from tracim.models.auth import User
|
8
|
6
|
|
9
|
7
|
|
10
|
8
|
class TestUserModel(BaseTest):
|
11
|
|
-
|
12
|
|
- def test_create(self):
|
|
9
|
+ """
|
|
10
|
+ Test for User model
|
|
11
|
+ """
|
|
12
|
+ def test_unit__create__ok__nominal_case(self):
|
13
|
13
|
self.session.flush()
|
14
|
14
|
transaction.commit()
|
15
|
15
|
name = 'Damien'
|
|
@@ -23,13 +23,49 @@ class TestUserModel(BaseTest):
|
23
|
23
|
self.session.flush()
|
24
|
24
|
transaction.commit()
|
25
|
25
|
|
26
|
|
- new_user = self.session.query(User).filter(User.display_name==name).one()
|
|
26
|
+ new_user = self.session.query(User).filter(User.display_name == name).one() # nopep8
|
|
27
|
+
|
|
28
|
+ assert new_user.display_name == name
|
|
29
|
+ assert new_user.email == email
|
|
30
|
+ assert new_user.email_address == email
|
|
31
|
+
|
|
32
|
+ def test_unit__password__ok__nominal_case(self):
|
|
33
|
+ """
|
|
34
|
+ Check if password can be set and hashed password
|
|
35
|
+ can be retrieve. Verify if hashed password is not
|
|
36
|
+ same as password.
|
|
37
|
+ """
|
|
38
|
+ name = 'Damien'
|
|
39
|
+ email = 'tracim@trac.im'
|
|
40
|
+ password = 'my_secure_password'
|
|
41
|
+
|
|
42
|
+ user = User()
|
|
43
|
+ user.display_name = name
|
|
44
|
+ user.email = email
|
|
45
|
+ assert user._password is None
|
|
46
|
+ user.password = password
|
|
47
|
+ assert user._password is not None
|
|
48
|
+ assert user._password != password
|
|
49
|
+ assert user.password == user._password
|
|
50
|
+
|
|
51
|
+ def test__unit__validate_password__ok__nominal_case(self):
|
|
52
|
+ """
|
|
53
|
+ Check if validate_password can correctly check if password i the correct
|
|
54
|
+ one
|
|
55
|
+ """
|
27
|
56
|
|
28
|
|
- eq_(new_user.display_name, name)
|
29
|
|
- eq_(new_user.email, email)
|
30
|
|
- eq_(new_user.email_address, email)
|
|
57
|
+ name = 'Damien'
|
|
58
|
+ email = 'tracim@trac.im'
|
|
59
|
+ password = 'my_secure_password'
|
|
60
|
+
|
|
61
|
+ user = User()
|
|
62
|
+ user.display_name = name
|
|
63
|
+ user.email = email
|
|
64
|
+ user.password = password
|
|
65
|
+
|
|
66
|
+ assert user.validate_password(password) is True
|
31
|
67
|
|
32
|
|
- def test_null_password(self):
|
|
68
|
+ def test_unit__validate_password__false__null_password(self):
|
33
|
69
|
# Check bug #70 fixed
|
34
|
70
|
# http://tracim.org/workspaces/4/folders/5/threads/70
|
35
|
71
|
|
|
@@ -40,4 +76,49 @@ class TestUserModel(BaseTest):
|
40
|
76
|
user.display_name = name
|
41
|
77
|
user.email = email
|
42
|
78
|
|
43
|
|
- eq_(False, user.validate_password(None))
|
|
79
|
+ assert user.validate_password('') is False
|
|
80
|
+
|
|
81
|
+ def test_unit__validate_password__false__bad_password(self):
|
|
82
|
+ """
|
|
83
|
+ Check if validate_password can correctly check if password is
|
|
84
|
+ an uncorrect correct one
|
|
85
|
+ """
|
|
86
|
+ name = 'Damien'
|
|
87
|
+ email = 'tracim@trac.im'
|
|
88
|
+ password = 'my_secure_password'
|
|
89
|
+
|
|
90
|
+ user = User()
|
|
91
|
+ user.display_name = name
|
|
92
|
+ user.email = email
|
|
93
|
+ user.password = password
|
|
94
|
+
|
|
95
|
+ assert user.validate_password('uncorrect_password') is False
|
|
96
|
+
|
|
97
|
+ def test_unit__repr__ok__nominal_case(self):
|
|
98
|
+ name = 'Damien'
|
|
99
|
+ email = 'tracim@trac.im'
|
|
100
|
+
|
|
101
|
+ user = User()
|
|
102
|
+ user.display_name = name
|
|
103
|
+ user.email = email
|
|
104
|
+
|
|
105
|
+ assert user.__repr__() == "<User: email='tracim@trac.im', display='Damien'>" # nopep8
|
|
106
|
+
|
|
107
|
+ def test_unit__unicode__ok__nominal_case(self):
|
|
108
|
+ name = 'Damien'
|
|
109
|
+ email = 'tracim@trac.im'
|
|
110
|
+
|
|
111
|
+ user = User()
|
|
112
|
+ user.display_name = name
|
|
113
|
+ user.email = email
|
|
114
|
+
|
|
115
|
+ assert user.__unicode__() == name
|
|
116
|
+
|
|
117
|
+ def test__unit__unicode__ok__no_display_name(self):
|
|
118
|
+
|
|
119
|
+ email = 'tracim@trac.im'
|
|
120
|
+
|
|
121
|
+ user = User()
|
|
122
|
+ user.email = email
|
|
123
|
+
|
|
124
|
+ assert user.__unicode__() == email
|