diff options
author | Ezio Melotti <ezio.melotti@gmail.com> | 2013-05-01 11:58:09 (GMT) |
---|---|---|
committer | Ezio Melotti <ezio.melotti@gmail.com> | 2013-05-01 11:58:09 (GMT) |
commit | ed52f6cb73c9bda621503cbc558d3a1c3319e568 (patch) | |
tree | 87ac7f7ca6960f5f308f708ac2144167ab79aa1e /Lib | |
parent | 4c09c2cbd563e2dfbe89b077c544c421fb77aa25 (diff) | |
download | cpython-ed52f6cb73c9bda621503cbc558d3a1c3319e568.zip cpython-ed52f6cb73c9bda621503cbc558d3a1c3319e568.tar.gz cpython-ed52f6cb73c9bda621503cbc558d3a1c3319e568.tar.bz2 |
#11078: test___all__ now checks for duplicates in __all__. Initial patch by R. David Murray.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test___all__.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py index 608ec01..093ea2f 100644 --- a/Lib/test/test___all__.py +++ b/Lib/test/test___all__.py @@ -29,17 +29,20 @@ class AllTest(unittest.TestCase): if not hasattr(sys.modules[modname], "__all__"): raise NoAll(modname) names = {} - try: - exec("from %s import *" % modname, names) - except Exception as e: - # Include the module name in the exception string - self.fail("__all__ failure in {}: {}: {}".format( - modname, e.__class__.__name__, e)) - if "__builtins__" in names: - del names["__builtins__"] - keys = set(names) - all = set(sys.modules[modname].__all__) - self.assertEqual(keys, all) + with self.subTest(module=modname): + try: + exec("from %s import *" % modname, names) + except Exception as e: + # Include the module name in the exception string + self.fail("__all__ failure in {}: {}: {}".format( + modname, e.__class__.__name__, e)) + if "__builtins__" in names: + del names["__builtins__"] + keys = set(names) + all_list = sys.modules[modname].__all__ + all_set = set(all_list) + self.assertCountEqual(all_set, all_list, "in module {}".format(modname)) + self.assertEqual(keys, all_set, "in module {}".format(modname)) def walk_modules(self, basedir, modpath): for fn in sorted(os.listdir(basedir)): |