From 07b3d39d101ff0465a5084266745b3db143552e9 Mon Sep 17 00:00:00 2001 From: Dan Loewenherz Date: Fri, 7 Sep 2012 11:46:53 -0400 Subject: [PATCH 1/2] remove unused import in decoupling URLs tutorial, closes #18915 The `include` function isn't used in polls/urls.py. --- docs/intro/tutorial03.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/intro/tutorial03.txt b/docs/intro/tutorial03.txt index 6d4fb7eef1..2430bc3a2d 100644 --- a/docs/intro/tutorial03.txt +++ b/docs/intro/tutorial03.txt @@ -517,7 +517,7 @@ URLconf by removing the leading "polls/" from each line, and removing the lines registering the admin site. Your ``polls/urls.py`` file should now look like this:: - from django.conf.urls import patterns, include, url + from django.conf.urls import patterns, url urlpatterns = patterns('polls.views', url(r'^$', 'index'), From 292322f977b1844e15ba25d59d1e985461571c15 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Fri, 7 Sep 2012 13:17:09 -0400 Subject: [PATCH 2/2] [py3k] Silence many warnings while running the tests. --- django/contrib/auth/tests/models.py | 11 +- django/test/testcases.py | 2 +- django/utils/six.py | 7 + tests/modeltests/basic/tests.py | 28 ++-- tests/modeltests/empty/tests.py | 7 +- tests/modeltests/fixtures/tests.py | 34 ++--- tests/modeltests/many_to_many/tests.py | 3 +- tests/modeltests/many_to_one/tests.py | 2 +- tests/modeltests/update_only_fields/tests.py | 3 +- .../validation/test_error_messages.py | 3 +- tests/regressiontests/admin_filters/tests.py | 7 +- tests/regressiontests/admin_scripts/tests.py | 6 +- tests/regressiontests/backends/tests.py | 2 +- tests/regressiontests/cache/tests.py | 7 +- tests/regressiontests/file_storage/tests.py | 2 +- .../regressiontests/fixtures_regress/tests.py | 17 +-- tests/regressiontests/forms/tests/fields.py | 6 +- .../i18n/commands/compilation.py | 2 +- .../regressiontests/inline_formsets/tests.py | 4 +- tests/regressiontests/localflavor/tr/tests.py | 32 +++-- tests/regressiontests/m2m_regress/tests.py | 5 +- .../many_to_one_regress/tests.py | 5 +- tests/regressiontests/modeladmin/tests.py | 128 +++++++++--------- .../staticfiles_tests/tests.py | 2 +- tests/regressiontests/templates/custom.py | 51 +++---- tests/regressiontests/templates/loaders.py | 12 +- tests/regressiontests/test_utils/tests.py | 6 +- .../urlpatterns_reverse/tests.py | 8 +- tests/regressiontests/wsgi/tests.py | 7 +- 29 files changed, 213 insertions(+), 196 deletions(-) diff --git a/django/contrib/auth/tests/models.py b/django/contrib/auth/tests/models.py index b40157bfe2..e4efee4339 100644 --- a/django/contrib/auth/tests/models.py +++ b/django/contrib/auth/tests/models.py @@ -1,8 +1,9 @@ from django.conf import settings +from django.contrib.auth.models import (Group, User, SiteProfileNotAvailable, + UserManager) from django.test import TestCase from django.test.utils import override_settings -from django.contrib.auth.models import (Group, User, - SiteProfileNotAvailable, UserManager) +from django.utils import six @override_settings(USE_TZ=False, AUTH_PROFILE_MODULE='') @@ -13,19 +14,19 @@ class ProfileTestCase(TestCase): # calling get_profile without AUTH_PROFILE_MODULE set del settings.AUTH_PROFILE_MODULE - with self.assertRaisesRegexp(SiteProfileNotAvailable, + with six.assertRaisesRegex(self, SiteProfileNotAvailable, "You need to set AUTH_PROFILE_MODULE in your project"): user.get_profile() # Bad syntax in AUTH_PROFILE_MODULE: settings.AUTH_PROFILE_MODULE = 'foobar' - with self.assertRaisesRegexp(SiteProfileNotAvailable, + with six.assertRaisesRegex(self, SiteProfileNotAvailable, "app_label and model_name should be separated by a dot"): user.get_profile() # module that doesn't exist settings.AUTH_PROFILE_MODULE = 'foo.bar' - with self.assertRaisesRegexp(SiteProfileNotAvailable, + with six.assertRaisesRegex(self, SiteProfileNotAvailable, "Unable to load the profile model"): user.get_profile() diff --git a/django/test/testcases.py b/django/test/testcases.py index f12c431d3a..3c681db329 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -358,7 +358,7 @@ class SimpleTestCase(ut2.TestCase): args: Extra args. kwargs: Extra kwargs. """ - return self.assertRaisesRegexp(expected_exception, + return six.assertRaisesRegex(self, expected_exception, re.escape(expected_message), callable_obj, *args, **kwargs) def assertFieldOutput(self, fieldclass, valid, invalid, field_args=None, diff --git a/django/utils/six.py b/django/utils/six.py index e4ce939844..9e3823128f 100644 --- a/django/utils/six.py +++ b/django/utils/six.py @@ -370,13 +370,20 @@ def with_metaclass(meta, base=object): if PY3: _iterlists = "lists" + _assertRaisesRegex = "assertRaisesRegex" else: _iterlists = "iterlists" + _assertRaisesRegex = "assertRaisesRegexp" + def iterlists(d): """Return an iterator over the values of a MultiValueDict.""" return getattr(d, _iterlists)() +def assertRaisesRegex(self, *args, **kwargs): + return getattr(self, _assertRaisesRegex)(*args, **kwargs) + + add_move(MovedModule("_dummy_thread", "dummy_thread")) add_move(MovedModule("_thread", "thread")) diff --git a/tests/modeltests/basic/tests.py b/tests/modeltests/basic/tests.py index d96c60bbe8..6ec9ca03af 100644 --- a/tests/modeltests/basic/tests.py +++ b/tests/modeltests/basic/tests.py @@ -5,7 +5,7 @@ from datetime import datetime from django.core.exceptions import ObjectDoesNotExist from django.db.models.fields import Field, FieldDoesNotExist from django.test import TestCase, skipIfDBFeature, skipUnlessDBFeature -from django.utils.six import PY3 +from django.utils import six from django.utils.translation import ugettext_lazy from .models import Article @@ -82,7 +82,7 @@ class ModelTest(TestCase): # Django raises an Article.DoesNotExist exception for get() if the # parameters don't match any object. - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ObjectDoesNotExist, "Article matching query does not exist. Lookup parameters were " "{'id__exact': 2000}", @@ -91,14 +91,14 @@ class ModelTest(TestCase): ) # To avoid dict-ordering related errors check only one lookup # in single assert. - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ObjectDoesNotExist, ".*'pub_date__year': 2005.*", Article.objects.get, pub_date__year=2005, pub_date__month=8, ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ObjectDoesNotExist, ".*'pub_date__month': 8.*", Article.objects.get, @@ -106,7 +106,7 @@ class ModelTest(TestCase): pub_date__month=8, ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ObjectDoesNotExist, "Article matching query does not exist. Lookup parameters were " "{'pub_date__week_day': 6}", @@ -168,7 +168,7 @@ class ModelTest(TestCase): self.assertEqual(a4.headline, 'Fourth article') # Don't use invalid keyword arguments. - self.assertRaisesRegexp( + six.assertRaisesRegex(self, TypeError, "'foo' is an invalid keyword argument for this function", Article, @@ -259,13 +259,13 @@ class ModelTest(TestCase): "datetime.datetime(2005, 7, 28, 0, 0)"]) # dates() requires valid arguments. - self.assertRaisesRegexp( + six.assertRaisesRegex(self, TypeError, "dates\(\) takes at least 3 arguments \(1 given\)", Article.objects.dates, ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, FieldDoesNotExist, "Article has no field named 'invalid_field'", Article.objects.dates, @@ -273,7 +273,7 @@ class ModelTest(TestCase): "year", ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, AssertionError, "'kind' must be one of 'year', 'month' or 'day'.", Article.objects.dates, @@ -281,7 +281,7 @@ class ModelTest(TestCase): "bad_kind", ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, AssertionError, "'order' must be either 'ASC' or 'DESC'.", Article.objects.dates, @@ -323,7 +323,7 @@ class ModelTest(TestCase): ""]) # Slicing works with longs (Python 2 only -- Python 3 doesn't have longs). - if not PY3: + if not six.PY3: self.assertEqual(Article.objects.all()[long(0)], a) self.assertQuerysetEqual(Article.objects.all()[long(1):long(3)], ["", ""]) @@ -369,14 +369,14 @@ class ModelTest(TestCase): ""]) # Also, once you have sliced you can't filter, re-order or combine - self.assertRaisesRegexp( + six.assertRaisesRegex(self, AssertionError, "Cannot filter a query once a slice has been taken.", Article.objects.all()[0:5].filter, id=a.id, ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, AssertionError, "Cannot reorder a query once a slice has been taken.", Article.objects.all()[0:5].order_by, @@ -411,7 +411,7 @@ class ModelTest(TestCase): # An Article instance doesn't have access to the "objects" attribute. # That's only available on the class. - self.assertRaisesRegexp( + six.assertRaisesRegex(self, AttributeError, "Manager isn't accessible via Article instances", getattr, diff --git a/tests/modeltests/empty/tests.py b/tests/modeltests/empty/tests.py index db464c632d..4c0c4409d8 100644 --- a/tests/modeltests/empty/tests.py +++ b/tests/modeltests/empty/tests.py @@ -1,10 +1,10 @@ from __future__ import absolute_import -from django.conf import settings from django.core.exceptions import ImproperlyConfigured from django.db.models.loading import get_app from django.test import TestCase from django.test.utils import override_settings +from django.utils import six from .models import Empty @@ -14,12 +14,13 @@ class EmptyModelTests(TestCase): m = Empty() self.assertEqual(m.id, None) m.save() - m2 = Empty.objects.create() + Empty.objects.create() self.assertEqual(len(Empty.objects.all()), 2) self.assertTrue(m.id is not None) existing = Empty(m.id) existing.save() + class NoModelTests(TestCase): """ Test for #7198 to ensure that the proper error message is raised @@ -32,6 +33,6 @@ class NoModelTests(TestCase): """ @override_settings(INSTALLED_APPS=("modeltests.empty.no_models",)) def test_no_models(self): - with self.assertRaisesRegexp(ImproperlyConfigured, + with six.assertRaisesRegex(self, ImproperlyConfigured, 'App with label no_models is missing a models.py module.'): get_app('no_models') diff --git a/tests/modeltests/fixtures/tests.py b/tests/modeltests/fixtures/tests.py index b332348425..f9b0ac8a46 100644 --- a/tests/modeltests/fixtures/tests.py +++ b/tests/modeltests/fixtures/tests.py @@ -4,7 +4,7 @@ from django.contrib.sites.models import Site from django.core import management from django.db import connection, IntegrityError from django.test import TestCase, TransactionTestCase, skipUnlessDBFeature -from django.utils.six import StringIO +from django.utils import six from .models import Article, Book, Spy, Tag, Visa @@ -21,16 +21,17 @@ class TestCaseFixtureLoadingTests(TestCase): '', ]) + class FixtureLoadingTests(TestCase): def _dumpdata_assert(self, args, output, format='json', natural_keys=False, use_base_manager=False, exclude_list=[]): - new_io = StringIO() - management.call_command('dumpdata', *args, **{'format':format, - 'stdout':new_io, - 'stderr':new_io, - 'use_natural_keys':natural_keys, - 'use_base_manager':use_base_manager, + new_io = six.StringIO() + management.call_command('dumpdata', *args, **{'format': format, + 'stdout': new_io, + 'stderr': new_io, + 'use_natural_keys': natural_keys, + 'use_base_manager': use_base_manager, 'exclude': exclude_list}) command_output = new_io.getvalue().strip() self.assertEqual(command_output, output) @@ -42,8 +43,6 @@ class FixtureLoadingTests(TestCase): ]) def test_loading_and_dumping(self): - new_io = StringIO() - Site.objects.all().delete() # Load fixture 1. Single JSON file, with two objects. management.call_command('loaddata', 'fixture1.json', verbosity=0, commit=False) @@ -184,12 +183,12 @@ class FixtureLoadingTests(TestCase): exclude_list=['fixtures.Article', 'fixtures.Book', 'sites']) # Excluding a bogus app should throw an error - with self.assertRaisesRegexp(management.CommandError, + with six.assertRaisesRegex(self, management.CommandError, "Unknown app in excludes: foo_app"): self._dumpdata_assert(['fixtures', 'sites'], '', exclude_list=['foo_app']) # Excluding a bogus model should throw an error - with self.assertRaisesRegexp(management.CommandError, + with six.assertRaisesRegex(self, management.CommandError, "Unknown model in excludes: fixtures.FooModel"): self._dumpdata_assert(['fixtures', 'sites'], '', exclude_list=['fixtures.FooModel']) @@ -199,7 +198,7 @@ class FixtureLoadingTests(TestCase): self.assertQuerysetEqual(Spy.objects.all(), ['']) # Use the default manager - self._dumpdata_assert(['fixtures.Spy'],'[{"pk": %d, "model": "fixtures.spy", "fields": {"cover_blown": false}}]' % spy1.pk) + self._dumpdata_assert(['fixtures.Spy'], '[{"pk": %d, "model": "fixtures.spy", "fields": {"cover_blown": false}}]' % spy1.pk) # Dump using Django's base manager. Should return all objects, # even those normally filtered by the manager self._dumpdata_assert(['fixtures.Spy'], '[{"pk": %d, "model": "fixtures.spy", "fields": {"cover_blown": true}}, {"pk": %d, "model": "fixtures.spy", "fields": {"cover_blown": false}}]' % (spy2.pk, spy1.pk), use_base_manager=True) @@ -227,7 +226,7 @@ class FixtureLoadingTests(TestCase): def test_ambiguous_compressed_fixture(self): # The name "fixture5" is ambigous, so loading it will raise an error - with self.assertRaisesRegexp(management.CommandError, + with six.assertRaisesRegex(self, management.CommandError, "Multiple fixtures named 'fixture5'"): management.call_command('loaddata', 'fixture5', verbosity=0, commit=False) @@ -251,7 +250,7 @@ class FixtureLoadingTests(TestCase): # is closed at the end of each test. if connection.vendor == 'mysql': connection.cursor().execute("SET sql_mode = 'TRADITIONAL'") - with self.assertRaisesRegexp(IntegrityError, + with six.assertRaisesRegex(self, IntegrityError, "Could not load fixtures.Article\(pk=1\): .*$"): management.call_command('loaddata', 'invalid.json', verbosity=0, commit=False) @@ -290,10 +289,11 @@ class FixtureLoadingTests(TestCase): self._dumpdata_assert(['fixtures'], """ News StoriesLatest news storiesPoker has no place on ESPN2006-06-16T12:00:00Time to reform copyright2006-06-16T13:00:00copyrightfixturesarticle3lawfixturesarticle3Django ReinhardtStephane GrappelliPrinceAchieving self-awareness of Python programs""", format='xml', natural_keys=True) + class FixtureTransactionTests(TransactionTestCase): def _dumpdata_assert(self, args, output, format='json'): - new_io = StringIO() - management.call_command('dumpdata', *args, **{'format':format, 'stdout':new_io}) + new_io = six.StringIO() + management.call_command('dumpdata', *args, **{'format': format, 'stdout': new_io}) command_output = new_io.getvalue().strip() self.assertEqual(command_output, output) @@ -308,7 +308,7 @@ class FixtureTransactionTests(TransactionTestCase): # Try to load fixture 2 using format discovery; this will fail # because there are two fixture2's in the fixtures directory - with self.assertRaisesRegexp(management.CommandError, + with six.assertRaisesRegex(self, management.CommandError, "Multiple fixtures named 'fixture2'"): management.call_command('loaddata', 'fixture2', verbosity=0) diff --git a/tests/modeltests/many_to_many/tests.py b/tests/modeltests/many_to_many/tests.py index 44bdde3aeb..7d30379b94 100644 --- a/tests/modeltests/many_to_many/tests.py +++ b/tests/modeltests/many_to_many/tests.py @@ -1,6 +1,7 @@ from __future__ import absolute_import from django.test import TestCase +from django.utils import six from .models import Article, Publication @@ -52,7 +53,7 @@ class ManyToManyTests(TestCase): ]) # Adding an object of the wrong type raises TypeError - with self.assertRaisesRegexp(TypeError, "'Publication' instance expected, got "]) # Adding an object of the wrong type raises TypeError. - with self.assertRaisesRegexp(TypeError, "'Article' instance expected, got has more than 1 ForeignKey to ", inlineformset_factory, Parent, Child ) @@ -143,7 +143,7 @@ class InlineFormsetFactoryTest(TestCase): If the field specified in fk_name is not a ForeignKey, we should get an exception. """ - self.assertRaisesRegexp(Exception, + six.assertRaisesRegex(self, Exception, " has no field named 'test'", inlineformset_factory, Parent, Child, fk_name='test' ) diff --git a/tests/regressiontests/localflavor/tr/tests.py b/tests/regressiontests/localflavor/tr/tests.py index 3ec1f5b7c4..476efc12ba 100644 --- a/tests/regressiontests/localflavor/tr/tests.py +++ b/tests/regressiontests/localflavor/tr/tests.py @@ -2,29 +2,31 @@ from django.contrib.localflavor.tr import forms as trforms from django.core.exceptions import ValidationError +from django.utils import six from django.utils.unittest import TestCase + class TRLocalFlavorTests(TestCase): def test_TRPostalCodeField(self): f = trforms.TRPostalCodeField() self.assertEqual(f.clean("06531"), "06531") self.assertEqual(f.clean("12345"), "12345") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, "Enter a postal code in the format XXXXX.", f.clean, "a1234") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, "Enter a postal code in the format XXXXX.", f.clean, "1234") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, "Enter a postal code in the format XXXXX.", f.clean, "82123") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, "Enter a postal code in the format XXXXX.", f.clean, "00123") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, "Enter a postal code in the format XXXXX.", f.clean, "123456") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, "Enter a postal code in the format XXXXX.", f.clean, "12 34") self.assertRaises(ValidationError, f.clean, None) @@ -40,34 +42,34 @@ class TRLocalFlavorTests(TestCase): self.assertEqual(f.clean("+90 312 455 4567"), "3124554567") self.assertEqual(f.clean("+90 312 455 45 67"), "3124554567") self.assertEqual(f.clean("+90 (312) 4554567"), "3124554567") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Phone numbers must be in 0XXX XXX XXXX format.', f.clean, "1234 233 1234") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Phone numbers must be in 0XXX XXX XXXX format.', f.clean, "0312 233 12345") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Phone numbers must be in 0XXX XXX XXXX format.', f.clean, "0312 233 123") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Phone numbers must be in 0XXX XXX XXXX format.', f.clean, "0312 233 xxxx") def test_TRIdentificationNumberField(self): f = trforms.TRIdentificationNumberField() self.assertEqual(f.clean("10000000146"), "10000000146") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Enter a valid Turkish Identification number.', f.clean, "10000000136") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Enter a valid Turkish Identification number.', f.clean, "10000000147") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Turkish Identification number must be 11 digits.', f.clean, "123456789") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Enter a valid Turkish Identification number.', f.clean, "1000000014x") - self.assertRaisesRegexp(ValidationError, + six.assertRaisesRegex(self, ValidationError, 'Enter a valid Turkish Identification number.', f.clean, "x0000000146") diff --git a/tests/regressiontests/m2m_regress/tests.py b/tests/regressiontests/m2m_regress/tests.py index e3dab59b9f..92628c1825 100644 --- a/tests/regressiontests/m2m_regress/tests.py +++ b/tests/regressiontests/m2m_regress/tests.py @@ -2,6 +2,7 @@ from __future__ import absolute_import from django.core.exceptions import FieldError from django.test import TestCase +from django.utils import six from .models import (SelfRefer, Tag, TagCollection, Entry, SelfReferChild, SelfReferChildSibling, Worksheet) @@ -35,7 +36,7 @@ class M2MRegressionTests(TestCase): # The secret internal related names for self-referential many-to-many # fields shouldn't appear in the list when an error is made. - self.assertRaisesRegexp(FieldError, + six.assertRaisesRegex(self, FieldError, "Choices are: id, name, references, related, selfreferchild, selfreferchildsibling$", lambda: SelfRefer.objects.filter(porcupine='fred') ) @@ -70,7 +71,7 @@ class M2MRegressionTests(TestCase): t2 = Tag.objects.create(name='t2') c1 = TagCollection.objects.create(name='c1') - c1.tags = [t1,t2] + c1.tags = [t1, t2] c1 = TagCollection.objects.get(name='c1') self.assertQuerysetEqual(c1.tags.all(), ["", ""]) diff --git a/tests/regressiontests/many_to_one_regress/tests.py b/tests/regressiontests/many_to_one_regress/tests.py index 481a037139..d980d7437c 100644 --- a/tests/regressiontests/many_to_one_regress/tests.py +++ b/tests/regressiontests/many_to_one_regress/tests.py @@ -2,8 +2,9 @@ from __future__ import absolute_import from django.db import models from django.test import TestCase +from django.utils import six -from .models import First, Second, Third, Parent, Child, Category, Record, Relation +from .models import First, Third, Parent, Child, Category, Record, Relation class ManyToOneRegressionTests(TestCase): @@ -59,7 +60,7 @@ class ManyToOneRegressionTests(TestCase): self.assertRaises(ValueError, Child.objects.create, name='xyzzy', parent=None) # Trying to assign to unbound attribute raises AttributeError - self.assertRaisesRegexp(AttributeError, "must be accessed via instance", + six.assertRaisesRegex(self, AttributeError, "must be accessed via instance", Child.parent.__set__, None, p) # Creation using keyword argument should cache the related object. diff --git a/tests/regressiontests/modeladmin/tests.py b/tests/regressiontests/modeladmin/tests.py index d55d50d0a5..b0a181218b 100644 --- a/tests/regressiontests/modeladmin/tests.py +++ b/tests/regressiontests/modeladmin/tests.py @@ -16,7 +16,7 @@ from django.forms.models import BaseModelFormSet from django.forms.widgets import Select from django.test import TestCase from django.test.utils import str_prefix -from django.utils import unittest +from django.utils import unittest, six from .models import Band, Concert, ValidationTestModel, ValidationTestInlineModel @@ -506,7 +506,7 @@ class ValidationTests(unittest.TestCase): site = AdminSite() - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.raw_id_fields' must be a list or tuple.", site.register, @@ -524,7 +524,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): raw_id_fields = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.raw_id_fields' must be a list or tuple.", validate, @@ -535,7 +535,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): raw_id_fields = ('non_existent_field',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.raw_id_fields' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -546,7 +546,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): raw_id_fields = ('name',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.raw_id_fields\[0\]', 'name' must be either a ForeignKey or ManyToManyField.", validate, @@ -564,7 +564,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fieldsets = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.fieldsets' must be a list or tuple.", validate, @@ -575,7 +575,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fieldsets = ({},) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.fieldsets\[0\]' must be a list or tuple.", validate, @@ -586,7 +586,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fieldsets = ((),) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.fieldsets\[0\]' does not have exactly two elements.", validate, @@ -597,7 +597,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fieldsets = (("General", ()),) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.fieldsets\[0\]\[1\]' must be a dictionary.", validate, @@ -608,7 +608,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fieldsets = (("General", {}),) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'fields' key is required in ValidationTestModelAdmin.fieldsets\[0\]\[1\] field options dict.", validate, @@ -619,7 +619,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fieldsets = (("General", {"fields": ("non_existent_field",)}),) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.fieldsets\[0\]\[1\]\['fields'\]' refers to field 'non_existent_field' that is missing from the form.", validate, @@ -636,7 +636,7 @@ class ValidationTests(unittest.TestCase): fieldsets = (("General", {"fields": ("name",)}),) fields = ["name",] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "Both fieldsets and fields are specified in ValidationTestModelAdmin.", validate, @@ -647,7 +647,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fieldsets = [(None, {'fields': ['name', 'name']})] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "There are duplicate field\(s\) in ValidationTestModelAdmin.fieldsets", validate, @@ -658,7 +658,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): fields = ["name", "name"] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "There are duplicate field\(s\) in ValidationTestModelAdmin.fields", validate, @@ -674,7 +674,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): form = FakeForm - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "ValidationTestModelAdmin.form does not inherit from BaseModelForm.", validate, @@ -692,7 +692,7 @@ class ValidationTests(unittest.TestCase): }), ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'BandAdmin.fieldsets\[0\]\[1\]\['fields'\]' refers to field 'non_existent_field' that is missing from the form.", validate, @@ -722,7 +722,7 @@ class ValidationTests(unittest.TestCase): }), ) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'BandAdmin.fieldsets\[0]\[1\]\['fields'\]' refers to field 'non_existent_field' that is missing from the form.", validate, @@ -752,7 +752,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): filter_vertical = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.filter_vertical' must be a list or tuple.", validate, @@ -763,7 +763,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): filter_vertical = ("non_existent_field",) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.filter_vertical' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -774,7 +774,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): filter_vertical = ("name",) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.filter_vertical\[0\]' must be a ManyToManyField.", validate, @@ -792,7 +792,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): filter_horizontal = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.filter_horizontal' must be a list or tuple.", validate, @@ -803,7 +803,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): filter_horizontal = ("non_existent_field",) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.filter_horizontal' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -814,7 +814,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): filter_horizontal = ("name",) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.filter_horizontal\[0\]' must be a ManyToManyField.", validate, @@ -832,7 +832,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): radio_fields = () - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.radio_fields' must be a dictionary.", validate, @@ -843,7 +843,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): radio_fields = {"non_existent_field": None} - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.radio_fields' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -854,7 +854,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): radio_fields = {"name": None} - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.radio_fields\['name'\]' is neither an instance of ForeignKey nor does have choices set.", validate, @@ -865,7 +865,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): radio_fields = {"state": None} - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.radio_fields\['state'\]' is neither admin.HORIZONTAL nor admin.VERTICAL.", validate, @@ -883,7 +883,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): prepopulated_fields = () - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.prepopulated_fields' must be a dictionary.", validate, @@ -894,7 +894,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): prepopulated_fields = {"non_existent_field": None} - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.prepopulated_fields' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -905,7 +905,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): prepopulated_fields = {"slug": ("non_existent_field",)} - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.prepopulated_fields\['slug'\]\[0\]' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -916,7 +916,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): prepopulated_fields = {"users": ("name",)} - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.prepopulated_fields\['users'\]' is either a DateTimeField, ForeignKey or ManyToManyField. This isn't allowed.", validate, @@ -934,7 +934,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_display = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_display' must be a list or tuple.", validate, @@ -945,7 +945,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_display = ('non_existent_field',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, str_prefix("ValidationTestModelAdmin.list_display\[0\], %(_)s'non_existent_field' is not a callable or an attribute of 'ValidationTestModelAdmin' or found in the model 'ValidationTestModel'."), validate, @@ -956,7 +956,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_display = ('users',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_display\[0\]', 'users' is a ManyToManyField which is not supported.", validate, @@ -979,7 +979,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_display_links = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_display_links' must be a list or tuple.", validate, @@ -990,7 +990,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_display_links = ('non_existent_field',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_display_links\[0\]' refers to 'non_existent_field' which is not defined in 'list_display'.", validate, @@ -1001,7 +1001,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_display_links = ('name',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_display_links\[0\]' refers to 'name' which is not defined in 'list_display'.", validate, @@ -1025,7 +1025,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_filter = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_filter' must be a list or tuple.", validate, @@ -1036,7 +1036,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_filter = ('non_existent_field',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_filter\[0\]' refers to 'non_existent_field' which does not refer to a Field.", validate, @@ -1050,7 +1050,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_filter = (RandomClass,) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_filter\[0\]' is 'RandomClass' which is not a descendant of ListFilter.", validate, @@ -1061,7 +1061,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_filter = (('is_active', RandomClass),) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_filter\[0\]\[1\]' is 'RandomClass' which is not of type FieldListFilter.", validate, @@ -1080,7 +1080,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_filter = (('is_active', AwesomeFilter),) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_filter\[0\]\[1\]' is 'AwesomeFilter' which is not of type FieldListFilter.", validate, @@ -1091,7 +1091,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_filter = (BooleanFieldListFilter,) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_filter\[0\]' is 'BooleanFieldListFilter' which is of type FieldListFilter but is not associated with a field name.", validate, @@ -1111,7 +1111,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_per_page = 'hello' - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_per_page' should be a integer.", validate, @@ -1129,7 +1129,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_max_show_all = 'hello' - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_max_show_all' should be an integer.", validate, @@ -1147,7 +1147,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): search_fields = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.search_fields' must be a list or tuple.", validate, @@ -1160,7 +1160,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): date_hierarchy = 'non_existent_field' - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.date_hierarchy' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -1171,7 +1171,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): date_hierarchy = 'name' - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.date_hierarchy is neither an instance of DateField nor DateTimeField.", validate, @@ -1189,7 +1189,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): ordering = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.ordering' must be a list or tuple.", validate, @@ -1200,7 +1200,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): ordering = ('non_existent_field',) - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.ordering\[0\]' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestModel'.", validate, @@ -1211,7 +1211,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): ordering = ('?', 'name') - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.ordering' has the random ordering marker '\?', but contains other fields as well. Please either remove '\?' or the other fields.", validate, @@ -1239,7 +1239,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): list_select_related = 1 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.list_select_related' should be a boolean.", validate, @@ -1257,7 +1257,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): save_as = 1 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.save_as' should be a boolean.", validate, @@ -1275,7 +1275,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): save_on_top = 1 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.save_on_top' should be a boolean.", validate, @@ -1293,7 +1293,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = 10 - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.inlines' must be a list or tuple.", validate, @@ -1307,7 +1307,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.inlines\[0\]' does not inherit from BaseModelAdmin.", validate, @@ -1321,7 +1321,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'model' is a required attribute of 'ValidationTestModelAdmin.inlines\[0\]'.", validate, @@ -1338,7 +1338,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestModelAdmin.inlines\[0\].model' does not inherit from models.Model.", validate, @@ -1363,7 +1363,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestInline.fields' must be a list or tuple.", validate, @@ -1378,7 +1378,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestInline.fields' refers to field 'non_existent_field' that is missing from the form.", validate, @@ -1395,7 +1395,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestInline.fk_name' refers to field 'non_existent_field' that is missing from model 'modeladmin.ValidationTestInlineModel'.", validate, @@ -1421,7 +1421,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestInline.extra' should be a integer.", validate, @@ -1447,7 +1447,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestInline.max_num' should be an integer or None \(default\).", validate, @@ -1476,7 +1476,7 @@ class ValidationTests(unittest.TestCase): class ValidationTestModelAdmin(ModelAdmin): inlines = [ValidationTestInline] - self.assertRaisesRegexp( + six.assertRaisesRegex(self, ImproperlyConfigured, "'ValidationTestInline.formset' does not inherit from BaseModelFormSet.", validate, diff --git a/tests/regressiontests/staticfiles_tests/tests.py b/tests/regressiontests/staticfiles_tests/tests.py index 078788a6a9..7ecbccc448 100644 --- a/tests/regressiontests/staticfiles_tests/tests.py +++ b/tests/regressiontests/staticfiles_tests/tests.py @@ -617,7 +617,7 @@ class TestServeDisabled(TestServeStatic): settings.DEBUG = False def test_disabled_serving(self): - self.assertRaisesRegexp(ImproperlyConfigured, 'The staticfiles view ' + six.assertRaisesRegex(self, ImproperlyConfigured, 'The staticfiles view ' 'can only be used in debug mode ', self._response, 'test.txt') diff --git a/tests/regressiontests/templates/custom.py b/tests/regressiontests/templates/custom.py index 4e295d990e..4aea08237d 100644 --- a/tests/regressiontests/templates/custom.py +++ b/tests/regressiontests/templates/custom.py @@ -1,6 +1,7 @@ from __future__ import absolute_import, unicode_literals from django import template +from django.utils import six from django.utils.unittest import TestCase from .templatetags import custom @@ -51,7 +52,7 @@ class CustomTagTests(TestCase): t = template.Template('{% load custom %}{% simple_one_default one=99 two="hello" %}') self.assertEqual(t.render(c), 'simple_one_default - Expected result: 99, hello') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'simple_one_default' received unexpected keyword argument 'three'", template.Template, '{% load custom %}{% simple_one_default 99 two="hello" three="foo" %}') @@ -70,22 +71,22 @@ class CustomTagTests(TestCase): t = template.Template('{% load custom %}{% simple_only_unlimited_args 37 42 56 89 %}') self.assertEqual(t.render(c), 'simple_only_unlimited_args - Expected result: 37, 42, 56, 89') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'simple_two_params' received too many positional arguments", template.Template, '{% load custom %}{% simple_two_params 37 42 56 %}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'simple_one_default' received too many positional arguments", template.Template, '{% load custom %}{% simple_one_default 37 42 56 %}') t = template.Template('{% load custom %}{% simple_unlimited_args_kwargs 37 40|add:2 56 eggs="scrambled" four=1|add:3 %}') self.assertEqual(t.render(c), 'simple_unlimited_args_kwargs - Expected result: 37, 42, 56 / eggs=scrambled, four=4') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'simple_unlimited_args_kwargs' received some positional argument\(s\) after some keyword argument\(s\)", template.Template, '{% load custom %}{% simple_unlimited_args_kwargs 37 40|add:2 eggs="scrambled" 56 four=1|add:3 %}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'simple_unlimited_args_kwargs' received multiple values for keyword argument 'eggs'", template.Template, '{% load custom %}{% simple_unlimited_args_kwargs 37 eggs="scrambled" eggs="scrambled" %}') @@ -101,7 +102,7 @@ class CustomTagTests(TestCase): def test_simple_tag_missing_context(self): # The 'context' parameter must be present when takes_context is True - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'simple_tag_without_context_parameter' is decorated with takes_context=True so it must have a first argument of 'context'", template.Template, '{% load custom %}{% simple_tag_without_context_parameter 123 %}') @@ -135,7 +136,7 @@ class CustomTagTests(TestCase): t = template.Template('{% load custom %}{% inclusion_one_default one=99 two="hello" %}') self.assertEqual(t.render(c), 'inclusion_one_default - Expected result: 99, hello\n') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_one_default' received unexpected keyword argument 'three'", template.Template, '{% load custom %}{% inclusion_one_default 99 two="hello" three="foo" %}') @@ -154,36 +155,36 @@ class CustomTagTests(TestCase): t = template.Template('{% load custom %}{% inclusion_only_unlimited_args 37 42 56 89 %}') self.assertEqual(t.render(c), 'inclusion_only_unlimited_args - Expected result: 37, 42, 56, 89\n') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_two_params' received too many positional arguments", template.Template, '{% load custom %}{% inclusion_two_params 37 42 56 %}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_one_default' received too many positional arguments", template.Template, '{% load custom %}{% inclusion_one_default 37 42 56 %}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_one_default' did not receive value\(s\) for the argument\(s\): 'one'", template.Template, '{% load custom %}{% inclusion_one_default %}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_unlimited_args' did not receive value\(s\) for the argument\(s\): 'one'", template.Template, '{% load custom %}{% inclusion_unlimited_args %}') t = template.Template('{% load custom %}{% inclusion_unlimited_args_kwargs 37 40|add:2 56 eggs="scrambled" four=1|add:3 %}') self.assertEqual(t.render(c), 'inclusion_unlimited_args_kwargs - Expected result: 37, 42, 56 / eggs=scrambled, four=4\n') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_unlimited_args_kwargs' received some positional argument\(s\) after some keyword argument\(s\)", template.Template, '{% load custom %}{% inclusion_unlimited_args_kwargs 37 40|add:2 eggs="scrambled" 56 four=1|add:3 %}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_unlimited_args_kwargs' received multiple values for keyword argument 'eggs'", template.Template, '{% load custom %}{% inclusion_unlimited_args_kwargs 37 eggs="scrambled" eggs="scrambled" %}') def test_include_tag_missing_context(self): # The 'context' parameter must be present when takes_context is True - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'inclusion_tag_without_context_parameter' is decorated with takes_context=True so it must have a first argument of 'context'", template.Template, '{% load custom %}{% inclusion_tag_without_context_parameter 123 %}') @@ -296,7 +297,7 @@ class CustomTagTests(TestCase): t = template.Template('{% load custom %}{% assignment_one_default one=99 two="hello" as var %}The result is: {{ var }}') self.assertEqual(t.render(c), 'The result is: assignment_one_default - Expected result: 99, hello') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_one_default' received unexpected keyword argument 'three'", template.Template, '{% load custom %}{% assignment_one_default 99 two="hello" three="foo" as var %}') @@ -315,42 +316,42 @@ class CustomTagTests(TestCase): t = template.Template('{% load custom %}{% assignment_only_unlimited_args 37 42 56 89 as var %}The result is: {{ var }}') self.assertEqual(t.render(c), 'The result is: assignment_only_unlimited_args - Expected result: 37, 42, 56, 89') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_one_param' tag takes at least 2 arguments and the second last argument must be 'as'", template.Template, '{% load custom %}{% assignment_one_param 37 %}The result is: {{ var }}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_one_param' tag takes at least 2 arguments and the second last argument must be 'as'", template.Template, '{% load custom %}{% assignment_one_param 37 as %}The result is: {{ var }}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_one_param' tag takes at least 2 arguments and the second last argument must be 'as'", template.Template, '{% load custom %}{% assignment_one_param 37 ass var %}The result is: {{ var }}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_two_params' received too many positional arguments", template.Template, '{% load custom %}{% assignment_two_params 37 42 56 as var %}The result is: {{ var }}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_one_default' received too many positional arguments", template.Template, '{% load custom %}{% assignment_one_default 37 42 56 as var %}The result is: {{ var }}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_one_default' did not receive value\(s\) for the argument\(s\): 'one'", template.Template, '{% load custom %}{% assignment_one_default as var %}The result is: {{ var }}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_unlimited_args' did not receive value\(s\) for the argument\(s\): 'one'", template.Template, '{% load custom %}{% assignment_unlimited_args as var %}The result is: {{ var }}') t = template.Template('{% load custom %}{% assignment_unlimited_args_kwargs 37 40|add:2 56 eggs="scrambled" four=1|add:3 as var %}The result is: {{ var }}') self.assertEqual(t.render(c), 'The result is: assignment_unlimited_args_kwargs - Expected result: 37, 42, 56 / eggs=scrambled, four=4') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_unlimited_args_kwargs' received some positional argument\(s\) after some keyword argument\(s\)", template.Template, '{% load custom %}{% assignment_unlimited_args_kwargs 37 40|add:2 eggs="scrambled" 56 four=1|add:3 as var %}The result is: {{ var }}') - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_unlimited_args_kwargs' received multiple values for keyword argument 'eggs'", template.Template, '{% load custom %}{% assignment_unlimited_args_kwargs 37 eggs="scrambled" eggs="scrambled" as var %}The result is: {{ var }}') @@ -371,6 +372,6 @@ class CustomTagTests(TestCase): def test_assignment_tag_missing_context(self): # The 'context' parameter must be present when takes_context is True - self.assertRaisesRegexp(template.TemplateSyntaxError, + six.assertRaisesRegex(self, template.TemplateSyntaxError, "'assignment_tag_without_context_parameter' is decorated with takes_context=True so it must have a first argument of 'context'", template.Template, '{% load custom %}{% assignment_tag_without_context_parameter 123 as var %}') diff --git a/tests/regressiontests/templates/loaders.py b/tests/regressiontests/templates/loaders.py index 6b635c8f23..7fbb0841f9 100644 --- a/tests/regressiontests/templates/loaders.py +++ b/tests/regressiontests/templates/loaders.py @@ -17,7 +17,7 @@ import os.path from django.template import TemplateDoesNotExist, Context from django.template.loaders.eggs import Loader as EggLoader from django.template import loader -from django.utils import unittest +from django.utils import unittest, six from django.utils.six import StringIO @@ -30,7 +30,7 @@ class MockProvider(pkg_resources.NullProvider): def _has(self, path): return path in self.module._resources - def _isdir(self,path): + def _isdir(self, path): return False def get_resource_stream(self, manager, resource_name): @@ -61,8 +61,8 @@ class EggLoaderTest(unittest.TestCase): self.empty_egg = create_egg("egg_empty", {}) self.egg_1 = create_egg("egg_1", { - os.path.normcase('templates/y.html') : StringIO("y"), - os.path.normcase('templates/x.txt') : StringIO("x"), + os.path.normcase('templates/y.html'): StringIO("y"), + os.path.normcase('templates/x.txt'): StringIO("x"), }) self._old_installed_apps = settings.INSTALLED_APPS settings.INSTALLED_APPS = [] @@ -144,12 +144,12 @@ class RenderToStringTest(unittest.TestCase): self.assertEqual(context['obj'], 'before') def test_empty_list(self): - self.assertRaisesRegexp(TemplateDoesNotExist, + six.assertRaisesRegex(self, TemplateDoesNotExist, 'No template names provided$', loader.render_to_string, []) def test_select_templates_from_empty_list(self): - self.assertRaisesRegexp(TemplateDoesNotExist, + six.assertRaisesRegex(self, TemplateDoesNotExist, 'No template names provided$', loader.select_template, []) diff --git a/tests/regressiontests/test_utils/tests.py b/tests/regressiontests/test_utils/tests.py index 3749014372..468af77f44 100644 --- a/tests/regressiontests/test_utils/tests.py +++ b/tests/regressiontests/test_utils/tests.py @@ -137,15 +137,15 @@ class AssertTemplateUsedContextManagerTests(TestCase): pass def test_error_message(self): - with self.assertRaisesRegexp(AssertionError, r'^template_used/base\.html'): + with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html'): with self.assertTemplateUsed('template_used/base.html'): pass - with self.assertRaisesRegexp(AssertionError, r'^template_used/base\.html'): + with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html'): with self.assertTemplateUsed(template_name='template_used/base.html'): pass - with self.assertRaisesRegexp(AssertionError, r'^template_used/base\.html.*template_used/alternative\.html$'): + with six.assertRaisesRegex(self, AssertionError, r'^template_used/base\.html.*template_used/alternative\.html$'): with self.assertTemplateUsed('template_used/base.html'): render_to_string('template_used/alternative.html') diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py index 168892719a..0ea5ffe380 100644 --- a/tests/regressiontests/urlpatterns_reverse/tests.py +++ b/tests/regressiontests/urlpatterns_reverse/tests.py @@ -4,6 +4,7 @@ Unit tests for reverse URL lookups. from __future__ import absolute_import, unicode_literals from django.conf import settings +from django.contrib.auth.models import User from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist from django.core.urlresolvers import (reverse, resolve, get_callable, get_resolver, NoReverseMatch, Resolver404, ResolverMatch, RegexURLResolver, @@ -11,10 +12,9 @@ from django.core.urlresolvers import (reverse, resolve, get_callable, from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect from django.shortcuts import redirect from django.test import TestCase -from django.utils import unittest -from django.contrib.auth.models import User +from django.utils import unittest, six -from . import urlconf_outer, urlconf_inner, middleware, views +from . import urlconf_outer, middleware, views resolve_test_data = ( @@ -535,7 +535,7 @@ class ViewLoadingTests(TestCase): def test_view_loading(self): # A missing view (identified by an AttributeError) should raise # ViewDoesNotExist, ... - self.assertRaisesRegexp(ViewDoesNotExist, ".*View does not exist in.*", + six.assertRaisesRegex(self, ViewDoesNotExist, ".*View does not exist in.*", get_callable, 'regressiontests.urlpatterns_reverse.views.i_should_not_exist') # ... but if the AttributeError is caused by something else don't diff --git a/tests/regressiontests/wsgi/tests.py b/tests/regressiontests/wsgi/tests.py index 5a40bd88e2..6c1483d2cd 100644 --- a/tests/regressiontests/wsgi/tests.py +++ b/tests/regressiontests/wsgi/tests.py @@ -6,8 +6,7 @@ from django.core.wsgi import get_wsgi_application from django.test import TestCase from django.test.client import RequestFactory from django.test.utils import override_settings -from django.utils import six -from django.utils import unittest +from django.utils import six, unittest class WSGITest(TestCase): @@ -84,7 +83,7 @@ class GetInternalWSGIApplicationTest(unittest.TestCase): @override_settings(WSGI_APPLICATION="regressiontests.wsgi.noexist.app") def test_bad_module(self): - with self.assertRaisesRegexp( + with six.assertRaisesRegex(self, ImproperlyConfigured, r"^WSGI application 'regressiontests.wsgi.noexist.app' could not be loaded; could not import module 'regressiontests.wsgi.noexist':"): @@ -93,7 +92,7 @@ class GetInternalWSGIApplicationTest(unittest.TestCase): @override_settings(WSGI_APPLICATION="regressiontests.wsgi.wsgi.noexist") def test_bad_name(self): - with self.assertRaisesRegexp( + with six.assertRaisesRegex(self, ImproperlyConfigured, r"^WSGI application 'regressiontests.wsgi.wsgi.noexist' could not be loaded; can't find 'noexist' in module 'regressiontests.wsgi.wsgi':"):