distiguish between refusing to creating shared keys and error (#13903)
diff --git a/Lib/test/test_dict.py b/Lib/test/test_dict.py
index cdd8b6c..426f76e 100644
--- a/Lib/test/test_dict.py
+++ b/Lib/test/test_dict.py
@@ -889,6 +889,13 @@
         self.assertEqual(f.msg, getattr(f, _str('msg')))
         self.assertEqual(f.msg, f.__dict__[_str('msg')])
 
+    def test_object_set_item_single_instance_non_str_key(self):
+        class Foo: pass
+        f = Foo()
+        f.__dict__[1] = 1
+        f.a = 'a'
+        self.assertEqual(f.__dict__, {1:1, 'a':'a'})
+
 from test import mapping_tests
 
 class GeneralMappingTests(mapping_tests.BasicTestMappingProtocol):