prevent the dict constructor from accepting non-string keyword args #8419
This adds PyArg_ValidateKeywordArguments, which checks that keyword arguments
are all strings, using an optimized method if possible.
diff --git a/Lib/test/test_dict.py b/Lib/test/test_dict.py
index 4ba0b71..6c5f682 100644
--- a/Lib/test/test_dict.py
+++ b/Lib/test/test_dict.py
@@ -7,6 +7,12 @@
class DictTest(unittest.TestCase):
+ def test_invalid_keyword_arguments(self):
+ with self.assertRaises(TypeError):
+ dict(**{1 : 2})
+ with self.assertRaises(TypeError):
+ {}.update(**{1 : 2})
+
def test_constructor(self):
# calling built-in types without argument must return empty
self.assertEqual(dict(), {})