diff options
| author | Bouke Haarsma <bouke@webatoom.nl> | 2013-10-15 22:36:49 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-10-17 09:42:28 -0400 |
| commit | 2fb5a51fa3ac276efc7121ec9de91f092a986104 (patch) | |
| tree | 77f8d7072b079cb9cddb1e8e05bb613681705f7b /tests | |
| parent | 98788d3c3af9f6cce2b94c276d17726f46608b08 (diff) | |
Fixed #18659 -- Deprecated request.REQUEST and MergeDict
Thanks Aymeric Augustin for the suggestion.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/deprecation/tests.py | 22 | ||||
| -rw-r--r-- | tests/forms_tests/tests/test_forms.py | 10 | ||||
| -rw-r--r-- | tests/test_client_regress/views.py | 20 | ||||
| -rw-r--r-- | tests/utils_tests/test_datastructures.py | 2 |
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', |
