Skip to content

Commit 36bd490

Browse files
committed
Make usage of force_login in tests
Also remove deprecation warning regarding UnsaltedMD5PasswordHasher.
1 parent bc1dbfe commit 36bd490

File tree

4 files changed

+37
-41
lines changed

4 files changed

+37
-41
lines changed

tests/testapp/fixtures/comment_tests.json

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,5 @@
3737
"author" : 2,
3838
"headline" : "Dog Bites Man"
3939
}
40-
},
41-
42-
{
43-
"model" : "auth.user",
44-
"pk" : 100,
45-
"fields" : {
46-
"username" : "normaluser",
47-
"password" : "34ea4aaaf24efcbb4b30d27302f8657f",
48-
"first_name": "Joe",
49-
"last_name": "Normal",
50-
"email": "[email protected]"
51-
}
5240
}
5341
]

tests/testapp/tests/__init__.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515

1616
@override_settings(
17-
PASSWORD_HASHERS=('django.contrib.auth.hashers.UnsaltedMD5PasswordHasher',),
17+
PASSWORD_HASHERS=('django.contrib.auth.hashers.MD5PasswordHasher',),
1818
ROOT_URLCONF='testapp.urls_default',
1919
)
2020
class CommentTestCase(TestCase):
@@ -23,6 +23,16 @@ class CommentTestCase(TestCase):
2323
"""
2424
fixtures = ["comment_tests"]
2525

26+
@classmethod
27+
def setUpTestData(cls):
28+
super().setUpTestData()
29+
cls.user = User.objects.create(
30+
username="normaluser",
31+
first_name="Joe",
32+
last_name="Normal",
33+
34+
)
35+
2636
def createSomeComments(self):
2737
# Two anonymous comments on two different objects
2838
c1 = Comment.objects.create(

tests/testapp/tests/test_comment_views.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,16 +172,15 @@ def testPostAsAuthenticatedUser(self):
172172
a = Article.objects.get(pk=1)
173173
data = self.getValidData(a)
174174
data['name'] = data['email'] = ''
175-
self.client.login(username="normaluser", password="normaluser")
175+
self.client.force_login(self.user)
176176
response = self.client.post("/post/", data, REMOTE_ADDR="1.2.3.4")
177177
self.assertEqual(response.status_code, 302)
178178
self.assertEqual(Comment.objects.count(), 1)
179179
c = Comment.objects.first()
180180
self.assertEqual(c.ip_address, "1.2.3.4")
181-
u = User.objects.get(username='normaluser')
182-
self.assertEqual(c.user, u)
183-
self.assertEqual(c.user_name, u.get_full_name())
184-
self.assertEqual(c.user_email, u.email)
181+
self.assertEqual(c.user, self.user)
182+
self.assertEqual(c.user_name, self.user.get_full_name())
183+
self.assertEqual(c.user_email, self.user.email)
185184

186185
def testPostAsAuthenticatedUserWithoutFullname(self):
187186
"""

tests/testapp/tests/test_moderation_views.py

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ def testFlagGet(self):
1515
"""GET the flag view: render a confirmation page."""
1616
comments = self.createSomeComments()
1717
pk = comments[0].pk
18-
self.client.login(username="normaluser", password="normaluser")
18+
self.client.force_login(self.user)
1919
response = self.client.get("/flag/%d/" % pk)
2020
self.assertTemplateUsed(response, "comments/flag.html")
2121

2222
def testFlagPost(self):
2323
"""POST the flag view: actually flag the view (nice for XHR)"""
2424
comments = self.createSomeComments()
2525
pk = comments[0].pk
26-
self.client.login(username="normaluser", password="normaluser")
26+
self.client.force_login(self.user)
2727
response = self.client.post("/flag/%d/" % pk)
2828
self.assertRedirects(response, "/flagged/?c=%d" % pk)
2929
c = Comment.objects.get(pk=pk)
@@ -36,7 +36,7 @@ def testFlagPostNext(self):
3636
"""
3737
comments = self.createSomeComments()
3838
pk = comments[0].pk
39-
self.client.login(username="normaluser", password="normaluser")
39+
self.client.force_login(self.user)
4040
response = self.client.post("/flag/%d/" % pk, {'next': "/go/here/"})
4141
self.assertRedirects(response, "/go/here/?c=%d" % pk, fetch_redirect_response=False)
4242

@@ -47,7 +47,7 @@ def testFlagPostUnsafeNext(self):
4747
"""
4848
comments = self.createSomeComments()
4949
pk = comments[0].pk
50-
self.client.login(username="normaluser", password="normaluser")
50+
self.client.force_login(self.user)
5151
response = self.client.post("/flag/%d/" % pk,
5252
{'next': "http://elsewhere/bad"})
5353
self.assertRedirects(response, "/flagged/?c=%d" % pk)
@@ -119,7 +119,7 @@ def testDeletePermissions(self):
119119
fetch_redirect_response=False)
120120

121121
# Test that we return forbidden if you're logged in but don't have access.
122-
self.client.login(username="normaluser", password="normaluser")
122+
self.client.force_login(self.user)
123123
response = self.client.get("/delete/%d/" % pk)
124124
self.assertEqual(response.status_code, 403)
125125

