mirror of
https://github.com/python/cpython.git
synced 2025-09-17 22:20:23 +00:00

Renamed copy_reg to copyreg in the standard library, to avoid spurious warnings and ease later merging to py3k branch. Public documentation remains intact.
182 lines
5.9 KiB
Python
182 lines
5.9 KiB
Python
import unittest
|
|
from test.test_support import run_unittest, catch_warning
|
|
import sys
|
|
import warnings
|
|
|
|
|
|
|
|
class AllTest(unittest.TestCase):
|
|
|
|
def check_all(self, modname):
|
|
names = {}
|
|
with catch_warning():
|
|
warnings.filterwarnings("ignore", ".* (module|package)",
|
|
DeprecationWarning)
|
|
try:
|
|
exec "import %s" % modname in names
|
|
except ImportError:
|
|
# Silent fail here seems the best route since some modules
|
|
# may not be available in all environments.
|
|
return
|
|
self.failUnless(hasattr(sys.modules[modname], "__all__"),
|
|
"%s has no __all__ attribute" % modname)
|
|
names = {}
|
|
exec "from %s import *" % modname in names
|
|
if "__builtins__" in names:
|
|
del names["__builtins__"]
|
|
keys = set(names)
|
|
all = set(sys.modules[modname].__all__)
|
|
self.assertEqual(keys, all)
|
|
|
|
def test_all(self):
|
|
if not sys.platform.startswith('java'):
|
|
# In case _socket fails to build, make this test fail more gracefully
|
|
# than an AttributeError somewhere deep in CGIHTTPServer.
|
|
import _socket
|
|
|
|
self.check_all("BaseHTTPServer")
|
|
self.check_all("Bastion")
|
|
self.check_all("CGIHTTPServer")
|
|
self.check_all("ConfigParser")
|
|
self.check_all("Cookie")
|
|
self.check_all("MimeWriter")
|
|
self.check_all("Queue")
|
|
self.check_all("SimpleHTTPServer")
|
|
self.check_all("SocketServer")
|
|
self.check_all("StringIO")
|
|
self.check_all("UserString")
|
|
self.check_all("aifc")
|
|
self.check_all("atexit")
|
|
self.check_all("audiodev")
|
|
self.check_all("base64")
|
|
self.check_all("bdb")
|
|
self.check_all("binhex")
|
|
self.check_all("calendar")
|
|
self.check_all("cgi")
|
|
self.check_all("cmd")
|
|
self.check_all("code")
|
|
self.check_all("codecs")
|
|
self.check_all("codeop")
|
|
self.check_all("colorsys")
|
|
self.check_all("commands")
|
|
self.check_all("compileall")
|
|
self.check_all("copy")
|
|
self.check_all("copyreg")
|
|
self.check_all("csv")
|
|
self.check_all("dbhash")
|
|
self.check_all("decimal")
|
|
self.check_all("difflib")
|
|
self.check_all("dircache")
|
|
self.check_all("dis")
|
|
self.check_all("doctest")
|
|
self.check_all("dummy_thread")
|
|
self.check_all("dummy_threading")
|
|
self.check_all("filecmp")
|
|
self.check_all("fileinput")
|
|
self.check_all("fnmatch")
|
|
self.check_all("fpformat")
|
|
self.check_all("ftplib")
|
|
self.check_all("getopt")
|
|
self.check_all("getpass")
|
|
self.check_all("gettext")
|
|
self.check_all("glob")
|
|
self.check_all("gzip")
|
|
self.check_all("heapq")
|
|
self.check_all("htmllib")
|
|
self.check_all("httplib")
|
|
self.check_all("ihooks")
|
|
self.check_all("imaplib")
|
|
self.check_all("imghdr")
|
|
self.check_all("imputil")
|
|
self.check_all("keyword")
|
|
self.check_all("linecache")
|
|
self.check_all("locale")
|
|
self.check_all("macpath")
|
|
self.check_all("macurl2path")
|
|
self.check_all("mailbox")
|
|
self.check_all("mailcap")
|
|
self.check_all("mhlib")
|
|
self.check_all("mimetools")
|
|
self.check_all("mimetypes")
|
|
self.check_all("mimify")
|
|
self.check_all("multifile")
|
|
self.check_all("netrc")
|
|
self.check_all("nntplib")
|
|
self.check_all("ntpath")
|
|
self.check_all("opcode")
|
|
self.check_all("optparse")
|
|
self.check_all("os")
|
|
self.check_all("os2emxpath")
|
|
self.check_all("pdb")
|
|
self.check_all("pickle")
|
|
self.check_all("pickletools")
|
|
self.check_all("pipes")
|
|
self.check_all("popen2")
|
|
self.check_all("poplib")
|
|
self.check_all("posixpath")
|
|
self.check_all("pprint")
|
|
self.check_all("profile")
|
|
self.check_all("pstats")
|
|
self.check_all("pty")
|
|
self.check_all("py_compile")
|
|
self.check_all("pyclbr")
|
|
self.check_all("quopri")
|
|
self.check_all("random")
|
|
self.check_all("re")
|
|
self.check_all("repr")
|
|
self.check_all("rexec")
|
|
self.check_all("rfc822")
|
|
self.check_all("rlcompleter")
|
|
self.check_all("robotparser")
|
|
self.check_all("sched")
|
|
self.check_all("sets")
|
|
self.check_all("sgmllib")
|
|
self.check_all("shelve")
|
|
self.check_all("shlex")
|
|
self.check_all("shutil")
|
|
self.check_all("smtpd")
|
|
self.check_all("smtplib")
|
|
self.check_all("sndhdr")
|
|
self.check_all("socket")
|
|
self.check_all("_strptime")
|
|
self.check_all("symtable")
|
|
self.check_all("tabnanny")
|
|
self.check_all("tarfile")
|
|
self.check_all("telnetlib")
|
|
self.check_all("tempfile")
|
|
self.check_all("textwrap")
|
|
self.check_all("threading")
|
|
self.check_all("timeit")
|
|
self.check_all("toaiff")
|
|
self.check_all("tokenize")
|
|
self.check_all("traceback")
|
|
self.check_all("tty")
|
|
self.check_all("unittest")
|
|
self.check_all("urllib")
|
|
self.check_all("urlparse")
|
|
self.check_all("uu")
|
|
self.check_all("warnings")
|
|
self.check_all("wave")
|
|
self.check_all("weakref")
|
|
self.check_all("webbrowser")
|
|
self.check_all("xdrlib")
|
|
self.check_all("zipfile")
|
|
|
|
# rlcompleter needs special consideration; it import readline which
|
|
# initializes GNU readline which calls setlocale(LC_CTYPE, "")... :-(
|
|
try:
|
|
self.check_all("rlcompleter")
|
|
finally:
|
|
try:
|
|
import locale
|
|
except ImportError:
|
|
pass
|
|
else:
|
|
locale.setlocale(locale.LC_CTYPE, 'C')
|
|
|
|
|
|
def test_main():
|
|
run_unittest(AllTest)
|
|
|
|
if __name__ == "__main__":
|
|
test_main()
|