Revert "bpo-30822: Fix testing of datetime module." (#2588)

* Revert "bpo-30854: Fix compile error when --without-threads (#2581)"

This reverts commit 0c3116309307ad2c7f8e2d2096612f4ab33cbb62.

* Revert "NEWS for 30777 (#2576)"

This reverts commit aaa917ff38f9869eeebe3bc9469bfee64089d826.

* Revert "bpo-21624: IDLE -- minor htest fixes (#2575)"

This reverts commit 2000150c569941584994ec4ec59171961209bec3.

* Revert "bpo-30777: IDLE: configdialog - add docstrings and improve comments (#2440)"

This reverts commit 7eb5883ac59833bf63f0e1f7fb95671a1ac1ee08.

* Revert "bpo-30319: socket.close() now ignores ECONNRESET (#2565)"

This reverts commit 67e1478dba6efe60b8e1890192014b8b06dd6bd9.

* Revert "bpo-30789: Use a single memory block for co_extra. (#2555)"

This reverts commit 378ebb6578b9d709f38b888d23874c0b18125249.

* Revert "bpo-30845: Enhance test_concurrent_futures cleanup (#2564)"

This reverts commit 3df9dec425b0254df1cdf41922fd8d6b08bf47e4.

* Revert "bpo-29293: multiprocessing.Condition.notify() lacks parameter `n` (#2480)"

This reverts commit 48350412b70c76fa51f488cfc736c80d59b5e8eb.

* Revert "Remove outdated FOX from GUI FAQ (GH-2538)"

This reverts commit d3ed2877a798d07df75422afe136b4727e500c99.

* Revert "bpo-6691: Pyclbr now reports nested classes and functions. (#2503)"

This reverts commit 246ff3bd00f97658e567a7087645a6b76e056491.

* Revert "bpo-29464: Rename METH_FASTCALL to METH_FASTCALL|METH_KEYWORDS and make (#1955)"

This reverts commit 6969eaf4682beb01bc95eeb14f5ce6c01312e297.

* Revert "bpo-30832: Remove own implementation for thread-local storage (#2537)"

This reverts commit aa0aa0492c5fffe750a26d2ab13737a1a6d7d63c.

* Revert "bpo-30764: Fix regrtest --fail-env-changed --forever (#2536)"

This reverts commit 5e87592fd12e0b7c41edc11d4885ed7298d5063b.

* Revert "bpo-30822: Deduplicate ZoneInfoTest classes in test_datetime. (#2534)"

This reverts commit 34b54873b51a1ebee2a3c57b7205537b4f33128d.

* Revert "bpo-30822: Fix testing of datetime module. (#2530)"

This reverts commit 98b6bc3bf72532b784a1c1fa76eaa6026a663e44.
diff --git a/Lib/datetime.py b/Lib/datetime.py
index b95536f..5d5579c 100644
--- a/Lib/datetime.py
+++ b/Lib/datetime.py
@@ -2271,8 +2271,7 @@
          _check_tzinfo_arg, _check_tzname, _check_utc_offset, _cmp, _cmperror,
          _date_class, _days_before_month, _days_before_year, _days_in_month,
          _format_time, _is_leap, _isoweek1monday, _math, _ord2ymd,
-         _time, _time_class, _tzinfo_class, _wrap_strftime, _ymd2ord,
-         _divide_and_round)
+         _time, _time_class, _tzinfo_class, _wrap_strftime, _ymd2ord)
     # XXX Since import * above excludes names that start with _,
     # docstring does not get overwritten. In the future, it may be
     # appropriate to maintain a single module level docstring and
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py
index b25e6c1..bccd97a 100644
--- a/Lib/test/datetimetester.py
+++ b/Lib/test/datetimetester.py
@@ -61,9 +61,8 @@
         self.assertEqual(datetime.MAXYEAR, 9999)
 
     def test_name_cleanup(self):
-        if '_Pure' in self.__class__.__name__:
-            self.skipTest('Only run for Fast C implementation')
-
+        if '_Fast' not in str(self):
+            return
         datetime = datetime_module
         names = set(name for name in dir(datetime)
                     if not name.startswith('__') and not name.endswith('__'))
@@ -73,9 +72,8 @@
         self.assertEqual(names - allowed, set([]))
 
     def test_divide_and_round(self):
-        if '_Fast' in self.__class__.__name__:
-            self.skipTest('Only run for Pure Python implementation')
-
+        if '_Fast' in str(self):
+            return
         dar = datetime_module._divide_and_round
 
         self.assertEqual(dar(-10, -3), 3)
@@ -2853,7 +2851,7 @@
         self.assertRaises(TypeError, t.strftime, "%Z")
 
         # Issue #6697:
-        if '_Fast' in self.__class__.__name__:
+        if '_Fast' in str(self):
             Badtzname.tz = '\ud800'
             self.assertRaises(ValueError, t.strftime, "%Z")
 
diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py
index d659f36..04f11c8 100644
--- a/Lib/test/test_datetime.py
+++ b/Lib/test/test_datetime.py
@@ -20,7 +20,7 @@
 # XXX(gb) First run all the _Pure tests, then all the _Fast tests.  You might
 # not believe this, but in spite of all the sys.modules trickery running a _Pure
 # test last will leave a mix of pure and native datetime stuff lying around.
-all_test_classes = []
+test_classes = []
 
 for module, suffix in zip(test_modules, test_suffixes):
     test_classes = []
@@ -34,8 +34,7 @@
             test_classes.extend(type(test) for test in suit)
     test_classes = sorted(set(test_classes), key=lambda cls: cls.__qualname__)
     for cls in test_classes:
-        cls.__name__ += suffix
-        cls.__qualname__ += suffix
+        cls.__name__ = name + suffix
         @classmethod
         def setUpClass(cls_, module=module):
             cls_._save_sys_modules = sys.modules.copy()
@@ -48,10 +47,9 @@
             sys.modules.update(cls_._save_sys_modules)
         cls.setUpClass = setUpClass
         cls.tearDownClass = tearDownClass
-    all_test_classes.extend(test_classes)
 
 def test_main():
-    run_unittest(*all_test_classes)
+    run_unittest(*test_classes)
 
 if __name__ == "__main__":
     test_main()
diff --git a/Misc/ACKS b/Misc/ACKS
index 3385269..3455c1b 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1602,7 +1602,6 @@
 Eren Türkay
 Lionel Ulmer
 Adnan Umer
-Utkarsh Upadhyay
 Roger Upole
 Daniel Urban
 Michael Urman