summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBouke Haarsma <bouke@webatoom.nl>2013-10-15 22:36:49 +0200
committerTim Graham <timograham@gmail.com>2013-10-17 09:42:28 -0400
commit2fb5a51fa3ac276efc7121ec9de91f092a986104 (patch)
tree77f8d7072b079cb9cddb1e8e05bb613681705f7b /tests
parent98788d3c3af9f6cce2b94c276d17726f46608b08 (diff)
Fixed #18659 -- Deprecated request.REQUEST and MergeDict
Thanks Aymeric Augustin for the suggestion.
Diffstat (limited to 'tests')
-rw-r--r--tests/deprecation/tests.py22
-rw-r--r--tests/forms_tests/tests/test_forms.py10
-rw-r--r--tests/test_client_regress/views.py20
-rw-r--r--tests/utils_tests/test_datastructures.py2
4 files changed, 43 insertions, 11 deletions
diff --git a/tests/deprecation/tests.py b/tests/deprecation/tests.py
index 719bd635db..5353a16e42 100644
--- a/tests/deprecation/tests.py
+++ b/tests/deprecation/tests.py
@@ -1,8 +1,9 @@
from __future__ import unicode_literals
import warnings
-from django.test import SimpleTestCase
+from django.test import SimpleTestCase, RequestFactory
from django.utils import six
+from django.utils.datastructures import MergeDict
from django.utils.deprecation import RenameMethodsBase
@@ -156,3 +157,22 @@ class RenameMethodsTests(SimpleTestCase):
'`DeprecatedMixin.old` is deprecated, use `new` instead.',
'`RenamedMixin.old` is deprecated, use `new` instead.',
])
+
+
+class DeprecatingRequestMergeDictTest(SimpleTestCase):
+ def test_deprecated_request(self):
+ """
+ Ensure the correct warning is raised when WSGIRequest.REQUEST is
+ accessed.
+ """
+ with warnings.catch_warnings(record=True) as recorded:
+ warnings.simplefilter('always')
+ request = RequestFactory().get('/')
+ _ = request.REQUEST
+
+ msgs = [str(warning.message) for warning in recorded]
+ self.assertEqual(msgs, [
+ '`request.REQUEST` is deprecated, use `request.GET` or '
+ '`request.POST` instead.',
+ '`MergeDict` is deprecated, use `dict.update()` instead.',
+ ])
diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py
index 33cf24f7c6..e971860909 100644
--- a/tests/forms_tests/tests/test_forms.py
+++ b/tests/forms_tests/tests/test_forms.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import copy
import datetime
+import warnings
from django.core.files.uploadedfile import SimpleUploadedFile
from django.core.validators import RegexValidator
@@ -560,9 +561,12 @@ class FormsTestCase(TestCase):
f = SongForm(data)
self.assertEqual(f.errors, {})
- data = MergeDict(MultiValueDict(dict(name=['Yesterday'], composers=['J', 'P'])))
- f = SongForm(data)
- self.assertEqual(f.errors, {})
+ # MergeDict is deprecated, but is supported until removed.
+ with warnings.catch_warnings(record=True):
+ warnings.simplefilter("always")
+ data = MergeDict(MultiValueDict(dict(name=['Yesterday'], composers=['J', 'P'])))
+ f = SongForm(data)
+ self.assertEqual(f.errors, {})
def test_multiple_hidden(self):
class SongForm(Form):
diff --git a/tests/test_client_regress/views.py b/tests/test_client_regress/views.py
index d7c54cf2f7..7bd439a88e 100644
--- a/tests/test_client_regress/views.py
+++ b/tests/test_client_regress/views.py
@@ -1,4 +1,5 @@
import json
+import warnings
from django.conf import settings
from django.contrib.auth.decorators import login_required
@@ -32,13 +33,20 @@ get_view = login_required(get_view)
def request_data(request, template='base.html', data='sausage'):
"A simple view that returns the request data in the context"
+
+ # request.REQUEST is deprecated, but needs testing until removed.
+ with warnings.catch_warnings(record=True) as w:
+ warnings.simplefilter("always")
+ request_foo = request.REQUEST.get('foo')
+ request_bar = request.REQUEST.get('bar')
+
return render_to_response(template, {
- 'get-foo':request.GET.get('foo',None),
- 'get-bar':request.GET.get('bar',None),
- 'post-foo':request.POST.get('foo',None),
- 'post-bar':request.POST.get('bar',None),
- 'request-foo':request.REQUEST.get('foo',None),
- 'request-bar':request.REQUEST.get('bar',None),
+ 'get-foo': request.GET.get('foo'),
+ 'get-bar': request.GET.get('bar'),
+ 'post-foo': request.POST.get('foo'),
+ 'post-bar': request.POST.get('bar'),
+ 'request-foo': request_foo,
+ 'request-bar': request_bar,
'data': data,
})
diff --git a/tests/utils_tests/test_datastructures.py b/tests/utils_tests/test_datastructures.py
index 5887cad085..4908957a19 100644
--- a/tests/utils_tests/test_datastructures.py
+++ b/tests/utils_tests/test_datastructures.py
@@ -136,7 +136,7 @@ class SortedDictTests(IgnorePendingDeprecationWarningsMixin, SimpleTestCase):
self.assertEqual(list(reversed(self.d2)), [7, 0, 9, 1])
-class MergeDictTests(SimpleTestCase):
+class MergeDictTests(IgnorePendingDeprecationWarningsMixin, SimpleTestCase):
def test_simple_mergedict(self):
d1 = {'chris':'cool', 'camri':'cute', 'cotton':'adorable',