Skip to content

Commit f7969b0

Browse files
berkerpeksagtimgraham
authored andcommitted
Fixed #23620 -- Used more specific assertions in the Django test suite.
1 parent c0c78f1 commit f7969b0

File tree

83 files changed

+420
-430
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+420
-430
lines changed

django/contrib/auth/tests/test_context_processors.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ def test_permwrapper_in(self):
4545
"""
4646
perms = PermWrapper(MockUser())
4747
# Works for modules and full permissions.
48-
self.assertTrue('mockapp' in perms)
49-
self.assertFalse('nonexisting' in perms)
50-
self.assertTrue('mockapp.someperm' in perms)
51-
self.assertFalse('mockapp.nonexisting' in perms)
48+
self.assertIn('mockapp', perms)
49+
self.assertNotIn('nonexisting', perms)
50+
self.assertIn('mockapp.someperm', perms)
51+
self.assertNotIn('mockapp.nonexisting', perms)
5252

5353
def test_permlookupdict_in(self):
5454
"""

django/contrib/auth/tests/test_decorators.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def testLoginRequired(self, view_url='/login_required/', login_url=None):
4242
login_url = settings.LOGIN_URL
4343
response = self.client.get(view_url)
4444
self.assertEqual(response.status_code, 302)
45-
self.assertTrue(login_url in response.url)
45+
self.assertIn(login_url, response.url)
4646
self.login()
4747
response = self.client.get(view_url)
4848
self.assertEqual(response.status_code, 200)

django/contrib/auth/tests/test_handlers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def test_check_password(self):
2929
User.objects.create_user('test', '[email protected]', 'test')
3030

3131
# User not in database
32-
self.assertTrue(check_password({}, 'unknown', '') is None)
32+
self.assertIsNone(check_password({}, 'unknown', ''))
3333

3434
# Valid user with correct password
3535
self.assertTrue(check_password({}, 'test', 'test'))
@@ -53,7 +53,7 @@ def test_check_password_custom_user(self):
5353
CustomUser._default_manager.create_user('[email protected]', '1990-01-01', 'test')
5454

5555
# User not in database
56-
self.assertTrue(check_password({}, 'unknown', '') is None)
56+
self.assertIsNone(check_password({}, 'unknown', ''))
5757

5858
# Valid user with correct password'
5959
self.assertTrue(check_password({}, '[email protected]', 'test'))

django/contrib/auth/tests/test_signals.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def test_login(self):
4444
self.assertEqual(len(self.login_failed), 1)
4545
self.assertEqual(self.login_failed[0]['username'], 'testclient')
4646
# verify the password is cleansed
47-
self.assertTrue('***' in self.login_failed[0]['password'])
47+
self.assertIn('***', self.login_failed[0]['password'])
4848

4949
# Like this:
5050
self.client.login(username='testclient', password='password')

django/contrib/auth/tests/test_views.py

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,13 @@ def login(self, username='testclient', password='password'):
5555
'username': username,
5656
'password': password,
5757
})
58-
self.assertTrue(SESSION_KEY in self.client.session)
58+
self.assertIn(SESSION_KEY, self.client.session)
5959
return response
6060

6161
def logout(self):
6262
response = self.client.get('/admin/logout/')
6363
self.assertEqual(response.status_code, 200)
64-
self.assertTrue(SESSION_KEY not in self.client.session)
64+
self.assertNotIn(SESSION_KEY, self.client.session)
6565

