warnings.catch_warnings() now returns a list or None instead of the custom
[python.git] / Lib / test / test___all__.py
blob0a8c5d652bf045bb148b3018f8878f0f173551fc
1 import unittest
2 from test.test_support import run_unittest
3 import sys
4 import warnings
8 class AllTest(unittest.TestCase):
10 def check_all(self, modname):
11 names = {}
12 with warnings.catch_warnings():
13 warnings.filterwarnings("ignore", ".* (module|package)",
14 DeprecationWarning)
15 try:
16 exec "import %s" % modname in names
17 except ImportError:
18 # Silent fail here seems the best route since some modules
19 # may not be available in all environments.
20 return
21 self.failUnless(hasattr(sys.modules[modname], "__all__"),
22 "%s has no __all__ attribute" % modname)
23 names = {}
24 exec "from %s import *" % modname in names
25 if "__builtins__" in names:
26 del names["__builtins__"]
27 keys = set(names)
28 all = set(sys.modules[modname].__all__)
29 self.assertEqual(keys, all)
31 def test_all(self):
32 if not sys.platform.startswith('java'):
33 # In case _socket fails to build, make this test fail more gracefully
34 # than an AttributeError somewhere deep in CGIHTTPServer.
35 import _socket
37 self.check_all("BaseHTTPServer")
38 self.check_all("Bastion")
39 self.check_all("CGIHTTPServer")
40 self.check_all("ConfigParser")
41 self.check_all("Cookie")
42 self.check_all("MimeWriter")
43 self.check_all("Queue")
44 self.check_all("SimpleHTTPServer")
45 self.check_all("SocketServer")
46 self.check_all("StringIO")
47 self.check_all("UserString")
48 self.check_all("aifc")
49 self.check_all("atexit")
50 self.check_all("audiodev")
51 self.check_all("base64")
52 self.check_all("bdb")
53 self.check_all("binhex")
54 self.check_all("calendar")
55 self.check_all("cgi")
56 self.check_all("cmd")
57 self.check_all("code")
58 self.check_all("codecs")
59 self.check_all("codeop")
60 self.check_all("colorsys")
61 self.check_all("commands")
62 self.check_all("compileall")
63 self.check_all("copy")
64 self.check_all("copy_reg")
65 self.check_all("csv")
66 self.check_all("dbhash")
67 self.check_all("decimal")
68 self.check_all("difflib")
69 self.check_all("dircache")
70 self.check_all("dis")
71 self.check_all("doctest")
72 self.check_all("dummy_thread")
73 self.check_all("dummy_threading")
74 self.check_all("filecmp")
75 self.check_all("fileinput")
76 self.check_all("fnmatch")
77 self.check_all("fpformat")
78 self.check_all("ftplib")
79 self.check_all("getopt")
80 self.check_all("getpass")
81 self.check_all("gettext")
82 self.check_all("glob")
83 self.check_all("gzip")
84 self.check_all("heapq")
85 self.check_all("htmllib")
86 self.check_all("httplib")
87 self.check_all("ihooks")
88 self.check_all("imaplib")
89 self.check_all("imghdr")
90 self.check_all("imputil")
91 self.check_all("keyword")
92 self.check_all("linecache")
93 self.check_all("locale")
94 self.check_all("macpath")
95 self.check_all("macurl2path")
96 self.check_all("mailbox")
97 self.check_all("mailcap")
98 self.check_all("mhlib")
99 self.check_all("mimetools")
100 self.check_all("mimetypes")
101 self.check_all("mimify")
102 self.check_all("multifile")
103 self.check_all("netrc")
104 self.check_all("nntplib")
105 self.check_all("ntpath")
106 self.check_all("opcode")
107 self.check_all("optparse")
108 self.check_all("os")
109 self.check_all("os2emxpath")
110 self.check_all("pdb")
111 self.check_all("pickle")
112 self.check_all("pickletools")
113 self.check_all("pipes")
114 self.check_all("popen2")
115 self.check_all("poplib")
116 self.check_all("posixpath")
117 self.check_all("pprint")
118 self.check_all("profile")
119 self.check_all("pstats")
120 self.check_all("pty")
121 self.check_all("py_compile")
122 self.check_all("pyclbr")
123 self.check_all("quopri")
124 self.check_all("random")
125 self.check_all("re")
126 self.check_all("repr")
127 self.check_all("rexec")
128 self.check_all("rfc822")
129 self.check_all("rlcompleter")
130 self.check_all("robotparser")
131 self.check_all("sched")
132 self.check_all("sets")
133 self.check_all("sgmllib")
134 self.check_all("shelve")
135 self.check_all("shlex")
136 self.check_all("shutil")
137 self.check_all("smtpd")
138 self.check_all("smtplib")
139 self.check_all("sndhdr")
140 self.check_all("socket")
141 self.check_all("_strptime")
142 self.check_all("symtable")
143 self.check_all("tabnanny")
144 self.check_all("tarfile")
145 self.check_all("telnetlib")
146 self.check_all("tempfile")
147 self.check_all("test.test_support")
148 self.check_all("textwrap")
149 self.check_all("threading")
150 self.check_all("timeit")
151 self.check_all("toaiff")
152 self.check_all("tokenize")
153 self.check_all("traceback")
154 self.check_all("tty")
155 self.check_all("unittest")
156 self.check_all("urllib")
157 self.check_all("urlparse")
158 self.check_all("uu")
159 self.check_all("warnings")
160 self.check_all("wave")
161 self.check_all("weakref")
162 self.check_all("webbrowser")
163 self.check_all("xdrlib")
164 self.check_all("zipfile")
166 # rlcompleter needs special consideration; it import readline which
167 # initializes GNU readline which calls setlocale(LC_CTYPE, "")... :-(
168 try:
169 self.check_all("rlcompleter")
170 finally:
171 try:
172 import locale
173 except ImportError:
174 pass
175 else:
176 locale.setlocale(locale.LC_CTYPE, 'C')
179 def test_main():
180 run_unittest(AllTest)
182 if __name__ == "__main__":
183 test_main()