17
17
18
18
19
19
class TestUserDao (BaseTestCase ):
20
+ def setUp (self ):
21
+ super ().setUp ()
22
+
23
+ self .user = UserModel (** user2 )
24
+
20
25
def test_dao_create_user (self ):
21
26
dao = UserDAO ()
22
27
data = dict (
@@ -45,14 +50,7 @@ def test_dao_create_user(self):
45
50
def test_dao_confirm_registration_good_token (self ):
46
51
dao = UserDAO ()
47
52
48
- user = UserModel (
49
- name = user2 ["name" ],
50
- email = user2 ["email" ],
51
- username = user2 ["username" ],
52
- password = user2 ["password" ],
53
- terms_and_conditions_checked = user2 ["terms_and_conditions_checked" ],
54
- )
55
- db .session .add (user )
53
+ db .session .add (self .user )
56
54
db .session .commit ()
57
55
58
56
# Verify that user was inserted in database through DAO
@@ -75,14 +73,7 @@ def test_dao_confirm_registration_good_token(self):
75
73
def test_dao_confirm_registration_bad_token (self ):
76
74
dao = UserDAO ()
77
75
78
- user = UserModel (
79
- name = user2 ["name" ],
80
- email = user2 ["email" ],
81
- username = user2 ["username" ],
82
- password = user2 ["password" ],
83
- terms_and_conditions_checked = user2 ["terms_and_conditions_checked" ],
84
- )
85
- db .session .add (user )
76
+ db .session .add (self .user )
86
77
db .session .commit ()
87
78
88
79
# Verify that user was inserted in database through DAO
@@ -106,14 +97,7 @@ def test_dao_confirm_registration_bad_token(self):
106
97
def test_dao_confirm_registration_of_already_verified_user (self ):
107
98
dao = UserDAO ()
108
99
109
- user = UserModel (
110
- name = user2 ["name" ],
111
- email = user2 ["email" ],
112
- username = user2 ["username" ],
113
- password = user2 ["password" ],
114
- terms_and_conditions_checked = user2 ["terms_and_conditions_checked" ],
115
- )
116
- db .session .add (user )
100
+ db .session .add (self .user )
117
101
db .session .commit ()
118
102
119
103
# Verify that user was inserted in database through DAO
@@ -150,6 +134,114 @@ def test_dao_delete_only_user_admin(self):
150
134
(messages .USER_CANT_DELETE , HTTPStatus .BAD_REQUEST ), dao_result
151
135
)
152
136
137
+ def test_dao_delete_user (self ):
138
+ dao = UserDAO ()
139
+
140
+ db .session .add (self .user )
141
+ db .session .commit ()
142
+
143
+ # Verify that user was inserted in database through DAO
144
+ user = UserModel .query .filter_by (id = 2 ).first ()
145
+ self .assertIsNotNone (user )
146
+
147
+ # Verify email
148
+ token = generate_confirmation_token (user2 ["email" ])
149
+ result = dao .confirm_registration (token )
150
+ self .assertTrue (user .is_email_verified )
151
+
152
+ dao_result = dao .delete_user (2 )
153
+
154
+ user = UserModel .query .filter_by (id = 2 ).first ()
155
+ self .assertIsNone (user )
156
+ self .assertEqual (
157
+ (messages .USER_SUCCESSFULLY_DELETED , HTTPStatus .OK ), dao_result
158
+ )
159
+
160
+ def test_dao_delete_user_that_does_not_exist (self ):
161
+ dao = UserDAO ()
162
+
163
+ # Verify that user does not exist
164
+ before_delete_user = UserModel .query .filter_by (id = 2 ).first ()
165
+ self .assertIsNone (before_delete_user )
166
+
167
+ dao_result = dao .delete_user (2 )
168
+
169
+ self .assertEqual (
170
+ (messages .USER_DOES_NOT_EXIST , HTTPStatus .NOT_FOUND ), dao_result
171
+ )
172
+
173
+ def test_dao_get_user_by_email (self ):
174
+ dao = UserDAO ()
175
+
176
+ db .session .add (self .user )
177
+ db .session .commit ()
178
+
179
+ # Verify that user was inserted in database through DAO
180
+ user = UserModel .query .filter_by (email = user2 ["email" ]).first ()
181
+ self .assertIsNotNone (user )
182
+
183
+ user_with_given_email = dao .get_user_by_email (user2 ["email" ])
184
+ self .assertIsNotNone (user_with_given_email )
185
+ self .assertEqual (user_with_given_email , user )
186
+
187
+ def test_dao_get_user_by_username (self ):
188
+ dao = UserDAO ()
189
+
190
+ db .session .add (self .user )
191
+ db .session .commit ()
192
+
193
+ # Verify that user was inserted in database through DAO
194
+ user = UserModel .query .filter_by (email = user2 ["email" ]).first ()
195
+ self .assertIsNotNone (user )
196
+
197
+ user_with_given_username = dao .get_user_by_username (user2 ["username" ])
198
+ self .assertIsNotNone (user_with_given_username )
199
+ self .assertEqual (user_with_given_username , user )
200
+
201
+ def test_authenticate_user_by_email (self ):
202
+ dao = UserDAO ()
203
+
204
+ db .session .add (self .user )
205
+ db .session .commit ()
206
+
207
+ # Verify that user was inserted in database through DAO
208
+ before_delete_user = UserModel .query .filter_by (id = 2 ).first ()
209
+ self .assertIsNotNone (before_delete_user )
210
+
211
+ # Verify email
212
+ token = generate_confirmation_token (user2 ["email" ])
213
+ result = dao .confirm_registration (token )
214
+ self .assertTrue (self .user .is_email_verified )
215
+
216
+ dao_result = dao .authenticate (user2 ["email" ], user2 ["password" ])
217
+
218
+ self .assertIsNotNone (dao_result )
219
+ self .assertEqual (dao_result , self .user )
220
+
221
+ def test_change_password_with_incorrect_password (self ):
222
+ dao = UserDAO ()
223
+
224
+ db .session .add (self .user )
225
+ db .session .commit ()
226
+
227
+ # Verify that user was inserted in database through DAO
228
+ before_delete_user = UserModel .query .filter_by (id = 2 ).first ()
229
+ self .assertIsNotNone (before_delete_user )
230
+
231
+ # Verify email
232
+ token = generate_confirmation_token (user2 ["email" ])
233
+ result = dao .confirm_registration (token )
234
+ self .assertTrue (self .user .is_email_verified )
235
+
236
+ data = dict (current_password = "wrong password" , new_password = "new password" )
237
+ dao_result = dao .change_password (user_id = 2 , data = data )
238
+
239
+ self .assertIsNotNone (dao_result )
240
+ self .assertEqual (
241
+ (messages .USER_ENTERED_INCORRECT_PASSWORD , HTTPStatus .BAD_REQUEST ),
242
+ dao_result ,
243
+ )
244
+
153
245
def test_get_achievements (self ):
154
246
dao = UserDAO ()
155
247
0 commit comments