summaryrefslogtreecommitdiff
path: root/tests/utils_tests/test_datastructures.py
diff options
context:
space:
mode:
authorJani Tiainen <jtiai@code.nowarelabs.mywire.org>2016-09-10 12:25:42 +0300
committerTim Graham <timograham@gmail.com>2016-09-16 15:16:18 -0400
commit727d7ce6cba21363470aaefb2dc5353017531be3 (patch)
treea0b3c95275b55f50046f394790392bb37c1fddcb /tests/utils_tests/test_datastructures.py
parent6989b45c8dce0d3c50d1530fd65d388c7fde2a2a (diff)
Fixed #27198 -- Made MultiValueDict.getlist() return a new list to prevent mutation.
Diffstat (limited to 'tests/utils_tests/test_datastructures.py')
-rw-r--r--tests/utils_tests/test_datastructures.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/utils_tests/test_datastructures.py b/tests/utils_tests/test_datastructures.py
index 0f520ff9e7..ea2b147953 100644
--- a/tests/utils_tests/test_datastructures.py
+++ b/tests/utils_tests/test_datastructures.py
@@ -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):