Issue #24254: Preserve class attribute definition order.
diff --git a/Lib/test/test_metaclass.py b/Lib/test/test_metaclass.py
index e6fe20a..4db792e 100644
--- a/Lib/test/test_metaclass.py
+++ b/Lib/test/test_metaclass.py
@@ -180,7 +180,7 @@
meta: C ()
ns: [('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('a', 42), ('b', 24)]
kw: []
- >>> type(C) is dict
+ >>> type(C) is types._DefaultClassNamespaceType
True
>>> print(sorted(C.items()))
[('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('a', 42), ('b', 24)]
@@ -211,8 +211,11 @@
The default metaclass must define a __prepare__() method.
- >>> type.__prepare__()
- {}
+ >>> ns = type.__prepare__()
+ >>> type(ns) is types._DefaultClassNamespaceType
+ True
+ >>> list(ns) == []
+ True
>>>
Make sure it works with subclassing.
@@ -248,7 +251,9 @@
"""
+from collections import OrderedDict
import sys
+import types
# Trace function introduces __locals__ which causes various tests to fail.
if hasattr(sys, 'gettrace') and sys.gettrace():