# HG changeset patch # Parent 33db20c8537cc5be58753788d04672e66542dd90 diff -r 33db20c8537c Lib/socketserver.py --- a/Lib/socketserver.py Sat Jan 31 02:45:12 2015 -0800 +++ b/Lib/socketserver.py Sat Jan 31 11:37:59 2015 +0000 @@ -138,7 +138,8 @@ import dummy_threading as threading from time import monotonic as time -__all__ = ["TCPServer","UDPServer","ForkingUDPServer","ForkingTCPServer", +__all__ = ["BaseServer", + "TCPServer","UDPServer","ForkingUDPServer","ForkingTCPServer", "ThreadingUDPServer","ThreadingTCPServer","BaseRequestHandler", "StreamRequestHandler","DatagramRequestHandler", "ThreadingMixIn", "ForkingMixIn"] diff -r 33db20c8537c Lib/test/test_socketserver.py --- a/Lib/test/test_socketserver.py Sat Jan 31 02:45:12 2015 -0800 +++ b/Lib/test/test_socketserver.py Sat Jan 31 11:37:59 2015 +0000 @@ -69,6 +69,17 @@ testcase.assertEqual(72 << 8, status) +class SimpleTests(unittest.TestCase): + def test_all(self): + # Objects defined in the module should be in __all__ + expected = [] + for name in dir(socketserver): + object = getattr(socketserver, name) + if getattr(object, '__module__', None) == "socketserver": + expected.append(name) + self.assertCountEqual(socketserver.__all__, expected) + + @unittest.skipUnless(threading, 'Threading required for this test.') class SocketServerTest(unittest.TestCase): """Test all socket servers.""" @@ -286,7 +297,7 @@ # If the import lock is held, the threads will hang raise unittest.SkipTest("can't run when import lock is held") - test.support.run_unittest(SocketServerTest) + test.support.run_unittest(SimpleTests, SocketServerTest) if __name__ == "__main__": test_main()