mirror of
https://github.com/python/cpython.git
synced 2026-05-29 07:35:02 -04:00
a690a9967e
* Install the unittests, docs, newsitem, include file, and makefile update. * Exercise the new functions whereever sets.py was being used. Includes the docs for libfuncs.tex. Separate docs for the types are forthcoming.
204 lines
7.0 KiB
Python
204 lines
7.0 KiB
Python
import unittest
|
|
from test import test_support
|
|
|
|
from test.test_support import verify, verbose
|
|
import sys
|
|
import warnings
|
|
|
|
warnings.filterwarnings("ignore", ".* 'pre' .*", DeprecationWarning,
|
|
r'pre$')
|
|
warnings.filterwarnings("ignore", ".* regsub .*", DeprecationWarning,
|
|
r'^regsub$')
|
|
warnings.filterwarnings("ignore", ".* statcache .*", DeprecationWarning,
|
|
r'statcache$')
|
|
|
|
class AllTest(unittest.TestCase):
|
|
|
|
def check_all(self, modname):
|
|
names = {}
|
|
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.
|
|
# Since an ImportError may leave a partial module object in
|
|
# sys.modules, get rid of that first. Here's what happens if
|
|
# you don't: importing pty fails on Windows because pty tries to
|
|
# import FCNTL, which doesn't exist. That raises an ImportError,
|
|
# caught here. It also leaves a partial pty module in sys.modules.
|
|
# So when test_pty is called later, the import of pty succeeds,
|
|
# but shouldn't. As a result, test_pty crashes with an
|
|
# AttributeError instead of an ImportError, and regrtest interprets
|
|
# the latter as a test failure (ImportError is treated as "test
|
|
# skipped" -- which is what test_pty should say on Windows).
|
|
try:
|
|
del sys.modules[modname]
|
|
except KeyError:
|
|
pass
|
|
return
|
|
verify(hasattr(sys.modules[modname], "__all__"),
|
|
"%s has no __all__ attribute" % modname)
|
|
names = {}
|
|
exec "from %s import *" % modname in names
|
|
if names.has_key("__builtins__"):
|
|
del names["__builtins__"]
|
|
keys = set(names)
|
|
all = set(sys.modules[modname].__all__)
|
|
verify(keys==all, "%s != %s" % (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("copy_reg")
|
|
self.check_all("csv")
|
|
self.check_all("dbhash")
|
|
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("gopherlib")
|
|
self.check_all("gzip")
|
|
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("pipes")
|
|
self.check_all("popen2")
|
|
self.check_all("poplib")
|
|
self.check_all("posixpath")
|
|
self.check_all("pprint")
|
|
self.check_all("pre") # deprecated
|
|
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("reconvert")
|
|
self.check_all("regsub")
|
|
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("sre")
|
|
self.check_all("_strptime")
|
|
self.check_all("statcache")
|
|
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():
|
|
test_support.run_unittest(AllTest)
|
|
|
|
if __name__ == "__main__":
|
|
test_main()
|