From e2e4cdba1178ebcfd95c19eb063abd55b4afbcbb Mon Sep 17 00:00:00 2001 From: Yehonatan Daniv Date: Thu, 1 May 2014 12:55:52 +0300 Subject: Fixed #22539 -- Copied exclude argument in Model.full_clean() to prevent side effects. --- tests/validation/tests.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tests/validation/tests.py') diff --git a/tests/validation/tests.py b/tests/validation/tests.py index 7f81cafccf..6122444e3d 100644 --- a/tests/validation/tests.py +++ b/tests/validation/tests.py @@ -59,6 +59,13 @@ class BaseModelValidationTests(ValidationTestCase): mtv = ModelToValidate(number=10, name='Some Name', slug='##invalid##') self.assertFailsValidation(mtv.full_clean, ['slug']) + def test_full_clean_does_not_mutate_exclude(self): + mtv = ModelToValidate(f_with_custom_validator=42) + exclude = ['number'] + self.assertFailsValidation(mtv.full_clean, ['name'], exclude=exclude) + self.assertEqual(len(exclude), 1) + self.assertEqual(exclude[0], 'number') + class ArticleForm(forms.ModelForm): class Meta: -- cgit v1.3