From 73b1b225ce1a3318d4478f90cc0db0a260aba3aa Mon Sep 17 00:00:00 2001 From: Jacob Walls Date: Sat, 27 Feb 2021 18:56:44 -0500 Subject: Fixed #22640 -- Raised TypeError when instantiating model with keyword and positional args for the same field. --- tests/basic/tests.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tests/basic') diff --git a/tests/basic/tests.py b/tests/basic/tests.py index 43c7ccdfa6..c99fc7e723 100644 --- a/tests/basic/tests.py +++ b/tests/basic/tests.py @@ -68,6 +68,15 @@ class ModelInstanceCreationTests(TestCase): a.save() self.assertEqual(a.headline, 'Fourth article') + def test_positional_and_keyword_args_for_the_same_field(self): + msg = "Article() got both positional and keyword arguments for field '%s'." + with self.assertRaisesMessage(TypeError, msg % 'headline'): + Article(None, 'Fifth article', headline='Other headline.') + with self.assertRaisesMessage(TypeError, msg % 'headline'): + Article(None, 'Sixth article', headline='') + with self.assertRaisesMessage(TypeError, msg % 'pub_date'): + Article(None, 'Seventh article', datetime(2021, 3, 1), pub_date=None) + def test_cannot_create_instance_with_invalid_kwargs(self): with self.assertRaisesMessage(TypeError, "Article() got an unexpected keyword argument 'foo'"): Article( -- cgit v1.3