diff --git a/Lib/test/pydocfodder.py b/Lib/test/pydocfodder.py
index 2530320a222726119833d58ba89a386298f3d55e..d0750e5a43c0c0e957baa3d3c2df353452421dcd 100644
--- a/Lib/test/pydocfodder.py
+++ b/Lib/test/pydocfodder.py
@@ -2,85 +2,7 @@
 
 import types
 
-class A_classic:
-    "A classic class."
-    def A_method(self):
-        "Method defined in A."
-    def AB_method(self):
-        "Method defined in A and B."
-    def AC_method(self):
-        "Method defined in A and C."
-    def AD_method(self):
-        "Method defined in A and D."
-    def ABC_method(self):
-        "Method defined in A, B and C."
-    def ABD_method(self):
-        "Method defined in A, B and D."
-    def ACD_method(self):
-        "Method defined in A, C and D."
-    def ABCD_method(self):
-        "Method defined in A, B, C and D."
-
-
-class B_classic(A_classic):
-    "A classic class, derived from A_classic."
-    def AB_method(self):
-        "Method defined in A and B."
-    def ABC_method(self):
-        "Method defined in A, B and C."
-    def ABD_method(self):
-        "Method defined in A, B and D."
-    def ABCD_method(self):
-        "Method defined in A, B, C and D."
-    def B_method(self):
-        "Method defined in B."
-    def BC_method(self):
-        "Method defined in B and C."
-    def BD_method(self):
-        "Method defined in B and D."
-    def BCD_method(self):
-        "Method defined in B, C and D."
-
-class C_classic(A_classic):
-    "A classic class, derived from A_classic."
-    def AC_method(self):
-        "Method defined in A and C."
-    def ABC_method(self):
-        "Method defined in A, B and C."
-    def ACD_method(self):
-        "Method defined in A, C and D."
-    def ABCD_method(self):
-        "Method defined in A, B, C and D."
-    def BC_method(self):
-        "Method defined in B and C."
-    def BCD_method(self):
-        "Method defined in B, C and D."
-    def C_method(self):
-        "Method defined in C."
-    def CD_method(self):
-        "Method defined in C and D."
-
-class D_classic(B_classic, C_classic):
-    "A classic class, derived from B_classic and C_classic."
-    def AD_method(self):
-        "Method defined in A and D."
-    def ABD_method(self):
-        "Method defined in A, B and D."
-    def ACD_method(self):
-        "Method defined in A, C and D."
-    def ABCD_method(self):
-        "Method defined in A, B, C and D."
-    def BD_method(self):
-        "Method defined in B and D."
-    def BCD_method(self):
-        "Method defined in B, C and D."
-    def CD_method(self):
-        "Method defined in C and D."
-    def D_method(self):
-        "Method defined in D."
-
-
-class A_new(object):
+class A_new:
     "A new-style class."
 
     def A_method(self):
diff --git a/Lib/test/test_copy.py b/Lib/test/test_copy.py
index f4d91c168689866f936c115581ecf1e3ce39b33d..cc95a319d35d787fe9463ad9ed663dd214bb4f16 100644
--- a/Lib/test/test_copy.py
+++ b/Lib/test/test_copy.py
@@ -88,9 +88,7 @@ def __getattribute__(self, name):
     # Type-specific _copy_xxx() methods
 
     def test_copy_atomic(self):
-        class Classic:
-            pass
-        class NewStyle(object):
+        class NewStyle:
             pass
         def f():
             pass
@@ -100,7 +98,7 @@ class WithMetaclass(metaclass=abc.ABCMeta):
                  42, 2**100, 3.14, True, False, 1j,
                  "hello", "hello\u1234", f.__code__,
                  b"world", bytes(range(256)), range(10), slice(1, 10, 2),
-                 NewStyle, Classic, max, WithMetaclass, property()]
+                 NewStyle, max, WithMetaclass, property()]
         for x in tests:
             self.assertIs(copy.copy(x), x)
 
@@ -350,15 +348,13 @@ def __getattribute__(self, name):
     # Type-specific _deepcopy_xxx() methods
 
     def test_deepcopy_atomic(self):
-        class Classic:
-            pass
-        class NewStyle(object):
+        class NewStyle:
             pass
         def f():
             pass
         tests = [None, 42, 2**100, 3.14, True, False, 1j,
                  "hello", "hello\u1234", f.__code__,
-                 NewStyle, range(10), Classic, max, property()]
+                 NewStyle, range(10), max, property()]
         for x in tests:
             self.assertIs(copy.deepcopy(x), x)
 
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 40cf81ff0b33f5d1178ab510e9ba44e9aac559b9..cbc020d1d3904aa8b75f2ba3603fd1700989fc97 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -3261,12 +3261,8 @@ def __get__(self, object, otype):
                 if otype:
                     otype = otype.__name__
                 return 'object=%s; type=%s' % (object, otype)
-        class OldClass:
+        class NewClass:
             __doc__ = DocDescr()
-        class NewClass(object):
-            __doc__ = DocDescr()
-        self.assertEqual(OldClass.__doc__, 'object=None; type=OldClass')
-        self.assertEqual(OldClass().__doc__, 'object=OldClass instance; type=OldClass')
         self.assertEqual(NewClass.__doc__, 'object=None; type=NewClass')
         self.assertEqual(NewClass().__doc__, 'object=NewClass instance; type=NewClass')
 
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index 087f72768fa4bfe19abff097df19f1efdf43dbd6..db7cb9ace6e5f35850a15347b04a3d4668f763fe 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -542,48 +542,6 @@ def __getattr__(self, someattribute):
         self.assertEqual(gc.collect(), 2)
         self.assertEqual(len(gc.garbage), garbagelen)
 
-    def test_boom_new(self):
-        # boom__new and boom2_new are exactly like boom and boom2, except use
-        # new-style classes.
-
-        class Boom_New(object):
-            def __getattr__(self, someattribute):
-                del self.attr
-                raise AttributeError
-
-        a = Boom_New()
-        b = Boom_New()
-        a.attr = b
-        b.attr = a
-
-        gc.collect()
-        garbagelen = len(gc.garbage)
-        del a, b
-        self.assertEqual(gc.collect(), 2)
-        self.assertEqual(len(gc.garbage), garbagelen)
-
-    def test_boom2_new(self):
-        class Boom2_New(object):
-            def __init__(self):
-                self.x = 0
-
-            def __getattr__(self, someattribute):
-                self.x += 1
-                if self.x > 1:
-                    del self.attr
-                raise AttributeError
-
-        a = Boom2_New()
-        b = Boom2_New()
-        a.attr = b
-        b.attr = a
-
-        gc.collect()
-        garbagelen = len(gc.garbage)
-        del a, b
-        self.assertEqual(gc.collect(), 2)
-        self.assertEqual(len(gc.garbage), garbagelen)
-
     def test_get_referents(self):
         alist = [1, 3, 5]
         got = gc.get_referents(alist)
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index 7230591d2c8281ef4e5057f60f86431f74cf0e52..db1b6e77482d0ba0baf6f9049411d118d420090f 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -2380,12 +2380,7 @@ class s1:
             def __repr__(self):
                 return '\\n'
 
-        class s2:
-            def __repr__(self):
-                return '\\n'
-
         self.assertEqual(repr(s1()), '\\n')
-        self.assertEqual(repr(s2()), '\\n')
 
     def test_printable_repr(self):
         self.assertEqual(repr('\U00010000'), "'%c'" % (0x10000,)) # printable