summaryrefslogtreecommitdiffstats
path: root/Lib/test/test___all__.py
diff options
context:
space:
mode:
authorEzio Melotti <ezio.melotti@gmail.com>2013-05-01 11:58:09 (GMT)
committerEzio Melotti <ezio.melotti@gmail.com>2013-05-01 11:58:09 (GMT)
commited52f6cb73c9bda621503cbc558d3a1c3319e568 (patch)
tree87ac7f7ca6960f5f308f708ac2144167ab79aa1e /Lib/test/test___all__.py
parent4c09c2cbd563e2dfbe89b077c544c421fb77aa25 (diff)
downloadcpython-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/test/test___all__.py')
-rw-r--r--Lib/test/test___all__.py25
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)):