@@ -132,7 +132,7 @@ def testDeletePost(self):
132132
comments = self.createSomeComments()
133133
pk = comments[0].pk
134134
makeModerator("normaluser")
135-
self.client.login(username="normaluser", password="normaluser")
135+
self.client.force_login(self.user)
136136
response = self.client.post("/delete/%d/" % pk)
137137
self.assertRedirects(response, "/deleted/?c=%d" % pk)
138138
c = Comment.objects.get(pk=pk)
@@ -147,7 +147,7 @@ def testDeletePostNext(self):
147147
comments = self.createSomeComments()
148148
pk = comments[0].pk
149149
makeModerator("normaluser")
150-
self.client.login(username="normaluser", password="normaluser")
150+
self.client.force_login(self.user)
151151
response = self.client.post("/delete/%d/" % pk, {'next': "/go/here/"})
152152
self.assertRedirects(response, "/go/here/?c=%d" % pk, fetch_redirect_response=False)
153153

@@ -159,7 +159,7 @@ def testDeletePostUnsafeNext(self):
159159
comments = self.createSomeComments()
160160
pk = comments[0].pk
161161
makeModerator("normaluser")
162-
self.client.login(username="normaluser", password="normaluser")
162+
self.client.force_login(self.user)
163163
response = self.client.post("/delete/%d/" % pk,
164164
{'next': "http://elsewhere/bad"})
165165
self.assertRedirects(response, "/deleted/?c=%d" % pk)
@@ -201,7 +201,7 @@ def testApprovePermissions(self):
201201
)
202202

203203
# Test that we return forbidden if you're logged in but don't have access.
204-
self.client.login(username="normaluser", password="normaluser")
204+
self.client.force_login(self.user)
205205
response = self.client.get("/approve/%d/" % pk)
206206
self.assertEqual(response.status_code, 403)
207207

@@ -217,7 +217,7 @@ def testApprovePost(self):
217217
c1.save()
218218

219219
makeModerator("normaluser")
220-
self.client.login(username="normaluser", password="normaluser")
220+
self.client.force_login(self.user)
221221
response = self.client.post("/approve/%d/" % c1.pk)
222222
self.assertRedirects(response, "/approved/?c=%d" % c1.pk)
223223
c = Comment.objects.get(pk=c1.pk)
@@ -234,7 +234,7 @@ def testApprovePostNext(self):
234234
c1.save()
235235

236236
makeModerator("normaluser")
237-
self.client.login(username="normaluser", password="normaluser")
237+
self.client.force_login(self.user)
238238
response = self.client.post("/approve/%d/" % c1.pk,
239239
{'next': "/go/here/"})
240240
self.assertRedirects(response, "/go/here/?c=%d" % c1.pk, fetch_redirect_response=False)
@@ -249,7 +249,7 @@ def testApprovePostUnsafeNext(self):
249249
c1.save()
250250

251251
makeModerator("normaluser")
252-
self.client.login(username="normaluser", password="normaluser")
252+
self.client.force_login(self.user)
253253
response = self.client.post("/approve/%d/" % c1.pk,
254254
{'next': "http://elsewhere/bad"})
255255
self.assertRedirects(response, "/approved/?c=%d" % c1.pk)
@@ -278,37 +278,36 @@ def testApprovedView(self):
278278
@override_settings(ROOT_URLCONF='testapp.urls_admin')
279279
class AdminActionsTests(CommentTestCase):
280280

281-
def setUp(self):
282-
super().setUp()
283-
281+
@classmethod
282+
def setUpTestData(cls):
283+
super().setUpTestData()
284284
# Make "normaluser" a moderator
285-
u = User.objects.get(username="normaluser")
286-
u.is_staff = True
285+
cls.user.is_staff = True
287286
perms = Permission.objects.filter(
288287
content_type__app_label='django_comments',
289288
codename__endswith='comment'
290289
)
291290
for perm in perms:
292-
u.user_permissions.add(perm)
293-
u.save()
291+
cls.user.user_permissions.add(perm)
292+
cls.user.save()
294293

295294
def testActionsNonModerator(self):
296295
self.createSomeComments()
297-
self.client.login(username="normaluser", password="normaluser")
296+
self.client.force_login(self.user)
298297
response = self.client.get("/admin/django_comments/comment/")
299298
self.assertNotContains(response, "approve_comments")
300299

301300
def testActionsModerator(self):
302301
self.createSomeComments()
303302
makeModerator("normaluser")
304-
self.client.login(username="normaluser", password="normaluser")
303+
self.client.force_login(self.user)
305304
response = self.client.get("/admin/django_comments/comment/")
306305
self.assertContains(response, "approve_comments")
307306

308307
def testActionsDisabledDelete(self):
309308
"Tests a CommentAdmin where 'delete_selected' has been disabled."
310309
self.createSomeComments()
311-
self.client.login(username="normaluser", password="normaluser")
310+
self.client.force_login(self.user)
312311
response = self.client.get('/admin2/django_comments/comment/')
313312
self.assertEqual(response.status_code, 200)
314313
self.assertNotContains(response, '<option value="delete_selected">')
@@ -329,7 +328,7 @@ def testActionsMessageTranslations(self):
329328
one_comment = c1.pk
330329
many_comments = [c2.pk, c3.pk, c4.pk]
331330
makeModerator("normaluser")
332-
self.client.login(username="normaluser", password="normaluser")
331+
self.client.force_login(self.user)
333332
with translation.override('en'):
334333
# Test approving
335334
self.performActionAndCheckMessage('approve_comments', one_comment,

0 commit comments

Comments
 (0)