[Python-checkins] cpython (3.5): Issue #23076: Path.glob() now raises a ValueError if it's called with an

berker.peksag python-checkins at python.org
Sat Jan 30 10:51:21 EST 2016


https://hg.python.org/cpython/rev/35bf4f9e68f3
changeset:   100123:35bf4f9e68f3
branch:      3.5
parent:      100120:a1044c05a6dc
user:        Berker Peksag <berker.peksag at gmail.com>
date:        Sat Jan 30 17:50:48 2016 +0200
summary:
  Issue #23076: Path.glob() now raises a ValueError if it's called with an
invalid pattern.

Patch by Thomas Nyberg.

files:
  Lib/pathlib.py           |  2 ++
  Lib/test/test_pathlib.py |  5 +++++
  Misc/ACKS                |  1 +
  Misc/NEWS                |  3 +++
  4 files changed, 11 insertions(+), 0 deletions(-)


diff --git a/Lib/pathlib.py b/Lib/pathlib.py
--- a/Lib/pathlib.py
+++ b/Lib/pathlib.py
@@ -1065,6 +1065,8 @@
         """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
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -1969,6 +1969,11 @@
         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):
diff --git a/Misc/ACKS b/Misc/ACKS
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1038,6 +1038,7 @@
 Mikhail Novikov
 Michal Nowikowski
 Steffen Daode Nurpmeso
+Thomas Nyberg
 Nigel O'Brian
 John O'Connor
 Kevin O'Connor
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -73,6 +73,9 @@
 - Issue #26202: copy.deepcopy() now correctly copies range() objects with
   non-atomic attributes.
 
+- Issue #23076: Path.glob() now raises a ValueError if it's called with an
+  invalid pattern.  Patch by Thomas Nyberg.
+
 - Issue #19883: Fixed possible integer overflows in zipimport.
 
 - Issue #26227: On Windows, getnameinfo(), gethostbyaddr() and

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list