From 5b17dcd8ef9c444af2e0a234d708c37b313ef04f Mon Sep 17 00:00:00 2001 From: Tim Heap Date: Fri, 21 Nov 2014 12:35:58 +1100 Subject: Fixed #23883 -- Stopped flatatt modifying its argument --- tests/forms_tests/tests/test_util.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/forms_tests') diff --git a/tests/forms_tests/tests/test_util.py b/tests/forms_tests/tests/test_util.py index 68ecd50e99..c37affeb31 100644 --- a/tests/forms_tests/tests/test_util.py +++ b/tests/forms_tests/tests/test_util.py @@ -27,6 +27,23 @@ class FormsUtilTestCase(TestCase): self.assertEqual(flatatt({'class': "news", 'title': "Read this", 'required': False}), ' class="news" title="Read this"') self.assertEqual(flatatt({}), '') + def test_flatatt_no_side_effects(self): + """ + Fixes #23883 -- Check that flatatt does not modify the dict passed in + """ + attrs = {'foo': 'bar', 'true': True, 'false': False} + attrs_copy = copy.copy(attrs) + self.assertEqual(attrs, attrs_copy) + + first_run = flatatt(attrs) + self.assertEqual(attrs, attrs_copy) + self.assertEqual(first_run, ' foo="bar" true') + + second_run = flatatt(attrs) + self.assertEqual(attrs, attrs_copy) + + self.assertEqual(first_run, second_run) + def test_validation_error(self): ################### # ValidationError # -- cgit v1.3