1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #27198 -- Made MultiValueDict.getlist() return a new list to prevent mutation.

This commit is contained in:
Jani Tiainen
2016-09-10 12:25:42 +03:00
committed by Tim Graham
parent 6989b45c8d
commit 727d7ce6cb
2 changed files with 37 additions and 6 deletions

View File

@@ -101,6 +101,24 @@ class MultiValueDictTests(SimpleTestCase):
self.assertEqual({}, MultiValueDict().dict())
def test_getlist_doesnt_mutate(self):
x = MultiValueDict({'a': ['1', '2'], 'b': ['3']})
values = x.getlist('a')
values += x.getlist('b')
self.assertEqual(x.getlist('a'), ['1', '2'])
def test_internal_getlist_does_mutate(self):
x = MultiValueDict({'a': ['1', '2'], 'b': ['3']})
values = x._getlist('a')
values += x._getlist('b')
self.assertEqual(x._getlist('a'), ['1', '2', '3'])
def test_getlist_default(self):
x = MultiValueDict({'a': [1]})
MISSING = object()
values = x.getlist('b', default=MISSING)
self.assertIs(values, MISSING)
class ImmutableListTests(SimpleTestCase):