summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_builtin.py192
-rw-r--r--Lib/test/test_metaclass.py11
-rw-r--r--Lib/test/test_pydoc.py8
-rw-r--r--Lib/test/test_sys.py2
-rw-r--r--Lib/test/test_types.py22
-rw-r--r--Lib/types.py5
-rw-r--r--Lib/typing.py1
7 files changed, 7 insertions, 234 deletions
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index c0343ef..e0cffe1 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -16,10 +16,8 @@ import traceback
import types
import unittest
import warnings
-from collections import OrderedDict
from operator import neg
-from test.support import (TESTFN, unlink, run_unittest, check_warnings,
- cpython_only)
+from test.support import TESTFN, unlink, run_unittest, check_warnings
from test.support.script_helper import assert_python_ok
try:
import pty, signal
@@ -1780,194 +1778,6 @@ class TestType(unittest.TestCase):
A.__doc__ = doc
self.assertEqual(A.__doc__, doc)
- def test_type_definition_order_nonempty(self):
- class Spam:
- b = 1
- c = 3
- a = 2
- d = 4
- eggs = 2
- e = 5
- b = 42
-
- self.assertEqual(Spam.__definition_order__,
- ('__module__', '__qualname__',
- 'b', 'c', 'a', 'd', 'eggs', 'e'))
-
- def test_type_definition_order_empty(self):
- class Empty:
- pass
-
- self.assertEqual(Empty.__definition_order__,
- ('__module__', '__qualname__'))
-
- def test_type_definition_order_on_instance(self):
- class Spam:
- a = 2
- b = 1
- c = 3
- with self.assertRaises(AttributeError):
- Spam().__definition_order__
-
- def test_type_definition_order_set_to_None(self):
- class Spam:
- a = 2
- b = 1
- c = 3
- Spam.__definition_order__ = None
- self.assertEqual(Spam.__definition_order__, None)
-
- def test_type_definition_order_set_to_tuple(self):
- class Spam:
- a = 2
- b = 1
- c = 3
- Spam.__definition_order__ = ('x', 'y', 'z')
- self.assertEqual(Spam.__definition_order__, ('x', 'y', 'z'))
-
- def test_type_definition_order_deleted(self):
- class Spam:
- a = 2
- b = 1
- c = 3
- del Spam.__definition_order__
- self.assertEqual(Spam.__definition_order__, None)
-
- def test_type_definition_order_set_to_bad_type(self):
- class Spam:
- a = 2
- b = 1
- c = 3
- Spam.__definition_order__ = 42
- self.assertEqual(Spam.__definition_order__, 42)
-
- def test_type_definition_order_builtins(self):
- self.assertEqual(object.__definition_order__, None)
- self.assertEqual(type.__definition_order__, None)
- self.assertEqual(dict.__definition_order__, None)
- self.assertEqual(type(None).__definition_order__, None)
-
- def test_type_definition_order_dunder_names_included(self):
- class Dunder:
- VAR = 3
- def __init__(self):
- pass
-
- self.assertEqual(Dunder.__definition_order__,
- ('__module__', '__qualname__',
- 'VAR', '__init__'))
-
- def test_type_definition_order_only_dunder_names(self):
- class DunderOnly:
- __xyz__ = None
- def __init__(self):
- pass
-
- self.assertEqual(DunderOnly.__definition_order__,
- ('__module__', '__qualname__',
- '__xyz__', '__init__'))
-
- def test_type_definition_order_underscore_names(self):
- class HalfDunder:
- __whether_to_be = True
- or_not_to_be__ = False
-
- self.assertEqual(HalfDunder.__definition_order__,
- ('__module__', '__qualname__',
- '_HalfDunder__whether_to_be', 'or_not_to_be__'))
-
- def test_type_definition_order_with_slots(self):
- class Slots:
- __slots__ = ('x', 'y')
- a = 1
- b = 2
-
- self.assertEqual(Slots.__definition_order__,
- ('__module__', '__qualname__',
- '__slots__', 'a', 'b'))
-
- def test_type_definition_order_overwritten_None(self):
- class OverwrittenNone:
- __definition_order__ = None
- a = 1
- b = 2
- c = 3
-
- self.assertEqual(OverwrittenNone.__definition_order__, None)
-
- def test_type_definition_order_overwritten_tuple(self):
- class OverwrittenTuple:
- __definition_order__ = ('x', 'y', 'z')
- a = 1
- b = 2
- c = 3
-
- self.assertEqual(OverwrittenTuple.__definition_order__,
- ('x', 'y', 'z'))
-
- def test_type_definition_order_overwritten_bad_item(self):
- with self.assertRaises(TypeError):
- class PoorlyOverwritten:
- __definition_order__ = ('a', 2, 'c')
- a = 1
- b = 2
- c = 3
-
- def test_type_definition_order_overwritten_bad_type(self):
- with self.assertRaises(TypeError):
- class PoorlyOverwritten:
- __definition_order__ = ['a', 2, 'c']
- a = 1
- b = 2
- c = 3
-
- def test_type_definition_order_metaclass(self):
- class Meta(type):
- SPAM = 42
-
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
-
- self.assertEqual(Meta.__definition_order__,
- ('__module__', '__qualname__',
- 'SPAM', '__init__'))
-
- def test_type_definition_order_OrderedDict(self):
- class Meta(type):
- def __prepare__(self, *args, **kwargs):
- return OrderedDict()
-
- class WithODict(metaclass=Meta):
- x='y'
-
- self.assertEqual(WithODict.__definition_order__,
- ('__module__', '__qualname__', 'x'))
-
- class Meta(type):
- def __prepare__(self, *args, **kwargs):
- class ODictSub(OrderedDict):
- pass
- return ODictSub()
-
- class WithODictSub(metaclass=Meta):
- x='y'
-
- self.assertEqual(WithODictSub.__definition_order__,
- ('__module__', '__qualname__', 'x'))
-
- @cpython_only
- def test_type_definition_order_cpython(self):
- # some implementations will have an ordered-by-default dict.
-
- class Meta(type):
- def __prepare__(self, *args, **kwargs):
- return {}
-
- class NotOrdered(metaclass=Meta):
- x='y'
-
- self.assertEqual(NotOrdered.__definition_order__, None)
-
def test_bad_args(self):
with self.assertRaises(TypeError):
type()
diff --git a/Lib/test/test_metaclass.py b/Lib/test/test_metaclass.py
index 4db792e..e6fe20a 100644
--- a/Lib/test/test_metaclass.py
+++ b/Lib/test/test_metaclass.py
@@ -180,7 +180,7 @@ Use a metaclass that doesn't derive from type.
meta: C ()
ns: [('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('a', 42), ('b', 24)]
kw: []
- >>> type(C) is types._DefaultClassNamespaceType
+ >>> type(C) is dict
True
>>> print(sorted(C.items()))
[('__module__', 'test.test_metaclass'), ('__qualname__', 'C'), ('a', 42), ('b', 24)]
@@ -211,11 +211,8 @@ And again, with a __prepare__ attribute.
The default metaclass must define a __prepare__() method.
- >>> ns = type.__prepare__()
- >>> type(ns) is types._DefaultClassNamespaceType
- True
- >>> list(ns) == []
- True
+ >>> type.__prepare__()
+ {}
>>>
Make sure it works with subclassing.
@@ -251,9 +248,7 @@ Test failures in looking up the __prepare__ method work.
"""
-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():
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index 229fff4..17a82c2 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -427,7 +427,6 @@ class PydocDocTest(unittest.TestCase):
expected_html = expected_html_pattern % (
(mod_url, mod_file, doc_loc) +
expected_html_data_docstrings)
- self.maxDiff = None
self.assertEqual(result, expected_html)
@unittest.skipIf(sys.flags.optimize >= 2,
@@ -474,18 +473,13 @@ class PydocDocTest(unittest.TestCase):
def test_non_str_name(self):
# issue14638
# Treat illegal (non-str) name like no name
- # Definition order is set to None so it looks the same in both
- # cases.
class A:
- __definition_order__ = None
__name__ = 42
class B:
pass
adoc = pydoc.render_doc(A())
bdoc = pydoc.render_doc(B())
- self.maxDiff = None
- expected = adoc.replace("A", "B")
- self.assertEqual(bdoc, expected)
+ self.assertEqual(adoc.replace("A", "B"), bdoc)
def test_not_here(self):
missing_module = "test.i_am_not_here"
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index aa89506..a6cd95e 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -1085,7 +1085,7 @@ class SizeofTest(unittest.TestCase):
check((1,2,3), vsize('') + 3*self.P)
# type
# static type: PyTypeObject
- fmt = 'P2n15Pl4Pn9Pn11PIPP'
+ fmt = 'P2n15Pl4Pn9Pn11PIP'
if hasattr(sys, 'getcounts'):
fmt += '3n2P'
s = vsize(fmt)
diff --git a/Lib/test/test_types.py b/Lib/test/test_types.py
index e5e110f..a202196 100644
--- a/Lib/test/test_types.py
+++ b/Lib/test/test_types.py
@@ -825,28 +825,6 @@ class ClassCreationTests(unittest.TestCase):
self.assertEqual(C.y, 1)
self.assertEqual(C.z, 2)
- def test_new_class_deforder(self):
- C = types.new_class("C")
- self.assertEqual(C.__definition_order__, tuple())
-
- Meta = self.Meta
- def func(ns):
- ns["x"] = 0
- D = types.new_class("D", (), {"metaclass": Meta, "z": 2}, func)
- self.assertEqual(D.__definition_order__, ('y', 'z', 'x'))
-
- def func(ns):
- ns["__definition_order__"] = None
- ns["x"] = 0
- D = types.new_class("D", (), {"metaclass": Meta, "z": 2}, func)
- self.assertEqual(D.__definition_order__, None)
-
- def func(ns):
- ns["__definition_order__"] = ('a', 'b', 'c')
- ns["x"] = 0
- D = types.new_class("D", (), {"metaclass": Meta, "z": 2}, func)
- self.assertEqual(D.__definition_order__, ('a', 'b', 'c'))
-
# Many of the following tests are derived from test_descr.py
def test_prepare_class(self):
# Basic test of metaclass derivation
diff --git a/Lib/types.py b/Lib/types.py
index cc093cb..48891cd 100644
--- a/Lib/types.py
+++ b/Lib/types.py
@@ -25,11 +25,8 @@ CoroutineType = type(_c)
_c.close() # Prevent ResourceWarning
class _C:
- _nsType = type(locals())
def _m(self): pass
MethodType = type(_C()._m)
-# In CPython, this should end up as OrderedDict.
-_DefaultClassNamespaceType = _C._nsType
BuiltinFunctionType = type(len)
BuiltinMethodType = type([].append) # Same as BuiltinFunctionType
@@ -88,7 +85,7 @@ def prepare_class(name, bases=(), kwds=None):
if hasattr(meta, '__prepare__'):
ns = meta.__prepare__(name, bases, **kwds)
else:
- ns = _DefaultClassNamespaceType()
+ ns = {}
return meta, ns, kwds
def _calculate_meta(meta, bases):
diff --git a/Lib/typing.py b/Lib/typing.py
index 5f451b0..5573a1f 100644
--- a/Lib/typing.py
+++ b/Lib/typing.py
@@ -1301,7 +1301,6 @@ class _ProtocolMeta(GenericMeta):
if (not attr.startswith('_abc_') and
attr != '__abstractmethods__' and
attr != '_is_protocol' and
- attr != '__definition_order__' and
attr != '__dict__' and
attr != '__args__' and
attr != '__slots__' and