mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 672237dc6c
			
		
	
	
		672237dc6c
		
	
	
	
	
		
			
			WarningsRecorder object. This makes the API simpler to use as no special object must be learned. Closes issue 3781. Review by Benjamin Peterson.
		
			
				
	
	
		
			183 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
	
		
			5.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import unittest
 | |
| from test.test_support import run_unittest
 | |
| import sys
 | |
| import warnings
 | |
| 
 | |
| 
 | |
| 
 | |
| class AllTest(unittest.TestCase):
 | |
| 
 | |
|     def check_all(self, modname):
 | |
|         names = {}
 | |
|         with warnings.catch_warnings():
 | |
|             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("copy_reg")
 | |
|         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("test.test_support")
 | |
|         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()
 |