Made reused RequestFactory instances class attributes.
This commit is contained in:
parent
7f63b894c0
commit
0f212db29d
|
@ -49,14 +49,12 @@ def build_tbody_html(pk, href, extra_fields):
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF="admin_changelist.urls")
|
@override_settings(ROOT_URLCONF="admin_changelist.urls")
|
||||||
class ChangeListTests(TestCase):
|
class ChangeListTests(TestCase):
|
||||||
|
factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
cls.superuser = User.objects.create_superuser(username='super', email='a@b.com', password='xxx')
|
cls.superuser = User.objects.create_superuser(username='super', email='a@b.com', password='xxx')
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def _create_superuser(self, username):
|
def _create_superuser(self, username):
|
||||||
return User.objects.create_superuser(username=username, email='a@b.com', password='xxx')
|
return User.objects.create_superuser(username=username, email='a@b.com', password='xxx')
|
||||||
|
|
||||||
|
|
|
@ -249,6 +249,7 @@ class BookmarkAdminGenericRelation(ModelAdmin):
|
||||||
|
|
||||||
|
|
||||||
class ListFiltersTests(TestCase):
|
class ListFiltersTests(TestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
|
@ -297,9 +298,6 @@ class ListFiltersTests(TestCase):
|
||||||
cls.john = Employee.objects.create(name='John Blue', department=cls.dev)
|
cls.john = Employee.objects.create(name='John Blue', department=cls.dev)
|
||||||
cls.jack = Employee.objects.create(name='Jack Red', department=cls.design)
|
cls.jack = Employee.objects.create(name='Jack Red', department=cls.design)
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self.request_factory = RequestFactory()
|
|
||||||
|
|
||||||
def test_choicesfieldlistfilter_has_none_choice(self):
|
def test_choicesfieldlistfilter_has_none_choice(self):
|
||||||
"""
|
"""
|
||||||
The last choice is for the None value.
|
The last choice is for the None value.
|
||||||
|
|
|
@ -27,6 +27,8 @@ class TestDataMixin:
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='admin_inlines.urls')
|
@override_settings(ROOT_URLCONF='admin_inlines.urls')
|
||||||
class TestInline(TestDataMixin, TestCase):
|
class TestInline(TestDataMixin, TestCase):
|
||||||
|
factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
super().setUpTestData()
|
super().setUpTestData()
|
||||||
|
@ -35,7 +37,6 @@ class TestInline(TestDataMixin, TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.client.force_login(self.superuser)
|
self.client.force_login(self.superuser)
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def test_can_delete(self):
|
def test_can_delete(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -34,6 +34,7 @@ class TestAdminOrdering(TestCase):
|
||||||
in ModelAdmin rather that ordering defined in the model's inner Meta
|
in ModelAdmin rather that ordering defined in the model's inner Meta
|
||||||
class.
|
class.
|
||||||
"""
|
"""
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
|
@ -43,9 +44,6 @@ class TestAdminOrdering(TestCase):
|
||||||
Band(name='Van Halen', bio='', rank=2),
|
Band(name='Van Halen', bio='', rank=2),
|
||||||
])
|
])
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self.request_factory = RequestFactory()
|
|
||||||
|
|
||||||
def test_default_ordering(self):
|
def test_default_ordering(self):
|
||||||
"""
|
"""
|
||||||
The default ordering should be by name, as specified in the inner Meta
|
The default ordering should be by name, as specified in the inner Meta
|
||||||
|
|
|
@ -23,13 +23,14 @@ class SiteEachContextTest(TestCase):
|
||||||
Check each_context contains the documented variables and that available_apps context
|
Check each_context contains the documented variables and that available_apps context
|
||||||
variable structure is the expected one.
|
variable structure is the expected one.
|
||||||
"""
|
"""
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
cls.u1 = User.objects.create_superuser(username='super', password='secret', email='super@example.com')
|
cls.u1 = User.objects.create_superuser(username='super', password='secret', email='super@example.com')
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
factory = RequestFactory()
|
request = self.request_factory.get(reverse('test_adminsite:index'))
|
||||||
request = factory.get(reverse('test_adminsite:index'))
|
|
||||||
request.user = self.u1
|
request.user = self.u1
|
||||||
self.ctx = site.each_context(request)
|
self.ctx = site.each_context(request)
|
||||||
|
|
||||||
|
@ -41,7 +42,7 @@ class SiteEachContextTest(TestCase):
|
||||||
self.assertIs(ctx['has_permission'], True)
|
self.assertIs(ctx['has_permission'], True)
|
||||||
|
|
||||||
def test_each_context_site_url_with_script_name(self):
|
def test_each_context_site_url_with_script_name(self):
|
||||||
request = RequestFactory().get(reverse('test_adminsite:index'), SCRIPT_NAME='/my-script-name/')
|
request = self.request_factory.get(reverse('test_adminsite:index'), SCRIPT_NAME='/my-script-name/')
|
||||||
request.user = self.u1
|
request.user = self.u1
|
||||||
self.assertEqual(site.each_context(request)['site_url'], '/my-script-name/')
|
self.assertEqual(site.each_context(request)['site_url'], '/my-script-name/')
|
||||||
|
|
||||||
|
|
|
@ -14,12 +14,13 @@ from .tests import AdminViewBasicTestCase
|
||||||
|
|
||||||
|
|
||||||
class AdminTemplateTagsTest(AdminViewBasicTestCase):
|
class AdminTemplateTagsTest(AdminViewBasicTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def test_submit_row(self):
|
def test_submit_row(self):
|
||||||
"""
|
"""
|
||||||
submit_row template tag should pass whole context.
|
submit_row template tag should pass whole context.
|
||||||
"""
|
"""
|
||||||
factory = RequestFactory()
|
request = self.request_factory.get(reverse('admin:auth_user_change', args=[self.superuser.pk]))
|
||||||
request = factory.get(reverse('admin:auth_user_change', args=[self.superuser.pk]))
|
|
||||||
request.user = self.superuser
|
request.user = self.superuser
|
||||||
admin = UserAdmin(User, site)
|
admin = UserAdmin(User, site)
|
||||||
extra_context = {'extra': True}
|
extra_context = {'extra': True}
|
||||||
|
@ -33,9 +34,8 @@ class AdminTemplateTagsTest(AdminViewBasicTestCase):
|
||||||
admin_modify template tags follow the standard search pattern
|
admin_modify template tags follow the standard search pattern
|
||||||
admin/app_label/model/template.html.
|
admin/app_label/model/template.html.
|
||||||
"""
|
"""
|
||||||
factory = RequestFactory()
|
|
||||||
article = Article.objects.all()[0]
|
article = Article.objects.all()[0]
|
||||||
request = factory.get(reverse('admin:admin_views_article_change', args=[article.pk]))
|
request = self.request_factory.get(reverse('admin:admin_views_article_change', args=[article.pk]))
|
||||||
request.user = self.superuser
|
request.user = self.superuser
|
||||||
admin = ArticleAdmin(Article, site)
|
admin = ArticleAdmin(Article, site)
|
||||||
extra_context = {'show_publish': True, 'extra': True}
|
extra_context = {'show_publish': True, 'extra': True}
|
||||||
|
@ -53,8 +53,7 @@ class AdminTemplateTagsTest(AdminViewBasicTestCase):
|
||||||
admin_list template tags follow the standard search pattern
|
admin_list template tags follow the standard search pattern
|
||||||
admin/app_label/model/template.html.
|
admin/app_label/model/template.html.
|
||||||
"""
|
"""
|
||||||
factory = RequestFactory()
|
request = self.request_factory.get(reverse('admin:admin_views_article_changelist'))
|
||||||
request = factory.get(reverse('admin:admin_views_article_changelist'))
|
|
||||||
request.user = self.superuser
|
request.user = self.superuser
|
||||||
admin = ArticleAdmin(Article, site)
|
admin = ArticleAdmin(Article, site)
|
||||||
admin.date_hierarchy = 'date'
|
admin.date_hierarchy = 'date'
|
||||||
|
|
|
@ -58,6 +58,8 @@ class PermissionsRequiredDecoratorTest(TestCase):
|
||||||
"""
|
"""
|
||||||
Tests for the permission_required decorator
|
Tests for the permission_required decorator
|
||||||
"""
|
"""
|
||||||
|
factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
cls.user = models.User.objects.create(username='joe', password='qwerty')
|
cls.user = models.User.objects.create(username='joe', password='qwerty')
|
||||||
|
@ -65,9 +67,6 @@ class PermissionsRequiredDecoratorTest(TestCase):
|
||||||
perms = models.Permission.objects.filter(codename__in=('add_customuser', 'change_customuser'))
|
perms = models.Permission.objects.filter(codename__in=('add_customuser', 'change_customuser'))
|
||||||
cls.user.user_permissions.add(*perms)
|
cls.user.user_permissions.add(*perms)
|
||||||
|
|
||||||
def setUp(self):
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def test_many_permissions_pass(self):
|
def test_many_permissions_pass(self):
|
||||||
|
|
||||||
@permission_required(['auth_tests.add_customuser', 'auth_tests.change_customuser'])
|
@permission_required(['auth_tests.add_customuser', 'auth_tests.change_customuser'])
|
||||||
|
|
|
@ -14,13 +14,13 @@ from .client import PasswordResetConfirmClient
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='auth_tests.urls')
|
@override_settings(ROOT_URLCONF='auth_tests.urls')
|
||||||
class AuthTemplateTests(TestCase):
|
class AuthTemplateTests(TestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
rf = RequestFactory()
|
|
||||||
user = User.objects.create_user('jsmith', 'jsmith@example.com', 'pass')
|
user = User.objects.create_user('jsmith', 'jsmith@example.com', 'pass')
|
||||||
user = authenticate(username=user.username, password='pass')
|
user = authenticate(username=user.username, password='pass')
|
||||||
request = rf.get('/somepath/')
|
request = cls.request_factory.get('/somepath/')
|
||||||
request.user = user
|
request.user = user
|
||||||
cls.user, cls.request = user, request
|
cls.user, cls.request = user, request
|
||||||
|
|
||||||
|
|
|
@ -264,9 +264,7 @@ def caches_setting_for_tests(base=None, exclude=None, **params):
|
||||||
|
|
||||||
class BaseCacheTests:
|
class BaseCacheTests:
|
||||||
# A common set of tests to apply to all cache backends
|
# A common set of tests to apply to all cache backends
|
||||||
|
factory = RequestFactory()
|
||||||
def setUp(self):
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
@ -1584,11 +1582,9 @@ class DefaultNonExpiringCacheKeyTests(SimpleTestCase):
|
||||||
)
|
)
|
||||||
class CacheUtils(SimpleTestCase):
|
class CacheUtils(SimpleTestCase):
|
||||||
"""TestCase for django.utils.cache functions."""
|
"""TestCase for django.utils.cache functions."""
|
||||||
|
host = 'www.example.com'
|
||||||
def setUp(self):
|
path = '/cache/test/'
|
||||||
self.host = 'www.example.com'
|
factory = RequestFactory(HTTP_HOST=host)
|
||||||
self.path = '/cache/test/'
|
|
||||||
self.factory = RequestFactory(HTTP_HOST=self.host)
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
@ -1734,10 +1730,8 @@ class PrefixedCacheUtils(CacheUtils):
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
class CacheHEADTest(SimpleTestCase):
|
class CacheHEADTest(SimpleTestCase):
|
||||||
|
path = '/cache/test/'
|
||||||
def setUp(self):
|
factory = RequestFactory()
|
||||||
self.path = '/cache/test/'
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
@ -1786,10 +1780,8 @@ class CacheHEADTest(SimpleTestCase):
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
class CacheI18nTest(SimpleTestCase):
|
class CacheI18nTest(SimpleTestCase):
|
||||||
|
path = '/cache/test/'
|
||||||
def setUp(self):
|
factory = RequestFactory()
|
||||||
self.path = '/cache/test/'
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
@ -2014,10 +2006,9 @@ def csrf_view(request):
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
class CacheMiddlewareTest(SimpleTestCase):
|
class CacheMiddlewareTest(SimpleTestCase):
|
||||||
|
factory = RequestFactory()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
self.default_cache = caches['default']
|
self.default_cache = caches['default']
|
||||||
self.other_cache = caches['other']
|
self.other_cache = caches['other']
|
||||||
|
|
||||||
|
@ -2226,9 +2217,8 @@ class TestWithTemplateResponse(SimpleTestCase):
|
||||||
content being complete (which is not necessarily always the case
|
content being complete (which is not necessarily always the case
|
||||||
with a TemplateResponse)
|
with a TemplateResponse)
|
||||||
"""
|
"""
|
||||||
def setUp(self):
|
path = '/cache/test/'
|
||||||
self.path = '/cache/test/'
|
factory = RequestFactory()
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
cache.clear()
|
cache.clear()
|
||||||
|
|
|
@ -91,10 +91,10 @@ class GenericAdminViewTest(TestDataMixin, TestCase):
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='generic_inline_admin.urls')
|
@override_settings(ROOT_URLCONF='generic_inline_admin.urls')
|
||||||
class GenericInlineAdminParametersTest(TestDataMixin, TestCase):
|
class GenericInlineAdminParametersTest(TestDataMixin, TestCase):
|
||||||
|
factory = RequestFactory()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.client.force_login(self.superuser)
|
self.client.force_login(self.superuser)
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def _create_object(self, model):
|
def _create_object(self, model):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -12,6 +12,8 @@ from .models import Artist, Author
|
||||||
|
|
||||||
|
|
||||||
class FormMixinTests(SimpleTestCase):
|
class FormMixinTests(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def test_initial_data(self):
|
def test_initial_data(self):
|
||||||
""" Test instance independence of initial data dict (see #16138) """
|
""" Test instance independence of initial data dict (see #16138) """
|
||||||
initial_1 = FormMixin().get_initial()
|
initial_1 = FormMixin().get_initial()
|
||||||
|
@ -23,8 +25,7 @@ class FormMixinTests(SimpleTestCase):
|
||||||
""" Test prefix can be set (see #18872) """
|
""" Test prefix can be set (see #18872) """
|
||||||
test_string = 'test'
|
test_string = 'test'
|
||||||
|
|
||||||
rf = RequestFactory()
|
get_request = self.request_factory.get('/')
|
||||||
get_request = rf.get('/')
|
|
||||||
|
|
||||||
class TestFormMixin(FormMixin):
|
class TestFormMixin(FormMixin):
|
||||||
request = get_request
|
request = get_request
|
||||||
|
@ -39,7 +40,7 @@ class FormMixinTests(SimpleTestCase):
|
||||||
|
|
||||||
def test_get_form(self):
|
def test_get_form(self):
|
||||||
class TestFormMixin(FormMixin):
|
class TestFormMixin(FormMixin):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
|
|
||||||
self.assertIsInstance(
|
self.assertIsInstance(
|
||||||
TestFormMixin().get_form(forms.Form), forms.Form,
|
TestFormMixin().get_form(forms.Form), forms.Form,
|
||||||
|
@ -56,7 +57,7 @@ class FormMixinTests(SimpleTestCase):
|
||||||
|
|
||||||
def test_get_context_data(self):
|
def test_get_context_data(self):
|
||||||
class FormContext(FormMixin):
|
class FormContext(FormMixin):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
form_class = forms.Form
|
form_class = forms.Form
|
||||||
|
|
||||||
self.assertIsInstance(FormContext().get_context_data()['form'], forms.Form)
|
self.assertIsInstance(FormContext().get_context_data()['form'], forms.Form)
|
||||||
|
|
|
@ -8,6 +8,7 @@ from django.test import (
|
||||||
|
|
||||||
|
|
||||||
class HandlerTests(SimpleTestCase):
|
class HandlerTests(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
request_started.disconnect(close_old_connections)
|
request_started.disconnect(close_old_connections)
|
||||||
|
@ -24,7 +25,7 @@ class HandlerTests(SimpleTestCase):
|
||||||
A non-UTF-8 path populates PATH_INFO with an URL-encoded path and
|
A non-UTF-8 path populates PATH_INFO with an URL-encoded path and
|
||||||
produces a 404.
|
produces a 404.
|
||||||
"""
|
"""
|
||||||
environ = RequestFactory().get('/').environ
|
environ = self.request_factory.get('/').environ
|
||||||
environ['PATH_INFO'] = '\xed'
|
environ['PATH_INFO'] = '\xed'
|
||||||
handler = WSGIHandler()
|
handler = WSGIHandler()
|
||||||
response = handler(environ, lambda *a, **k: None)
|
response = handler(environ, lambda *a, **k: None)
|
||||||
|
@ -35,7 +36,7 @@ class HandlerTests(SimpleTestCase):
|
||||||
"""
|
"""
|
||||||
Non-ASCII query strings are properly decoded (#20530, #22996).
|
Non-ASCII query strings are properly decoded (#20530, #22996).
|
||||||
"""
|
"""
|
||||||
environ = RequestFactory().get('/').environ
|
environ = self.request_factory.get('/').environ
|
||||||
raw_query_strings = [
|
raw_query_strings = [
|
||||||
b'want=caf%C3%A9', # This is the proper way to encode 'café'
|
b'want=caf%C3%A9', # This is the proper way to encode 'café'
|
||||||
b'want=caf\xc3\xa9', # UA forgot to quote bytes
|
b'want=caf\xc3\xa9', # UA forgot to quote bytes
|
||||||
|
@ -53,7 +54,7 @@ class HandlerTests(SimpleTestCase):
|
||||||
|
|
||||||
def test_non_ascii_cookie(self):
|
def test_non_ascii_cookie(self):
|
||||||
"""Non-ASCII cookies set in JavaScript are properly decoded (#20557)."""
|
"""Non-ASCII cookies set in JavaScript are properly decoded (#20557)."""
|
||||||
environ = RequestFactory().get('/').environ
|
environ = self.request_factory.get('/').environ
|
||||||
raw_cookie = 'want="café"'.encode('utf-8').decode('iso-8859-1')
|
raw_cookie = 'want="café"'.encode('utf-8').decode('iso-8859-1')
|
||||||
environ['HTTP_COOKIE'] = raw_cookie
|
environ['HTTP_COOKIE'] = raw_cookie
|
||||||
request = WSGIRequest(environ)
|
request = WSGIRequest(environ)
|
||||||
|
@ -64,7 +65,7 @@ class HandlerTests(SimpleTestCase):
|
||||||
Invalid cookie content should result in an absent cookie, but not in a
|
Invalid cookie content should result in an absent cookie, but not in a
|
||||||
crash while trying to decode it (#23638).
|
crash while trying to decode it (#23638).
|
||||||
"""
|
"""
|
||||||
environ = RequestFactory().get('/').environ
|
environ = self.request_factory.get('/').environ
|
||||||
environ['HTTP_COOKIE'] = 'x=W\x03c(h]\x8e'
|
environ['HTTP_COOKIE'] = 'x=W\x03c(h]\x8e'
|
||||||
request = WSGIRequest(environ)
|
request = WSGIRequest(environ)
|
||||||
# We don't test COOKIES content, as the result might differ between
|
# We don't test COOKIES content, as the result might differ between
|
||||||
|
@ -78,7 +79,7 @@ class HandlerTests(SimpleTestCase):
|
||||||
Invalid boundary string should produce a "Bad Request" response, not a
|
Invalid boundary string should produce a "Bad Request" response, not a
|
||||||
server error (#23887).
|
server error (#23887).
|
||||||
"""
|
"""
|
||||||
environ = RequestFactory().post('/malformed_post/').environ
|
environ = self.request_factory.post('/malformed_post/').environ
|
||||||
environ['CONTENT_TYPE'] = 'multipart/form-data; boundary=WRONG\x07'
|
environ['CONTENT_TYPE'] = 'multipart/form-data; boundary=WRONG\x07'
|
||||||
handler = WSGIHandler()
|
handler = WSGIHandler()
|
||||||
response = handler(environ, lambda *a, **k: None)
|
response = handler(environ, lambda *a, **k: None)
|
||||||
|
@ -153,6 +154,7 @@ def empty_middleware(get_response):
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='handlers.urls')
|
@override_settings(ROOT_URLCONF='handlers.urls')
|
||||||
class HandlerRequestTests(SimpleTestCase):
|
class HandlerRequestTests(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def test_suspiciousop_in_view_returns_400(self):
|
def test_suspiciousop_in_view_returns_400(self):
|
||||||
response = self.client.get('/suspicious/')
|
response = self.client.get('/suspicious/')
|
||||||
|
@ -172,14 +174,14 @@ class HandlerRequestTests(SimpleTestCase):
|
||||||
self.assertContains(response, '\u260e%E2%A9\u2665', status_code=404)
|
self.assertContains(response, '\u260e%E2%A9\u2665', status_code=404)
|
||||||
|
|
||||||
def test_environ_path_info_type(self):
|
def test_environ_path_info_type(self):
|
||||||
environ = RequestFactory().get('/%E2%A8%87%87%A5%E2%A8%A0').environ
|
environ = self.request_factory.get('/%E2%A8%87%87%A5%E2%A8%A0').environ
|
||||||
self.assertIsInstance(environ['PATH_INFO'], str)
|
self.assertIsInstance(environ['PATH_INFO'], str)
|
||||||
|
|
||||||
def test_handle_accepts_httpstatus_enum_value(self):
|
def test_handle_accepts_httpstatus_enum_value(self):
|
||||||
def start_response(status, headers):
|
def start_response(status, headers):
|
||||||
start_response.status = status
|
start_response.status = status
|
||||||
|
|
||||||
environ = RequestFactory().get('/httpstatus_enum/').environ
|
environ = self.request_factory.get('/httpstatus_enum/').environ
|
||||||
WSGIHandler()(environ, start_response)
|
WSGIHandler()(environ, start_response)
|
||||||
self.assertEqual(start_response.status, '200 OK')
|
self.assertEqual(start_response.status, '200 OK')
|
||||||
|
|
||||||
|
|
|
@ -1142,10 +1142,7 @@ class FormattingTests(SimpleTestCase):
|
||||||
|
|
||||||
|
|
||||||
class MiscTests(SimpleTestCase):
|
class MiscTests(SimpleTestCase):
|
||||||
|
rf = RequestFactory()
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
self.rf = RequestFactory()
|
|
||||||
|
|
||||||
@override_settings(LANGUAGE_CODE='de')
|
@override_settings(LANGUAGE_CODE='de')
|
||||||
def test_english_fallback(self):
|
def test_english_fallback(self):
|
||||||
|
@ -1640,10 +1637,7 @@ class UnprefixedDefaultLanguageTests(SimpleTestCase):
|
||||||
ROOT_URLCONF='i18n.urls'
|
ROOT_URLCONF='i18n.urls'
|
||||||
)
|
)
|
||||||
class CountrySpecificLanguageTests(SimpleTestCase):
|
class CountrySpecificLanguageTests(SimpleTestCase):
|
||||||
|
rf = RequestFactory()
|
||||||
def setUp(self):
|
|
||||||
super().setUp()
|
|
||||||
self.rf = RequestFactory()
|
|
||||||
|
|
||||||
def test_check_for_language(self):
|
def test_check_for_language(self):
|
||||||
self.assertTrue(check_for_language('en'))
|
self.assertTrue(check_for_language('en'))
|
||||||
|
|
|
@ -246,6 +246,7 @@ class CallbackFilterTest(SimpleTestCase):
|
||||||
|
|
||||||
class AdminEmailHandlerTest(SimpleTestCase):
|
class AdminEmailHandlerTest(SimpleTestCase):
|
||||||
logger = logging.getLogger('django')
|
logger = logging.getLogger('django')
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def get_admin_email_handler(self, logger):
|
def get_admin_email_handler(self, logger):
|
||||||
# AdminEmailHandler does not get filtered out
|
# AdminEmailHandler does not get filtered out
|
||||||
|
@ -307,8 +308,7 @@ class AdminEmailHandlerTest(SimpleTestCase):
|
||||||
orig_filters = admin_email_handler.filters
|
orig_filters = admin_email_handler.filters
|
||||||
try:
|
try:
|
||||||
admin_email_handler.filters = []
|
admin_email_handler.filters = []
|
||||||
rf = RequestFactory()
|
request = self.request_factory.get('/')
|
||||||
request = rf.get('/')
|
|
||||||
self.logger.error(
|
self.logger.error(
|
||||||
message, token1, token2,
|
message, token1, token2,
|
||||||
extra={
|
extra={
|
||||||
|
@ -388,9 +388,8 @@ class AdminEmailHandlerTest(SimpleTestCase):
|
||||||
"""
|
"""
|
||||||
handler = self.get_admin_email_handler(self.logger)
|
handler = self.get_admin_email_handler(self.logger)
|
||||||
record = self.logger.makeRecord('name', logging.ERROR, 'function', 'lno', 'message', None, None)
|
record = self.logger.makeRecord('name', logging.ERROR, 'function', 'lno', 'message', None, None)
|
||||||
rf = RequestFactory()
|
|
||||||
url_path = '/º'
|
url_path = '/º'
|
||||||
record.request = rf.get(url_path)
|
record.request = self.request_factory.get(url_path)
|
||||||
handler.emit(record)
|
handler.emit(record)
|
||||||
self.assertEqual(len(mail.outbox), 1)
|
self.assertEqual(len(mail.outbox), 1)
|
||||||
msg = mail.outbox[0]
|
msg = mail.outbox[0]
|
||||||
|
|
|
@ -15,8 +15,9 @@ class DummyStorage:
|
||||||
|
|
||||||
|
|
||||||
class ApiTests(SimpleTestCase):
|
class ApiTests(SimpleTestCase):
|
||||||
|
rf = RequestFactory()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.rf = RequestFactory()
|
|
||||||
self.request = self.rf.request()
|
self.request = self.rf.request()
|
||||||
self.storage = DummyStorage()
|
self.storage = DummyStorage()
|
||||||
|
|
||||||
|
|
|
@ -428,9 +428,10 @@ class BrokenLinkEmailsMiddlewareTest(SimpleTestCase):
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='middleware.cond_get_urls')
|
@override_settings(ROOT_URLCONF='middleware.cond_get_urls')
|
||||||
class ConditionalGetMiddlewareTest(SimpleTestCase):
|
class ConditionalGetMiddlewareTest(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.req = RequestFactory().get('/')
|
self.req = self.request_factory.get('/')
|
||||||
self.resp = self.client.get(self.req.path_info)
|
self.resp = self.client.get(self.req.path_info)
|
||||||
|
|
||||||
# Tests for the ETag header
|
# Tests for the ETag header
|
||||||
|
@ -569,7 +570,7 @@ class ConditionalGetMiddlewareTest(SimpleTestCase):
|
||||||
"""
|
"""
|
||||||
get_response = ConditionalGetMiddleware().process_response(self.req, self.resp)
|
get_response = ConditionalGetMiddleware().process_response(self.req, self.resp)
|
||||||
etag = get_response['ETag']
|
etag = get_response['ETag']
|
||||||
put_request = RequestFactory().put('/', HTTP_IF_MATCH=etag)
|
put_request = self.request_factory.put('/', HTTP_IF_MATCH=etag)
|
||||||
put_response = HttpResponse(status=200)
|
put_response = HttpResponse(status=200)
|
||||||
conditional_get_response = ConditionalGetMiddleware().process_response(put_request, put_response)
|
conditional_get_response = ConditionalGetMiddleware().process_response(put_request, put_response)
|
||||||
self.assertEqual(conditional_get_response.status_code, 200) # should never be a 412
|
self.assertEqual(conditional_get_response.status_code, 200) # should never be a 412
|
||||||
|
@ -580,7 +581,7 @@ class ConditionalGetMiddlewareTest(SimpleTestCase):
|
||||||
HEAD request since it can't do so accurately without access to the
|
HEAD request since it can't do so accurately without access to the
|
||||||
response body of the corresponding GET.
|
response body of the corresponding GET.
|
||||||
"""
|
"""
|
||||||
request = RequestFactory().head('/')
|
request = self.request_factory.head('/')
|
||||||
response = HttpResponse(status=200)
|
response = HttpResponse(status=200)
|
||||||
conditional_get_response = ConditionalGetMiddleware().process_response(request, response)
|
conditional_get_response = ConditionalGetMiddleware().process_response(request, response)
|
||||||
self.assertNotIn('ETag', conditional_get_response)
|
self.assertNotIn('ETag', conditional_get_response)
|
||||||
|
@ -700,9 +701,10 @@ class GZipMiddlewareTest(SimpleTestCase):
|
||||||
incompressible_string = b''.join(int2byte(random.randint(0, 255)) for _ in range(500))
|
incompressible_string = b''.join(int2byte(random.randint(0, 255)) for _ in range(500))
|
||||||
sequence = [b'a' * 500, b'b' * 200, b'a' * 300]
|
sequence = [b'a' * 500, b'b' * 200, b'a' * 300]
|
||||||
sequence_unicode = ['a' * 500, 'é' * 200, 'a' * 300]
|
sequence_unicode = ['a' * 500, 'é' * 200, 'a' * 300]
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.req = RequestFactory().get('/')
|
self.req = self.request_factory.get('/')
|
||||||
self.req.META['HTTP_ACCEPT_ENCODING'] = 'gzip, deflate'
|
self.req.META['HTTP_ACCEPT_ENCODING'] = 'gzip, deflate'
|
||||||
self.req.META['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'
|
self.req.META['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1'
|
||||||
self.resp = HttpResponse()
|
self.resp = HttpResponse()
|
||||||
|
|
|
@ -15,9 +15,10 @@ class Stub:
|
||||||
|
|
||||||
|
|
||||||
class WSGIRequestHandlerTestCase(SimpleTestCase):
|
class WSGIRequestHandlerTestCase(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def test_log_message(self):
|
def test_log_message(self):
|
||||||
request = WSGIRequest(RequestFactory().get('/').environ)
|
request = WSGIRequest(self.request_factory.get('/').environ)
|
||||||
request.makefile = lambda *args, **kwargs: BytesIO()
|
request.makefile = lambda *args, **kwargs: BytesIO()
|
||||||
handler = WSGIRequestHandler(request, '192.168.0.2', None)
|
handler = WSGIRequestHandler(request, '192.168.0.2', None)
|
||||||
level_status_codes = {
|
level_status_codes = {
|
||||||
|
@ -39,7 +40,7 @@ class WSGIRequestHandlerTestCase(SimpleTestCase):
|
||||||
self.assertNotEqual(cm.records[0].levelname, wrong_level.upper())
|
self.assertNotEqual(cm.records[0].levelname, wrong_level.upper())
|
||||||
|
|
||||||
def test_https(self):
|
def test_https(self):
|
||||||
request = WSGIRequest(RequestFactory().get('/').environ)
|
request = WSGIRequest(self.request_factory.get('/').environ)
|
||||||
request.makefile = lambda *args, **kwargs: BytesIO()
|
request.makefile = lambda *args, **kwargs: BytesIO()
|
||||||
|
|
||||||
handler = WSGIRequestHandler(request, '192.168.0.2', None)
|
handler = WSGIRequestHandler(request, '192.168.0.2', None)
|
||||||
|
|
|
@ -625,10 +625,11 @@ class CacheSessionTests(SessionTestsMixin, unittest.TestCase):
|
||||||
|
|
||||||
|
|
||||||
class SessionMiddlewareTests(TestCase):
|
class SessionMiddlewareTests(TestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
@override_settings(SESSION_COOKIE_SECURE=True)
|
@override_settings(SESSION_COOKIE_SECURE=True)
|
||||||
def test_secure_session_cookie(self):
|
def test_secure_session_cookie(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Session test')
|
response = HttpResponse('Session test')
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
@ -642,7 +643,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
|
|
||||||
@override_settings(SESSION_COOKIE_HTTPONLY=True)
|
@override_settings(SESSION_COOKIE_HTTPONLY=True)
|
||||||
def test_httponly_session_cookie(self):
|
def test_httponly_session_cookie(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Session test')
|
response = HttpResponse('Session test')
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
@ -660,7 +661,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
|
|
||||||
@override_settings(SESSION_COOKIE_SAMESITE='Strict')
|
@override_settings(SESSION_COOKIE_SAMESITE='Strict')
|
||||||
def test_samesite_session_cookie(self):
|
def test_samesite_session_cookie(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse()
|
response = HttpResponse()
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
middleware.process_request(request)
|
middleware.process_request(request)
|
||||||
|
@ -670,7 +671,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
|
|
||||||
@override_settings(SESSION_COOKIE_HTTPONLY=False)
|
@override_settings(SESSION_COOKIE_HTTPONLY=False)
|
||||||
def test_no_httponly_session_cookie(self):
|
def test_no_httponly_session_cookie(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Session test')
|
response = HttpResponse('Session test')
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
@ -687,7 +688,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_session_save_on_500(self):
|
def test_session_save_on_500(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Horrible error')
|
response = HttpResponse('Horrible error')
|
||||||
response.status_code = 500
|
response.status_code = 500
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
@ -704,7 +705,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
|
|
||||||
def test_session_update_error_redirect(self):
|
def test_session_update_error_redirect(self):
|
||||||
path = '/foo/'
|
path = '/foo/'
|
||||||
request = RequestFactory().get(path)
|
request = self.request_factory.get(path)
|
||||||
response = HttpResponse()
|
response = HttpResponse()
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
@ -723,7 +724,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
middleware.process_response(request, response)
|
middleware.process_response(request, response)
|
||||||
|
|
||||||
def test_session_delete_on_end(self):
|
def test_session_delete_on_end(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Session test')
|
response = HttpResponse('Session test')
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
@ -750,7 +751,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
|
|
||||||
@override_settings(SESSION_COOKIE_DOMAIN='.example.local', SESSION_COOKIE_PATH='/example/')
|
@override_settings(SESSION_COOKIE_DOMAIN='.example.local', SESSION_COOKIE_PATH='/example/')
|
||||||
def test_session_delete_on_end_with_custom_domain_and_path(self):
|
def test_session_delete_on_end_with_custom_domain_and_path(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Session test')
|
response = HttpResponse('Session test')
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
@ -778,7 +779,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
def test_flush_empty_without_session_cookie_doesnt_set_cookie(self):
|
def test_flush_empty_without_session_cookie_doesnt_set_cookie(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Session test')
|
response = HttpResponse('Session test')
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
@ -799,7 +800,7 @@ class SessionMiddlewareTests(TestCase):
|
||||||
If a session is emptied of data but still has a key, it should still
|
If a session is emptied of data but still has a key, it should still
|
||||||
be updated.
|
be updated.
|
||||||
"""
|
"""
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
response = HttpResponse('Session test')
|
response = HttpResponse('Session test')
|
||||||
middleware = SessionMiddleware()
|
middleware = SessionMiddleware()
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ class DjangoTemplatesTests(TemplateStringsTests):
|
||||||
|
|
||||||
engine_class = DjangoTemplates
|
engine_class = DjangoTemplates
|
||||||
backend_name = 'django'
|
backend_name = 'django'
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def test_context_has_priority_over_template_context_processors(self):
|
def test_context_has_priority_over_template_context_processors(self):
|
||||||
# See ticket #23789.
|
# See ticket #23789.
|
||||||
|
@ -25,7 +26,7 @@ class DjangoTemplatesTests(TemplateStringsTests):
|
||||||
})
|
})
|
||||||
|
|
||||||
template = engine.from_string('{{ processors }}')
|
template = engine.from_string('{{ processors }}')
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
|
|
||||||
# Context processors run
|
# Context processors run
|
||||||
content = template.render({}, request)
|
content = template.render({}, request)
|
||||||
|
@ -45,7 +46,7 @@ class DjangoTemplatesTests(TemplateStringsTests):
|
||||||
})
|
})
|
||||||
template = engine.from_string('')
|
template = engine.from_string('')
|
||||||
context = Context()
|
context = Context()
|
||||||
request_context = RequestContext(RequestFactory().get('/'), {})
|
request_context = RequestContext(self.request_factory.get('/'), {})
|
||||||
msg = 'context must be a dict rather than Context.'
|
msg = 'context must be a dict rather than Context.'
|
||||||
with self.assertRaisesMessage(TypeError, msg):
|
with self.assertRaisesMessage(TypeError, msg):
|
||||||
template.render(context)
|
template.render(context)
|
||||||
|
|
|
@ -7,6 +7,7 @@ from ..utils import setup
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='template_tests.urls')
|
@override_settings(ROOT_URLCONF='template_tests.urls')
|
||||||
class UrlTagTests(SimpleTestCase):
|
class UrlTagTests(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
# Successes
|
# Successes
|
||||||
@setup({'url01': '{% url "client" client.id %}'})
|
@setup({'url01': '{% url "client" client.id %}'})
|
||||||
|
@ -227,7 +228,7 @@ class UrlTagTests(SimpleTestCase):
|
||||||
|
|
||||||
@setup({'url-namespace01': '{% url "app:named.client" 42 %}'})
|
@setup({'url-namespace01': '{% url "app:named.client" 42 %}'})
|
||||||
def test_url_namespace01(self):
|
def test_url_namespace01(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
request.resolver_match = resolve('/ns1/')
|
request.resolver_match = resolve('/ns1/')
|
||||||
template = self.engine.get_template('url-namespace01')
|
template = self.engine.get_template('url-namespace01')
|
||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
|
@ -236,7 +237,7 @@ class UrlTagTests(SimpleTestCase):
|
||||||
|
|
||||||
@setup({'url-namespace02': '{% url "app:named.client" 42 %}'})
|
@setup({'url-namespace02': '{% url "app:named.client" 42 %}'})
|
||||||
def test_url_namespace02(self):
|
def test_url_namespace02(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
request.resolver_match = resolve('/ns2/')
|
request.resolver_match = resolve('/ns2/')
|
||||||
template = self.engine.get_template('url-namespace02')
|
template = self.engine.get_template('url-namespace02')
|
||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
|
@ -245,7 +246,7 @@ class UrlTagTests(SimpleTestCase):
|
||||||
|
|
||||||
@setup({'url-namespace03': '{% url "app:named.client" 42 %}'})
|
@setup({'url-namespace03': '{% url "app:named.client" 42 %}'})
|
||||||
def test_url_namespace03(self):
|
def test_url_namespace03(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
template = self.engine.get_template('url-namespace03')
|
template = self.engine.get_template('url-namespace03')
|
||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
output = template.render(context)
|
output = template.render(context)
|
||||||
|
@ -253,7 +254,7 @@ class UrlTagTests(SimpleTestCase):
|
||||||
|
|
||||||
@setup({'url-namespace-no-current-app': '{% url "app:named.client" 42 %}'})
|
@setup({'url-namespace-no-current-app': '{% url "app:named.client" 42 %}'})
|
||||||
def test_url_namespace_no_current_app(self):
|
def test_url_namespace_no_current_app(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
request.resolver_match = resolve('/ns1/')
|
request.resolver_match = resolve('/ns1/')
|
||||||
request.current_app = None
|
request.current_app = None
|
||||||
template = self.engine.get_template('url-namespace-no-current-app')
|
template = self.engine.get_template('url-namespace-no-current-app')
|
||||||
|
@ -263,7 +264,7 @@ class UrlTagTests(SimpleTestCase):
|
||||||
|
|
||||||
@setup({'url-namespace-explicit-current-app': '{% url "app:named.client" 42 %}'})
|
@setup({'url-namespace-explicit-current-app': '{% url "app:named.client" 42 %}'})
|
||||||
def test_url_namespace_explicit_current_app(self):
|
def test_url_namespace_explicit_current_app(self):
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
request.resolver_match = resolve('/ns1/')
|
request.resolver_match = resolve('/ns1/')
|
||||||
request.current_app = 'app'
|
request.current_app = 'app'
|
||||||
template = self.engine.get_template('url-namespace-explicit-current-app')
|
template = self.engine.get_template('url-namespace-explicit-current-app')
|
||||||
|
|
|
@ -213,6 +213,7 @@ class ContextTests(SimpleTestCase):
|
||||||
|
|
||||||
|
|
||||||
class RequestContextTests(SimpleTestCase):
|
class RequestContextTests(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def test_include_only(self):
|
def test_include_only(self):
|
||||||
"""
|
"""
|
||||||
|
@ -224,7 +225,7 @@ class RequestContextTests(SimpleTestCase):
|
||||||
'child': '{{ var|default:"none" }}',
|
'child': '{{ var|default:"none" }}',
|
||||||
}),
|
}),
|
||||||
])
|
])
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
ctx = RequestContext(request, {'var': 'parent'})
|
ctx = RequestContext(request, {'var': 'parent'})
|
||||||
self.assertEqual(engine.from_string('{% include "child" %}').render(ctx), 'parent')
|
self.assertEqual(engine.from_string('{% include "child" %}').render(ctx), 'parent')
|
||||||
self.assertEqual(engine.from_string('{% include "child" only %}').render(ctx), 'none')
|
self.assertEqual(engine.from_string('{% include "child" only %}').render(ctx), 'none')
|
||||||
|
@ -233,7 +234,7 @@ class RequestContextTests(SimpleTestCase):
|
||||||
"""
|
"""
|
||||||
#7116 -- Optimize RequetsContext construction
|
#7116 -- Optimize RequetsContext construction
|
||||||
"""
|
"""
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
ctx = RequestContext(request, {})
|
ctx = RequestContext(request, {})
|
||||||
# The stack should now contain 3 items:
|
# The stack should now contain 3 items:
|
||||||
# [builtins, supplied context, context processor, empty dict]
|
# [builtins, supplied context, context processor, empty dict]
|
||||||
|
@ -245,7 +246,7 @@ class RequestContextTests(SimpleTestCase):
|
||||||
|
|
||||||
# test comparing RequestContext to prevent problems if somebody
|
# test comparing RequestContext to prevent problems if somebody
|
||||||
# adds __eq__ in the future
|
# adds __eq__ in the future
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
RequestContext(request, dict_=test_data),
|
RequestContext(request, dict_=test_data),
|
||||||
|
@ -254,7 +255,7 @@ class RequestContextTests(SimpleTestCase):
|
||||||
|
|
||||||
def test_modify_context_and_render(self):
|
def test_modify_context_and_render(self):
|
||||||
template = Template('{{ foo }}')
|
template = Template('{{ foo }}')
|
||||||
request = RequestFactory().get('/')
|
request = self.request_factory.get('/')
|
||||||
context = RequestContext(request, {})
|
context = RequestContext(request, {})
|
||||||
context['foo'] = 'foo'
|
context['foo'] = 'foo'
|
||||||
self.assertEqual(template.render(context), 'foo')
|
self.assertEqual(template.render(context), 'foo')
|
||||||
|
|
|
@ -224,9 +224,7 @@ class SimpleTemplateResponseTest(SimpleTestCase):
|
||||||
},
|
},
|
||||||
}])
|
}])
|
||||||
class TemplateResponseTest(SimpleTestCase):
|
class TemplateResponseTest(SimpleTestCase):
|
||||||
|
factory = RequestFactory()
|
||||||
def setUp(self):
|
|
||||||
self.factory = RequestFactory()
|
|
||||||
|
|
||||||
def _response(self, template='foo', *args, **kwargs):
|
def _response(self, template='foo', *args, **kwargs):
|
||||||
self._request = self.factory.get('/')
|
self._request = self.factory.get('/')
|
||||||
|
|
|
@ -861,9 +861,7 @@ class RequestFactoryTest(SimpleTestCase):
|
||||||
('options', _generic_view),
|
('options', _generic_view),
|
||||||
('trace', trace_view),
|
('trace', trace_view),
|
||||||
)
|
)
|
||||||
|
request_factory = RequestFactory()
|
||||||
def setUp(self):
|
|
||||||
self.request_factory = RequestFactory()
|
|
||||||
|
|
||||||
def test_request_factory(self):
|
def test_request_factory(self):
|
||||||
"""The request factory implements all the HTTP/1.1 methods."""
|
"""The request factory implements all the HTTP/1.1 methods."""
|
||||||
|
|
|
@ -19,6 +19,7 @@ class DefaultsTests(TestCase):
|
||||||
'/nonexistent_url/', # this is in urls.py
|
'/nonexistent_url/', # this is in urls.py
|
||||||
'/other_nonexistent_url/', # this NOT in urls.py
|
'/other_nonexistent_url/', # this NOT in urls.py
|
||||||
]
|
]
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpTestData(cls):
|
def setUpTestData(cls):
|
||||||
|
@ -73,8 +74,7 @@ class DefaultsTests(TestCase):
|
||||||
self.assertEqual(response.status_code, 500)
|
self.assertEqual(response.status_code, 500)
|
||||||
|
|
||||||
def test_bad_request(self):
|
def test_bad_request(self):
|
||||||
rf = RequestFactory()
|
request = self.request_factory.get('/')
|
||||||
request = rf.get('/')
|
|
||||||
response = bad_request(request, Exception())
|
response = bad_request(request, Exception())
|
||||||
self.assertEqual(response.status_code, 400)
|
self.assertEqual(response.status_code, 400)
|
||||||
self.assertEqual(response.content, b'<h1>Bad Request (400)</h1>')
|
self.assertEqual(response.content, b'<h1>Bad Request (400)</h1>')
|
||||||
|
@ -116,8 +116,7 @@ class DefaultsTests(TestCase):
|
||||||
Default error views should raise TemplateDoesNotExist when passed a
|
Default error views should raise TemplateDoesNotExist when passed a
|
||||||
template that doesn't exist.
|
template that doesn't exist.
|
||||||
"""
|
"""
|
||||||
rf = RequestFactory()
|
request = self.request_factory.get('/')
|
||||||
request = rf.get('/')
|
|
||||||
|
|
||||||
with self.assertRaises(TemplateDoesNotExist):
|
with self.assertRaises(TemplateDoesNotExist):
|
||||||
bad_request(request, Exception(), template_name='nonexistent')
|
bad_request(request, Exception(), template_name='nonexistent')
|
||||||
|
|
|
@ -9,6 +9,7 @@ from django.test.client import RequestFactory
|
||||||
|
|
||||||
@override_settings(ROOT_URLCONF='wsgi.urls')
|
@override_settings(ROOT_URLCONF='wsgi.urls')
|
||||||
class WSGITest(SimpleTestCase):
|
class WSGITest(SimpleTestCase):
|
||||||
|
request_factory = RequestFactory()
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
request_started.disconnect(close_old_connections)
|
request_started.disconnect(close_old_connections)
|
||||||
|
@ -22,7 +23,7 @@ class WSGITest(SimpleTestCase):
|
||||||
"""
|
"""
|
||||||
application = get_wsgi_application()
|
application = get_wsgi_application()
|
||||||
|
|
||||||
environ = RequestFactory()._base_environ(
|
environ = self.request_factory._base_environ(
|
||||||
PATH_INFO="/",
|
PATH_INFO="/",
|
||||||
CONTENT_TYPE="text/html; charset=utf-8",
|
CONTENT_TYPE="text/html; charset=utf-8",
|
||||||
REQUEST_METHOD="GET"
|
REQUEST_METHOD="GET"
|
||||||
|
@ -53,7 +54,7 @@ class WSGITest(SimpleTestCase):
|
||||||
def __init__(self, filelike, blksize=8192):
|
def __init__(self, filelike, blksize=8192):
|
||||||
filelike.close()
|
filelike.close()
|
||||||
application = get_wsgi_application()
|
application = get_wsgi_application()
|
||||||
environ = RequestFactory()._base_environ(
|
environ = self.request_factory._base_environ(
|
||||||
PATH_INFO='/file/',
|
PATH_INFO='/file/',
|
||||||
REQUEST_METHOD='GET',
|
REQUEST_METHOD='GET',
|
||||||
**{'wsgi.file_wrapper': FileWrapper}
|
**{'wsgi.file_wrapper': FileWrapper}
|
||||||
|
|
Loading…
Reference in New Issue