6666
def assertFormError(self, response, error):
6767
"""Assert that error is found in response.context['form'] errors"""
@@ -129,7 +129,7 @@ def test_email_found(self):
129129
response = self.client.post('/password_reset/', {'email': '[email protected]'})
130130
self.assertEqual(response.status_code, 302)
131131
self.assertEqual(len(mail.outbox), 1)
132-
self.assertTrue("http://" in mail.outbox[0].body)
132+
self.assertIn("http://", mail.outbox[0].body)
133133
self.assertEqual(settings.DEFAULT_FROM_EMAIL, mail.outbox[0].from_email)
134134
# optional multipart text/html email has been added. Make sure original,
135135
# default functionality is 100% the same
@@ -148,8 +148,8 @@ def test_html_mail_template(self):
148148
self.assertTrue(message.is_multipart())
149149
self.assertEqual(message.get_payload(0).get_content_type(), 'text/plain')
150150
self.assertEqual(message.get_payload(1).get_content_type(), 'text/html')
151-
self.assertTrue('<html>' not in message.get_payload(0).get_payload())
152-
self.assertTrue('<html>' in message.get_payload(1).get_payload())
151+
self.assertNotIn('<html>', message.get_payload(0).get_payload())
152+
self.assertIn('<html>', message.get_payload(1).get_payload())
153153

154154
def test_email_found_custom_from(self):
155155
"Email is sent if a valid email address is provided for password reset when a custom from_email is provided."
@@ -169,7 +169,7 @@ def test_admin_reset(self):
169169
)
170170
self.assertEqual(response.status_code, 302)
171171
self.assertEqual(len(mail.outbox), 1)
172-
self.assertTrue("http://adminsite.com" in mail.outbox[0].body)
172+
self.assertIn("http://adminsite.com", mail.outbox[0].body)
173173
self.assertEqual(settings.DEFAULT_FROM_EMAIL, mail.outbox[0].from_email)
174174

175175
# Skip any 500 handler action (like sending more mail...)
@@ -215,7 +215,7 @@ def _test_confirm_start(self):
215215

216216
def _read_signup_email(self, email):
217217
urlmatch = re.search(r"https?://[^/]*(/.*reset/\S*)", email.body)
218-
self.assertTrue(urlmatch is not None, "No URL found in sent email")
218+
self.assertIsNotNone(urlmatch, "No URL found in sent email")
219219
return urlmatch.group(), urlmatch.groups()[0]
220220

221221
def test_confirm_valid(self):
@@ -346,7 +346,7 @@ def _test_confirm_start(self):
346346

347347
def _read_signup_email(self, email):
348348
urlmatch = re.search(r"https?://[^/]*(/.*reset/\S*)", email.body)
349-
self.assertTrue(urlmatch is not None, "No URL found in sent email")
349+
self.assertIsNotNone(urlmatch, "No URL found in sent email")
350350
return urlmatch.group(), urlmatch.groups()[0]
351351

352352
def test_confirm_valid_custom_user(self):
@@ -502,7 +502,7 @@ def test_security_check(self, password='password'):
502502
'password': password,
503503
})
504504
self.assertEqual(response.status_code, 302)
505-
self.assertFalse(bad_url in response.url,
505+
self.assertNotIn(bad_url, response.url,
506506
"%s should be blocked" % bad_url)
507507

508508
# These URLs *should* still pass the security check
@@ -524,8 +524,7 @@ def test_security_check(self, password='password'):
524524
'password': password,
525525
})
526526
self.assertEqual(response.status_code, 302)
527-
self.assertTrue(good_url in response.url,
528-
"%s should be allowed" % good_url)
527+
self.assertIn(good_url, response.url, "%s should be allowed" % good_url)
529528

530529
def test_login_form_contains_request(self):
531530
# 15198
@@ -683,7 +682,7 @@ def test_remote(self):
683682
class LogoutTest(AuthViewsTestCase):
684683

685684
def confirm_logged_out(self):
686-
self.assertTrue(SESSION_KEY not in self.client.session)
685+
self.assertNotIn(SESSION_KEY, self.client.session)
687686

688687
def test_logout_default(self):
689688
"Logout without next_page option renders the default template"
@@ -696,7 +695,7 @@ def test_14377(self):
696695
# Bug 14377
697696
self.login()
698697
response = self.client.get('/logout/')
699-
self.assertTrue('site' in response.context)
698+
self.assertIn('site', response.context)
700699

