Issue #23358: Add missing BaseServer entry to socketserver.__all__.

Patch by Martin Panter.
diff --git a/Lib/socketserver.py b/Lib/socketserver.py
index fc4ee4e..c43f1be 100644
--- a/Lib/socketserver.py
+++ b/Lib/socketserver.py
@@ -138,10 +138,10 @@
     import dummy_threading as threading
 from time import monotonic as time
 
-__all__ = ["TCPServer","UDPServer","ForkingUDPServer","ForkingTCPServer",
-           "ThreadingUDPServer","ThreadingTCPServer","BaseRequestHandler",
-           "StreamRequestHandler","DatagramRequestHandler",
-           "ThreadingMixIn", "ForkingMixIn"]
+__all__ = ["BaseServer", "TCPServer", "UDPServer", "ForkingUDPServer",
+           "ForkingTCPServer", "ThreadingUDPServer", "ThreadingTCPServer",
+           "BaseRequestHandler", "StreamRequestHandler",
+           "DatagramRequestHandler", "ThreadingMixIn", "ForkingMixIn"]
 if hasattr(socket, "AF_UNIX"):
     __all__.extend(["UnixStreamServer","UnixDatagramServer",
                     "ThreadingUnixStreamServer",
diff --git a/Lib/test/test_socketserver.py b/Lib/test/test_socketserver.py
index f5d8d52..31ab3b6 100644
--- a/Lib/test/test_socketserver.py
+++ b/Lib/test/test_socketserver.py
@@ -2,7 +2,6 @@
 Test suite for socketserver.
 """
 
-import _imp as imp
 import contextlib
 import os
 import select
@@ -281,12 +280,18 @@
                                        socketserver.StreamRequestHandler)
 
 
-def test_main():
-    if imp.lock_held():
-        # If the import lock is held, the threads will hang
-        raise unittest.SkipTest("can't run when import lock is held")
+class MiscTestCase(unittest.TestCase):
 
-    test.support.run_unittest(SocketServerTest)
+    def test_all(self):
+        # objects defined in the module should be in __all__
+        expected = []
+        for name in dir(socketserver):
+            if not name.startswith('_'):
+                mod_object = getattr(socketserver, name)
+                if getattr(mod_object, '__module__', None) == 'socketserver':
+                    expected.append(name)
+        self.assertCountEqual(socketserver.__all__, expected)
+
 
 if __name__ == "__main__":
-    test_main()
+    unittest.main()