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