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