glob('anything*/') would fail because isdir is in os.path, not os.
diff --git a/Lib/glob.py b/Lib/glob.py
index ecc6d25..95656cc 100644
--- a/Lib/glob.py
+++ b/Lib/glob.py
@@ -60,7 +60,7 @@
if basename == '':
# `os.path.split()` returns an empty basename for paths ending with a
# directory separator. 'q*x/' should match only directories.
- if os.isdir(dirname):
+ if os.path.isdir(dirname):
return [basename]
else:
if os.path.lexists(os.path.join(dirname, basename)):
diff --git a/Lib/test/test_glob.py b/Lib/test/test_glob.py
index 8a6ef7f..5ce09f9 100644
--- a/Lib/test/test_glob.py
+++ b/Lib/test/test_glob.py
@@ -80,6 +80,14 @@
eq(self.glob('?a?', '*F'), map(self.norm, [os.path.join('aaa', 'zzzF'),
os.path.join('aab', 'F')]))
+ def test_glob_directory_with_trailing_slash(self):
+ # We are verifying that when there is wildcard pattern which
+ # ends with os.sep doesn't blow up.
+ res = glob.glob(self.tempdir + '*' + os.sep)
+ self.assertEqual(len(res), 1)
+ # either of these results are reasonable
+ self.assertTrue(res[0] in [self.tempdir, self.tempdir + os.sep])
+
def test_glob_broken_symlinks(self):
if hasattr(os, 'symlink'):
eq = self.assertSequencesEqual_noorder
diff --git a/Misc/NEWS b/Misc/NEWS
index 266b6c9..b7f46ba 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -20,6 +20,8 @@
Library
-------
+- Fix exception when doing glob.glob('anything*/')
+
Build
-----