summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2016-01-30 15:50:48 (GMT)
committerBerker Peksag <berker.peksag@gmail.com>2016-01-30 15:50:48 (GMT)
commit4a208e448e80ac1ce2bc805685d68da69dd44841 (patch)
tree9e8fbf4f7bbc612e8faaf7397b92694ec3172d79 /Lib
parentef410770a7f7d559ed9a0f36ffc5bae0ebf1ca8d (diff)
downloadcpython-4a208e448e80ac1ce2bc805685d68da69dd44841.zip
cpython-4a208e448e80ac1ce2bc805685d68da69dd44841.tar.gz
cpython-4a208e448e80ac1ce2bc805685d68da69dd44841.tar.bz2
Issue #23076: Path.glob() now raises a ValueError if it's called with an
invalid pattern. Patch by Thomas Nyberg.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/pathlib.py2
-rw-r--r--Lib/test/test_pathlib.py5
2 files changed, 7 insertions, 0 deletions
diff --git a/Lib/pathlib.py b/Lib/pathlib.py
index bbac773..5169ff5 100644
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -1065,6 +1065,8 @@ class Path(PurePath):
"""Iterate over this subtree and yield all existing files (of any
kind, including directories) matching the given pattern.
"""
+ if not pattern:
+ raise ValueError("Unacceptable pattern: {!r}".format(pattern))
pattern = self._flavour.casefold(pattern)
drv, root, pattern_parts = self._flavour.parse_parts((pattern,))
if drv or root:
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
index 490d423..b03fee0 100644
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -1969,6 +1969,11 @@ class PathTest(_BasePathTest, unittest.TestCase):
else:
self.assertRaises(NotImplementedError, pathlib.WindowsPath)
+ def test_glob_empty_pattern(self):
+ p = self.cls()
+ with self.assertRaisesRegex(ValueError, 'Unacceptable pattern'):
+ list(p.glob(''))
+
@only_posix
class PosixPathTest(_BasePathTest, unittest.TestCase):