701700
def test_logout_with_overridden_redirect_url(self):
702701
# Bug 11223
@@ -762,7 +761,7 @@ def test_security_check(self, password='password'):
762761
self.login()
763762
response = self.client.get(nasty_url)
764763
self.assertEqual(response.status_code, 302)
765-
self.assertFalse(bad_url in response.url,
764+
self.assertNotIn(bad_url, response.url,
766765
"%s should be blocked" % bad_url)
767766
self.confirm_logged_out()
768767

@@ -783,8 +782,7 @@ def test_security_check(self, password='password'):
783782
self.login()
784783
response = self.client.get(safe_url)
785784
self.assertEqual(response.status_code, 302)
786-
self.assertTrue(good_url in response.url,
787-
"%s should be allowed" % good_url)
785+
self.assertIn(good_url, response.url, "%s should be allowed" % good_url)
788786
self.confirm_logged_out()
789787

790788
def test_logout_preserve_language(self):

django/contrib/gis/geos/tests/test_geos.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -436,17 +436,13 @@ def test_polygons(self):
436436
def test_polygon_comparison(self):
437437
p1 = Polygon(((0, 0), (0, 1), (1, 1), (1, 0), (0, 0)))
438438
p2 = Polygon(((0, 0), (0, 1), (1, 0), (0, 0)))
439-
self.assertTrue(p1 > p2)
440-
self.assertFalse(p1 < p2)
441-
self.assertFalse(p2 > p1)
442-
self.assertTrue(p2 < p1)
439+
self.assertGreater(p1, p2)
440+
self.assertLess(p2, p1)
443441

444442
p3 = Polygon(((0, 0), (0, 1), (1, 1), (2, 0), (0, 0)))
445443
p4 = Polygon(((0, 0), (0, 1), (2, 2), (1, 0), (0, 0)))
446-
self.assertFalse(p4 < p3)
447-
self.assertTrue(p3 < p4)
448-
self.assertTrue(p4 > p3)
449-
self.assertFalse(p3 > p4)
444+
self.assertGreater(p4, p3)
445+
self.assertLess(p3, p4)
450446

451447
def test_multipolygons(self):
452448
"Testing MultiPolygon objects."
@@ -911,7 +907,7 @@ def test_transform_noop(self):
911907
g1 = g.transform(4326, clone=True)
912908
self.assertEqual(g1.tuple, g.tuple)
913909
self.assertEqual(g1.srid, 4326)
914-
self.assertTrue(g1 is not g, "Clone didn't happen")
910+
self.assertIsNot(g1, g, "Clone didn't happen")
915911

916912
old_has_gdal = gdal.HAS_GDAL
917913
try:
@@ -927,7 +923,7 @@ def test_transform_noop(self):
927923
g1 = g.transform(4326, clone=True)
928924
self.assertEqual(g1.tuple, g.tuple)
929925
self.assertEqual(g1.srid, 4326)
930-
self.assertTrue(g1 is not g, "Clone didn't happen")
926+
self.assertIsNot(g1, g, "Clone didn't happen")
931927
finally:
932928
gdal.HAS_GDAL = old_has_gdal
933929

django/contrib/gis/geos/tests/test_mutable_list.py

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -391,35 +391,34 @@ def test_12_arithmetic(self):
391391

392392
pl, ul = self.lists_of_len()
393393
self.assertEqual(pl, ul, 'cmp for equal')
394-
self.assertFalse(ul == pl + [2], 'cmp for not equal')
395-
self.assertTrue(pl >= ul, 'cmp for gte self')
396-
self.assertTrue(pl <= ul, 'cmp for lte self')
397-
self.assertTrue(ul >= pl, 'cmp for self gte')
398-
self.assertTrue(ul <= pl, 'cmp for self lte')
399-
400-
self.assertTrue(pl + [5] > ul, 'cmp')
401-
self.assertTrue(pl + [5] >= ul, 'cmp')
402-
self.assertTrue(pl < ul + [2], 'cmp')
403-
self.assertTrue(pl <= ul + [2], 'cmp')
404-
self.assertTrue(ul + [5] > pl, 'cmp')
405-
self.assertTrue(ul + [5] >= pl, 'cmp')
406-
self.assertTrue(ul < pl + [2], 'cmp')
407-
self.assertTrue(ul <= pl + [2], 'cmp')
394+
self.assertNotEqual(ul, pl + [2], 'cmp for not equal')
395+
self.assertGreaterEqual(pl, ul, 'cmp for gte self')
396+
self.assertLessEqual(pl, ul, 'cmp for lte self')
397+
self.assertGreaterEqual(ul, pl, 'cmp for self gte')
398+
self.assertLessEqual(ul, pl, 'cmp for self lte')
399+
400+
self.assertGreater(pl + [5], ul, 'cmp')
401+
self.assertGreaterEqual(pl + [5], ul, 'cmp')
402+
self.assertLess(pl, ul + [2], 'cmp')
403+
self.assertLessEqual(pl, ul + [2], 'cmp')
404+
self.assertGreater(ul + [5], pl, 'cmp')
405+
self.assertGreaterEqual(ul + [5], pl, 'cmp')
406+
self.assertLess(ul, pl + [2], 'cmp')
407+
self.assertLessEqual(ul, pl + [2], 'cmp')
408408

409409
# Also works with a custom IndexError
410410
ul_longer = ul + [2]
411411
ul_longer._IndexError = TypeError
412412
ul._IndexError = TypeError
413-
self.assertFalse(ul_longer == pl)
414-
self.assertFalse(ul == ul_longer)
415-
self.assertTrue(ul_longer > ul)
413+
self.assertNotEqual(ul_longer, pl)
414+
self.assertGreater(ul_longer, ul)
416415

417416
pl[1] = 20
418-
self.assertTrue(pl > ul, 'cmp for gt self')
419-
self.assertTrue(ul < pl, 'cmp for self lt')
417+
self.assertGreater(pl, ul, 'cmp for gt self')
418+
self.assertLess(ul, pl, 'cmp for self lt')
420419
pl[1] = -20
421-
self.assertTrue(pl < ul, 'cmp for lt self')
422-
self.assertTrue(pl < ul, 'cmp for lt self')
420+
self.assertLess(pl, ul, 'cmp for lt self')
421+
self.assertGreater(ul, pl, 'cmp for gt self')
423422

424423

425424
class ListMixinTestSingle(ListMixinTest):

django/contrib/gis/tests/relatedapp/tests.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,8 @@ def test10_combine(self):
228228
combined = qs1 | qs2
229229
names = [c.name for c in combined]
230230
self.assertEqual(2, len(names))
231-
self.assertTrue('Aurora' in names)
232-
self.assertTrue('Kecksburg' in names)
231+
self.assertIn('Aurora', names)
232+
self.assertIn('Kecksburg', names)
233233

234234
def test11_geoquery_pickle(self):
235235
"Ensuring GeoQuery objects are unpickled correctly. See #10839."

django/contrib/gis/tests/test_geoforms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ class PointForm(forms.Form):
174174
self.assertFalse(PointForm().is_valid())
175175
invalid = PointForm(data={'p': 'some invalid geom'})
176176
self.assertFalse(invalid.is_valid())
177-
self.assertTrue('Invalid geometry value' in str(invalid.errors))
177+
self.assertIn('Invalid geometry value', str(invalid.errors))
178178

179179
for invalid in [geo for key, geo in self.geometries.items() if key != 'point']:
180180
self.assertFalse(PointForm(data={'p': invalid.wkt}).is_valid())

django/contrib/gis/tests/test_measure.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ def testComparisons(self):
122122
d2 = D(km=1)
123123
d3 = D(km=0)
124124

125-
self.assertTrue(d2 > d1)
126-
self.assertTrue(d1 == d1)
127-
self.assertTrue(d1 < d2)
125+
self.assertGreater(d2, d1)
126+
self.assertEqual(d1, d1)
127+
self.assertLess(d1, d2)
128128
self.assertFalse(d3)
129129

130130
def testUnitsStr(self):
@@ -249,9 +249,9 @@ def testComparisons(self):
249249
a2 = A(sq_km=1)
250250
a3 = A(sq_km=0)
251251

252-
self.assertTrue(a2 > a1)
253-
self.assertTrue(a1 == a1)
254-
self.assertTrue(a1 < a2)
252+
self.assertGreater(a2, a1)
253+
self.assertEqual(a1, a1)
254+
self.assertLess(a1, a2)
255255
self.assertFalse(a3)
256256

257257
def testUnitsStr(self):

django/contrib/messages/tests/base.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ def test_full_request_response_cycle(self):
163163
add_url = reverse('add_message', args=(level,))
164164
response = self.client.post(add_url, data, follow=True)
165165
self.assertRedirects(response, show_url)
166-
self.assertTrue('messages' in response.context)
166+
self.assertIn('messages', response.context)
167167
messages = [Message(self.levels[level], msg) for msg in data['messages']]
168168
self.assertEqual(list(response.context['messages']), messages)
169169
for msg in data['messages']:
@@ -179,7 +179,7 @@ def test_with_template_response(self):
179179
add_url = reverse('add_template_response', args=(level,))
180180
response = self.client.post(add_url, data, follow=True)
181181
self.assertRedirects(response, show_url)
182-
self.assertTrue('messages' in response.context)
182+
self.assertIn('messages', response.context)
183183
for msg in data['messages']:
184184
self.assertContains(response, msg)
185185

@@ -192,7 +192,7 @@ def test_context_processor_message_levels(self):
192192
show_url = reverse('show_template_response')
193193
response = self.client.get(show_url)
194194

195-
self.assertTrue('DEFAULT_MESSAGE_LEVELS' in response.context)
195+
self.assertIn('DEFAULT_MESSAGE_LEVELS', response.context)
196196
self.assertEqual(response.context['DEFAULT_MESSAGE_LEVELS'], DEFAULT_LEVELS)
197197

198198
@override_settings(MESSAGE_LEVEL=constants.DEBUG)
@@ -211,7 +211,7 @@ def test_multiple_posts(self):
211211
add_url = reverse('add_message', args=(level,))
212212
self.client.post(add_url, data)
213213
response = self.client.get(show_url)
214-
self.assertTrue('messages' in response.context)
214+
self.assertIn('messages', response.context)
215215
self.assertEqual(list(response.context['messages']), messages)
216216
for msg in data['messages']:
217217
self.assertContains(response, msg)
@@ -255,7 +255,7 @@ def test_middleware_disabled_fail_silently(self):
255255
add_url = reverse('add_message', args=(level,))
256256
response = self.client.post(add_url, data, follow=True)
257257
self.assertRedirects(response, show_url)
258-
self.assertFalse('messages' in response.context)
258+
self.assertNotIn('messages', response.context)
259259

260260
def stored_messages_count(self, storage, response):
261261
"""

django/contrib/messages/tests/test_cookie.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def test_cookie_setings(self):
6565
response = self.get_response()
6666
storage.add(constants.INFO, 'test')
6767
storage.update(response)
68-
self.assertTrue('test' in response.cookies['messages'].value)
68+
self.assertIn('test', response.cookies['messages'].value)
6969
self.assertEqual(response.cookies['messages']['domain'], '.example.com')
7070
self.assertEqual(response.cookies['messages']['expires'], '')
7171
self.assertEqual(response.cookies['messages']['secure'], True)
@@ -114,7 +114,7 @@ def test_max_cookie_length(self):
114114
self.assertEqual(cookie_storing, 4)
115115

116116
self.assertEqual(len(unstored_messages), 1)
117-
self.assertTrue(unstored_messages[0].message == '0' * msg_size)
117+
self.assertEqual(unstored_messages[0].message, '0' * msg_size)
118118

119119
def test_json_encoder_decoder(self):
120120
"""

django/contrib/sessions/tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ def test_decode_failure_logged_to_security(self):
286286
self.assertEqual({}, self.session.decode(bad_encode))
287287
# check that the failed decode is logged
288288
self.assertEqual(len(calls), 1)
289-
self.assertTrue('corrupted' in calls[0])
289+
self.assertIn('corrupted', calls[0])
290290

291291
def test_actual_expiry(self):
292292
# this doesn't work with JSONSerializer (serializing timedelta)

0 commit comments

Comments
 (0)