From f7969b0920c403118656f6bfec58d6454d79ef1a Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Tue, 28 Oct 2014 12:02:56 +0200 Subject: Fixed #23620 -- Used more specific assertions in the Django test suite. --- tests/admin_changelist/tests.py | 4 +- tests/admin_docs/tests.py | 16 ++-- tests/admin_scripts/tests.py | 8 +- tests/admin_views/tests.py | 10 +-- tests/admin_widgets/tests.py | 8 +- tests/aggregation_regress/tests.py | 16 ++-- tests/backends/tests.py | 6 +- tests/basic/tests.py | 20 ++--- tests/bulk_create/tests.py | 4 +- tests/cache/tests.py | 4 +- tests/csrf_tests/tests.py | 6 +- tests/datatypes/tests.py | 2 +- tests/empty/tests.py | 4 +- tests/expressions/tests.py | 2 +- tests/field_defaults/tests.py | 2 +- tests/file_storage/tests.py | 8 +- tests/file_uploads/tests.py | 6 +- tests/fixtures_model_package/tests.py | 5 +- tests/foreign_object/tests.py | 2 +- tests/forms_tests/tests/test_extra.py | 4 +- tests/forms_tests/tests/test_forms.py | 7 +- tests/forms_tests/tests/test_widgets.py | 12 +-- tests/forms_tests/tests/tests.py | 2 +- tests/generic_relations_regress/tests.py | 4 +- tests/generic_views/test_base.py | 2 +- tests/generic_views/test_dates.py | 2 +- tests/generic_views/test_detail.py | 4 +- tests/generic_views/test_edit.py | 12 +-- tests/httpwrappers/tests.py | 16 ++-- tests/i18n/test_extraction.py | 92 ++++++++++---------- tests/i18n/tests.py | 2 +- tests/introspection/tests.py | 6 +- tests/logging_tests/tests.py | 8 +- tests/m2m_regress/tests.py | 8 +- tests/mail/tests.py | 30 +++---- tests/many_to_one/tests.py | 20 ++--- tests/middleware/test_security.py | 2 +- tests/middleware/tests.py | 16 ++-- tests/migrations/test_autodetector.py | 4 +- tests/migrations/test_commands.py | 24 +++--- tests/model_fields/tests.py | 4 +- tests/model_forms/tests.py | 18 ++-- tests/model_formsets/tests.py | 4 +- tests/model_formsets_regress/tests.py | 6 +- tests/model_meta/test.py | 6 +- tests/multiple_database/tests.py | 2 +- tests/null_fk/tests.py | 2 +- tests/null_fk_ordering/tests.py | 4 +- tests/one_to_one/tests.py | 12 +-- tests/pagination/tests.py | 4 +- tests/prefetch_related/tests.py | 8 +- tests/proxy_models/tests.py | 8 +- tests/queries/tests.py | 139 ++++++++++++++++--------------- tests/raw_query/tests.py | 4 +- tests/requests/tests.py | 2 +- tests/select_related_regress/tests.py | 4 +- tests/settings_tests/tests.py | 2 +- tests/template_tests/tests.py | 10 +-- tests/test_client_regress/tests.py | 4 +- tests/test_runner/tests.py | 2 +- tests/test_utils/tests.py | 18 ++-- tests/unmanaged_models/tests.py | 4 +- tests/update_only_fields/tests.py | 4 +- tests/urlpatterns_reverse/tests.py | 4 +- tests/utils_tests/test_datastructures.py | 2 +- tests/utils_tests/test_functional.py | 2 +- tests/utils_tests/test_http.py | 4 +- tests/utils_tests/test_lazyobject.py | 12 +-- tests/view_tests/tests/test_debug.py | 4 +- tests/wsgi/tests.py | 4 +- 70 files changed, 355 insertions(+), 358 deletions(-) (limited to 'tests') diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py index d89b0857ec..5ee5a512db 100644 --- a/tests/admin_changelist/tests.py +++ b/tests/admin_changelist/tests.py @@ -93,7 +93,7 @@ class ChangeListTests(TestCase): table_output = template.render(context) link = reverse('admin:admin_changelist_child_change', args=(new_child.id,)) row_html = 'name(None)' % link - self.assertFalse(table_output.find(row_html) == -1, + self.assertNotEqual(table_output.find(row_html), -1, 'Failed to find expected row element: %s' % table_output) def test_result_list_html(self): @@ -116,7 +116,7 @@ class ChangeListTests(TestCase): table_output = template.render(context) link = reverse('admin:admin_changelist_child_change', args=(new_child.id,)) row_html = 'nameParent object' % link - self.assertFalse(table_output.find(row_html) == -1, + self.assertNotEqual(table_output.find(row_html), -1, 'Failed to find expected row element: %s' % table_output) def test_result_list_editable_html(self): diff --git a/tests/admin_docs/tests.py b/tests/admin_docs/tests.py index c410eff020..6234834955 100644 --- a/tests/admin_docs/tests.py +++ b/tests/admin_docs/tests.py @@ -130,38 +130,38 @@ class XViewMiddlewareTest(AdminDocsTestCase): def test_xview_func(self): user = User.objects.get(username='super') response = self.client.head('/xview/func/') - self.assertFalse('X-View' in response) + self.assertNotIn('X-View', response) self.client.login(username='super', password='secret') response = self.client.head('/xview/func/') - self.assertTrue('X-View' in response) + self.assertIn('X-View', response) self.assertEqual(response['X-View'], 'admin_docs.views.xview') user.is_staff = False user.save() response = self.client.head('/xview/func/') - self.assertFalse('X-View' in response) + self.assertNotIn('X-View', response) user.is_staff = True user.is_active = False user.save() response = self.client.head('/xview/func/') - self.assertFalse('X-View' in response) + self.assertNotIn('X-View', response) def test_xview_class(self): user = User.objects.get(username='super') response = self.client.head('/xview/class/') - self.assertFalse('X-View' in response) + self.assertNotIn('X-View', response) self.client.login(username='super', password='secret') response = self.client.head('/xview/class/') - self.assertTrue('X-View' in response) + self.assertIn('X-View', response) self.assertEqual(response['X-View'], 'admin_docs.views.XViewClass') user.is_staff = False user.save() response = self.client.head('/xview/class/') - self.assertFalse('X-View' in response) + self.assertNotIn('X-View', response) user.is_staff = True user.is_active = False user.save() response = self.client.head('/xview/class/') - self.assertFalse('X-View' in response) + self.assertNotIn('X-View', response) @unittest.skipUnless(utils.docutils_is_available, "no docutils installed.") diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 5bc0fb3ee1..aaf4f17c75 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -190,12 +190,12 @@ class AdminScriptTestCase(unittest.TestCase): self.assertIsNotNone(re.search(msg, stream), "'%s' does not match actual output text '%s'" % (msg, stream)) else: - self.assertTrue(msg in stream, "'%s' does not match actual output text '%s'" % (msg, stream)) + self.assertIn(msg, stream, "'%s' does not match actual output text '%s'" % (msg, stream)) def assertNotInOutput(self, stream, msg): "Utility assertion: assert that the given message doesn't exist in the output" stream = force_text(stream) - self.assertFalse(msg in stream, "'%s' matches actual output text '%s'" % (msg, stream)) + self.assertNotIn(msg, stream, "'%s' matches actual output text '%s'" % (msg, stream)) ########################################################################## # DJANGO ADMIN TESTS @@ -904,7 +904,7 @@ class ManageAlternateSettings(AdminScriptTestCase): out, err = self.run_manage(args) expected = ('create table %s' % connection.ops.quote_name('admin_scripts_article')) - self.assertTrue(expected.lower() in out.lower()) + self.assertIn(expected.lower(), out.lower()) self.assertNoOutput(err) def test_builtin_with_environment(self): @@ -913,7 +913,7 @@ class ManageAlternateSettings(AdminScriptTestCase): out, err = self.run_manage(args, 'alternate_settings') expected = ('create table %s' % connection.ops.quote_name('admin_scripts_article')) - self.assertTrue(expected.lower() in out.lower()) + self.assertIn(expected.lower(), out.lower()) self.assertNoOutput(err) def test_builtin_with_bad_settings(self): diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 051fc0ae8d..562d7573e6 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -90,7 +90,7 @@ class AdminViewBasicTestCase(TestCase): content. """ self.assertEqual(response.status_code, 200) - self.assertTrue(response.content.index(force_bytes(text1)) < response.content.index(force_bytes(text2)), + self.assertLess(response.content.index(force_bytes(text1)), response.content.index(force_bytes(text2)), failing_msg) @@ -866,7 +866,7 @@ class AdminViewFormUrlTest(TestCase): Tests whether change_view has form_url in response.context """ response = self.client.get('/test_admin/%s/admin_views/section/1/' % self.urlbit) - self.assertTrue('form_url' in response.context, msg='form_url not present in response.context') + self.assertIn('form_url', response.context, msg='form_url not present in response.context') self.assertEqual(response.context['form_url'], 'pony') def test_initial_data_can_be_overridden(self): @@ -4123,7 +4123,7 @@ class UserAdminTest(TestCase): }) self.assertEqual(response.status_code, 200) adminform = response.context['adminform'] - self.assertTrue('password' not in adminform.form.errors) + self.assertNotIn('password', adminform.form.errors) self.assertEqual(adminform.form.errors['password2'], ["The two password fields didn't match."]) @@ -5040,7 +5040,7 @@ class AdminViewOnSiteTests(TestCase): # just verifying the parent form failed validation, as expected -- # this isn't the regression test - self.assertTrue('some_required_info' in response.context['adminform'].form.errors) + self.assertIn('some_required_info', response.context['adminform'].form.errors) # actual regression test for error_set in response.context['inline_admin_formset'].formset.errors: @@ -5070,7 +5070,7 @@ class AdminViewOnSiteTests(TestCase): # just verifying the parent form failed validation, as expected -- # this isn't the regression test - self.assertTrue('some_required_info' in response.context['adminform'].form.errors) + self.assertIn('some_required_info', response.context['adminform'].form.errors) # actual regression test for error_set in response.context['inline_admin_formset'].formset.errors: diff --git a/tests/admin_widgets/tests.py b/tests/admin_widgets/tests.py index fdca577809..1617f92326 100644 --- a/tests/admin_widgets/tests.py +++ b/tests/admin_widgets/tests.py @@ -1046,7 +1046,7 @@ class AdminRawIdWidgetSeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): self.selenium.switch_to.window('id_main_band') self.wait_page_loaded() link = self.selenium.find_element_by_link_text('Bogey Blues') - self.assertTrue('/band/42/' in link.get_attribute('href')) + self.assertIn('/band/42/', link.get_attribute('href')) link.click() # The field now contains the selected band's id @@ -1058,7 +1058,7 @@ class AdminRawIdWidgetSeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): self.selenium.switch_to.window('id_main_band') self.wait_page_loaded() link = self.selenium.find_element_by_link_text('Green Potatoes') - self.assertTrue('/band/98/' in link.get_attribute('href')) + self.assertIn('/band/98/', link.get_attribute('href')) link.click() # The field now contains the other selected band's id @@ -1081,7 +1081,7 @@ class AdminRawIdWidgetSeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): self.selenium.switch_to.window('id_supporting_bands') self.wait_page_loaded() link = self.selenium.find_element_by_link_text('Bogey Blues') - self.assertTrue('/band/42/' in link.get_attribute('href')) + self.assertIn('/band/42/', link.get_attribute('href')) link.click() # The field now contains the selected band's id @@ -1093,7 +1093,7 @@ class AdminRawIdWidgetSeleniumFirefoxTests(AdminSeleniumWebDriverTestCase): self.selenium.switch_to.window('id_supporting_bands') self.wait_page_loaded() link = self.selenium.find_element_by_link_text('Green Potatoes') - self.assertTrue('/band/98/' in link.get_attribute('href')) + self.assertIn('/band/98/', link.get_attribute('href')) link.click() # The field now contains the two selected bands' ids diff --git a/tests/aggregation_regress/tests.py b/tests/aggregation_regress/tests.py index 1e2564ea44..b9daa63f1b 100644 --- a/tests/aggregation_regress/tests.py +++ b/tests/aggregation_regress/tests.py @@ -133,7 +133,7 @@ class AggregationTests(TestCase): rating=3.0 ) # Different DB backends return different types for the extra select computation - self.assertTrue(obj.manufacture_cost == 11.545 or obj.manufacture_cost == Decimal('11.545')) + self.assertIn(obj.manufacture_cost, (11.545, Decimal('11.545'))) # Order of the annotate/extra in the query doesn't matter obj = Book.objects.extra(select={'manufacture_cost': 'price * .5'}).annotate(mean_auth_age=Avg('authors__age')).get(pk=2) @@ -150,12 +150,12 @@ class AggregationTests(TestCase): rating=3.0 ) # Different DB backends return different types for the extra select computation - self.assertTrue(obj.manufacture_cost == 11.545 or obj.manufacture_cost == Decimal('11.545')) + self.assertIn(obj.manufacture_cost, (11.545, Decimal('11.545'))) # Values queries can be combined with annotate and extra obj = Book.objects.annotate(mean_auth_age=Avg('authors__age')).extra(select={'manufacture_cost': 'price * .5'}).values().get(pk=2) manufacture_cost = obj['manufacture_cost'] - self.assertTrue(manufacture_cost == 11.545 or manufacture_cost == Decimal('11.545')) + self.assertIn(manufacture_cost, (11.545, Decimal('11.545'))) del obj['manufacture_cost'] self.assertEqual(obj, { "contact_id": 3, @@ -174,7 +174,7 @@ class AggregationTests(TestCase): # matter obj = Book.objects.values().annotate(mean_auth_age=Avg('authors__age')).extra(select={'manufacture_cost': 'price * .5'}).get(pk=2) manufacture_cost = obj['manufacture_cost'] - self.assertTrue(manufacture_cost == 11.545 or manufacture_cost == Decimal('11.545')) + self.assertIn(manufacture_cost, (11.545, Decimal('11.545'))) del obj['manufacture_cost'] self.assertEqual(obj, { 'contact_id': 3, @@ -1156,15 +1156,15 @@ class JoinPromotionTests(TestCase): def test_existing_join_not_promoted(self): # No promotion for existing joins qs = Charlie.objects.filter(alfa__name__isnull=False).annotate(Count('alfa__name')) - self.assertTrue(' INNER JOIN ' in str(qs.query)) + self.assertIn(' INNER JOIN ', str(qs.query)) # Also, the existing join is unpromoted when doing filtering for already # promoted join. qs = Charlie.objects.annotate(Count('alfa__name')).filter(alfa__name__isnull=False) - self.assertTrue(' INNER JOIN ' in str(qs.query)) + self.assertIn(' INNER JOIN ', str(qs.query)) # But, as the join is nullable first use by annotate will be LOUTER qs = Charlie.objects.annotate(Count('alfa__name')) - self.assertTrue(' LEFT OUTER JOIN ' in str(qs.query)) + self.assertIn(' LEFT OUTER JOIN ', str(qs.query)) def test_non_nullable_fk_not_promoted(self): qs = Book.objects.annotate(Count('contact__name')) - self.assertTrue(' INNER JOIN ' in str(qs.query)) + self.assertIn(' INNER JOIN ', str(qs.query)) diff --git a/tests/backends/tests.py b/tests/backends/tests.py index 2ab8f680b5..be876cc089 100644 --- a/tests/backends/tests.py +++ b/tests/backends/tests.py @@ -392,7 +392,7 @@ class SequenceResetTest(TestCase): # If we create a new object now, it should have a PK greater # than the PK we specified manually. obj = models.Post.objects.create(name='New post', text='goodbye world') - self.assertTrue(obj.pk > 10) + self.assertGreater(obj.pk, 10) # This test needs to run outside of a transaction, otherwise closing the @@ -413,12 +413,12 @@ class ConnectionCreatedSignalTest(TransactionTestCase): connection_created.connect(receiver) connection.close() connection.cursor() - self.assertTrue(data["connection"].connection is connection.connection) + self.assertIs(data["connection"].connection, connection.connection) connection_created.disconnect(receiver) data.clear() connection.cursor() - self.assertTrue(data == {}) + self.assertEqual(data, {}) class EscapingChecks(TestCase): diff --git a/tests/basic/tests.py b/tests/basic/tests.py index 9ea0695e25..4f3e8a958f 100644 --- a/tests/basic/tests.py +++ b/tests/basic/tests.py @@ -134,7 +134,7 @@ class ModelInstanceCreationTests(TestCase): a.save() # You can use 'in' to test for membership... - self.assertTrue(a in Article.objects.all()) + self.assertIn(a, Article.objects.all()) # ... but there will often be more efficient ways if that is all you need: self.assertTrue(Article.objects.filter(id=a.id).exists()) @@ -171,12 +171,10 @@ class ModelTest(TestCase): some_pub_date = datetime(2014, 5, 16, 12, 1) a1 = Article.objects.create(headline='First', pub_date=some_pub_date) a2 = Article.objects.create(headline='Second', pub_date=some_pub_date) - self.assertTrue(a1 != a2) - self.assertFalse(a1 == a2) - self.assertTrue(a1 == Article.objects.get(id__exact=a1.id)) + self.assertNotEqual(a1, a2) + self.assertEqual(a1, Article.objects.get(id__exact=a1.id)) - self.assertTrue(Article.objects.get(id__exact=a1.id) != Article.objects.get(id__exact=a2.id)) - self.assertFalse(Article.objects.get(id__exact=a2.id) == Article.objects.get(id__exact=a1.id)) + self.assertNotEqual(Article.objects.get(id__exact=a1.id), Article.objects.get(id__exact=a2.id)) def test_multiple_objects_max_num_fetched(self): """ @@ -286,7 +284,7 @@ class ModelTest(TestCase): ) s = {a10, a11, a12} - self.assertTrue(Article.objects.get(headline='Article 11') in s) + self.assertIn(Article.objects.get(headline='Article 11'), s) def test_field_ordering(self): """ @@ -299,10 +297,10 @@ class ModelTest(TestCase): f1 = Field() f2 = Field(auto_created=True) f3 = Field() - self.assertTrue(f2 < f1) - self.assertTrue(f3 > f1) - self.assertFalse(f1 is None) - self.assertFalse(f2 in (None, 1, '')) + self.assertLess(f2, f1) + self.assertGreater(f3, f1) + self.assertIsNotNone(f1) + self.assertNotIn(f2, (None, 1, '')) def test_extra_method_select_argument_with_dashes_and_values(self): # The 'select' argument to extra() supports names with dashes in diff --git a/tests/bulk_create/tests.py b/tests/bulk_create/tests.py index f49fe4e54e..742e52fec8 100644 --- a/tests/bulk_create/tests.py +++ b/tests/bulk_create/tests.py @@ -116,7 +116,7 @@ class BulkCreateTests(TestCase): TwoFields.objects.bulk_create([ TwoFields(f1=i, f2=i + 1) for i in range(0, 1001) ]) - self.assertTrue(len(connection.queries) < 10) + self.assertLess(len(connection.queries), 10) def test_large_batch_mixed(self): """ @@ -146,7 +146,7 @@ class BulkCreateTests(TestCase): TwoFields.objects.bulk_create([ TwoFields(id=i if i % 2 == 0 else None, f1=i, f2=i + 1) for i in range(100000, 101000)]) - self.assertTrue(len(connection.queries) < 10) + self.assertLess(len(connection.queries), 10) def test_explicit_batch_size(self): objs = [TwoFields(f1=i, f2=i) for i in range(0, 4)] diff --git a/tests/cache/tests.py b/tests/cache/tests.py index ee003e9cac..3ad1979af4 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -2084,7 +2084,7 @@ class CacheHandlerTest(TestCase): cache1 = caches['default'] cache2 = caches['default'] - self.assertTrue(cache1 is cache2) + self.assertIs(cache1, cache2) def test_per_thread(self): """ @@ -2101,4 +2101,4 @@ class CacheHandlerTest(TestCase): t.start() t.join() - self.assertFalse(c[0] is c[1]) + self.assertIsNot(c[0], c[1]) diff --git a/tests/csrf_tests/tests.py b/tests/csrf_tests/tests.py index b12e409955..ee19017515 100644 --- a/tests/csrf_tests/tests.py +++ b/tests/csrf_tests/tests.py @@ -119,7 +119,7 @@ class CsrfViewMiddlewareTest(TestCase): self.assertEqual(csrf_cookie['secure'], True) self.assertEqual(csrf_cookie['httponly'], True) self.assertEqual(csrf_cookie['path'], '/test/') - self.assertTrue('Cookie' in resp2.get('Vary', '')) + self.assertIn('Cookie', resp2.get('Vary', '')) def test_process_response_get_token_not_used(self): """ @@ -340,7 +340,7 @@ class CsrfViewMiddlewareTest(TestCase): req = self._get_GET_no_csrf_cookie_request() resp = view(req) self.assertTrue(resp.cookies.get(settings.CSRF_COOKIE_NAME, False)) - self.assertTrue('Cookie' in resp.get('Vary', '')) + self.assertIn('Cookie', resp.get('Vary', '')) def test_ensures_csrf_cookie_with_middleware(self): """ @@ -357,7 +357,7 @@ class CsrfViewMiddlewareTest(TestCase): resp = view(req) resp2 = CsrfViewMiddleware().process_response(req, resp) self.assertTrue(resp2.cookies.get(settings.CSRF_COOKIE_NAME, False)) - self.assertTrue('Cookie' in resp2.get('Vary', '')) + self.assertIn('Cookie', resp2.get('Vary', '')) def test_ensures_csrf_cookie_no_logging(self): """ diff --git a/tests/datatypes/tests.py b/tests/datatypes/tests.py index e55405983d..4b21d4e6e2 100644 --- a/tests/datatypes/tests.py +++ b/tests/datatypes/tests.py @@ -14,7 +14,7 @@ class DataTypesTestCase(TestCase): def test_boolean_type(self): d = Donut(name='Apple Fritter') self.assertFalse(d.is_frosted) - self.assertTrue(d.has_sprinkles is None) + self.assertIsNone(d.has_sprinkles) d.has_sprinkles = True self.assertTrue(d.has_sprinkles) diff --git a/tests/empty/tests.py b/tests/empty/tests.py index 7cebb87c2a..1d98aa4e84 100644 --- a/tests/empty/tests.py +++ b/tests/empty/tests.py @@ -6,10 +6,10 @@ from .models import Empty class EmptyModelTests(TestCase): def test_empty(self): m = Empty() - self.assertEqual(m.id, None) + self.assertIsNone(m.id) m.save() Empty.objects.create() self.assertEqual(len(Empty.objects.all()), 2) - self.assertTrue(m.id is not None) + self.assertIsNotNone(m.id) existing = Empty(m.id) existing.save() diff --git a/tests/expressions/tests.py b/tests/expressions/tests.py index 36cb95a5f7..1bd8d7465c 100644 --- a/tests/expressions/tests.py +++ b/tests/expressions/tests.py @@ -210,7 +210,7 @@ class ExpressionsTests(TestCase): # keys, or attributes which involve joins. test_gmbh.point_of_contact = None test_gmbh.save() - self.assertTrue(test_gmbh.point_of_contact is None) + self.assertIsNone(test_gmbh.point_of_contact) def test(): test_gmbh.point_of_contact = F("ceo") diff --git a/tests/field_defaults/tests.py b/tests/field_defaults/tests.py index d9f28d8c5c..031fd75fe3 100644 --- a/tests/field_defaults/tests.py +++ b/tests/field_defaults/tests.py @@ -14,4 +14,4 @@ class DefaultTests(TestCase): self.assertIsInstance(a.id, six.integer_types) self.assertEqual(a.headline, "Default headline") - self.assertTrue((now - a.pub_date).seconds < 5) + self.assertLess((now - a.pub_date).seconds, 5) diff --git a/tests/file_storage/tests.py b/tests/file_storage/tests.py index 4e6fe869a1..e1938e9ea5 100644 --- a/tests/file_storage/tests.py +++ b/tests/file_storage/tests.py @@ -138,7 +138,7 @@ class FileStorageTests(unittest.TestCase): self.assertEqual(atime, datetime.fromtimestamp( os.path.getatime(self.storage.path(f_name)))) - self.assertTrue(datetime.now() - self.storage.accessed_time(f_name) < timedelta(seconds=2)) + self.assertLess(datetime.now() - self.storage.accessed_time(f_name), timedelta(seconds=2)) self.storage.delete(f_name) def test_file_created_time(self): @@ -154,7 +154,7 @@ class FileStorageTests(unittest.TestCase): self.assertEqual(ctime, datetime.fromtimestamp( os.path.getctime(self.storage.path(f_name)))) - self.assertTrue(datetime.now() - self.storage.created_time(f_name) < timedelta(seconds=2)) + self.assertLess(datetime.now() - self.storage.created_time(f_name), timedelta(seconds=2)) self.storage.delete(f_name) @@ -171,7 +171,7 @@ class FileStorageTests(unittest.TestCase): self.assertEqual(mtime, datetime.fromtimestamp( os.path.getmtime(self.storage.path(f_name)))) - self.assertTrue(datetime.now() - self.storage.modified_time(f_name) < timedelta(seconds=2)) + self.assertLess(datetime.now() - self.storage.modified_time(f_name), timedelta(seconds=2)) self.storage.delete(f_name) @@ -459,7 +459,7 @@ class FileFieldStorageTests(unittest.TestCase): obj1.normal = SimpleUploadedFile("assignment.txt", b"content") dirs, files = temp_storage.listdir("tests") self.assertEqual(dirs, []) - self.assertFalse("assignment.txt" in files) + self.assertNotIn("assignment.txt", files) obj1.save() dirs, files = temp_storage.listdir("tests") diff --git a/tests/file_uploads/tests.py b/tests/file_uploads/tests.py index 66d055e8cf..fe1a79fc9f 100644 --- a/tests/file_uploads/tests.py +++ b/tests/file_uploads/tests.py @@ -257,7 +257,7 @@ class FileUploadTests(TestCase): for name, _, expected in cases: got = result[name] self.assertEqual(expected, got, 'Mismatch for {0}'.format(name)) - self.assertTrue(len(got) < 256, + self.assertLess(len(got), 256, "Got a long file name (%s characters)." % len(got)) def test_content_type_extra(self): @@ -336,12 +336,12 @@ class FileUploadTests(TestCase): # Small file posting should work. response = self.client.post('/quota/', {'f': smallfile}) got = json.loads(response.content.decode('utf-8')) - self.assertTrue('f' in got) + self.assertIn('f', got) # Large files don't go through. response = self.client.post("/quota/", {'f': bigfile}) got = json.loads(response.content.decode('utf-8')) - self.assertTrue('f' not in got) + self.assertNotIn('f', got) def test_broken_custom_upload_handler(self): with tempfile.NamedTemporaryFile() as file: diff --git a/tests/fixtures_model_package/tests.py b/tests/fixtures_model_package/tests.py index d9f8c7f490..fd48dc1f9c 100644 --- a/tests/fixtures_model_package/tests.py +++ b/tests/fixtures_model_package/tests.py @@ -123,7 +123,6 @@ class InitialSQLTests(TestCase): out = StringIO() management.call_command("sqlcustom", "fixtures_model_package", stdout=out) output = out.getvalue() - self.assertTrue("INSERT INTO fixtures_model_package_book (name) " - "VALUES ('My Book')" in output) + self.assertIn("INSERT INTO fixtures_model_package_book (name) VALUES ('My Book')", output) # value from deprecated search path models/sql (remove in Django 1.9) - self.assertTrue("Deprecated Book" in output) + self.assertIn("Deprecated Book", output) diff --git a/tests/foreign_object/tests.py b/tests/foreign_object/tests.py index f361c5c8d5..fd34a05013 100644 --- a/tests/foreign_object/tests.py +++ b/tests/foreign_object/tests.py @@ -319,7 +319,7 @@ class MultiColumnFKTests(TestCase): with self.assertNumQueries(1): fetched = Article.objects.select_related('active_translation').get( active_translation__title='Otsikko') - self.assertTrue(fetched.active_translation.title == 'Otsikko') + self.assertEqual(fetched.active_translation.title, 'Otsikko') a2 = Article.objects.create(pub_date=datetime.date.today()) at2_fi = ArticleTranslation(article=a2, lang='fi', title='Atsikko', body='Diipadaapa', abstract='dipad') diff --git a/tests/forms_tests/tests/test_extra.py b/tests/forms_tests/tests/test_extra.py index 6ec1a62932..1d53a9bd1d 100644 --- a/tests/forms_tests/tests/test_extra.py +++ b/tests/forms_tests/tests/test_extra.py @@ -318,7 +318,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin): # label tag is correctly associated with month dropdown d = GetDate({'mydate_month': '1', 'mydate_day': '1', 'mydate_year': '2010'}) - self.assertTrue('