]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-117127: glob tests: Reopen dir_fd to pick up directory changes (GH-117128...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 22 Mar 2024 10:21:53 +0000 (11:21 +0100)
committerGitHub <noreply@github.com>
Fri, 22 Mar 2024 10:21:53 +0000 (10:21 +0000)
gh-117127: glob tests: Reopen dir_fd to pick up directory changes (GH-117128)
(cherry picked from commit 42ae924d278c48a719fb0ab86357f3235a9f7ab9)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Lib/test/test_glob.py

index faf5bd85cc816beb4c6b9117962b2365ecf51d09..e11ea81a7d46e507723dad95cb5509bdd601d533 100644 (file)
@@ -40,6 +40,11 @@ class GlobTests(unittest.TestCase):
             os.symlink(self.norm('broken'), self.norm('sym1'))
             os.symlink('broken', self.norm('sym2'))
             os.symlink(os.path.join('a', 'bcd'), self.norm('sym3'))
+        self.open_dirfd()
+
+    def open_dirfd(self):
+        if self.dir_fd is not None:
+            os.close(self.dir_fd)
         if {os.open, os.stat} <= os.supports_dir_fd and os.scandir in os.supports_fd:
             self.dir_fd = os.open(self.tempdir, os.O_RDONLY | os.O_DIRECTORY)
         else:
@@ -349,6 +354,10 @@ class GlobTests(unittest.TestCase):
     def test_glob_named_pipe(self):
         path = os.path.join(self.tempdir, 'mypipe')
         os.mkfifo(path)
+
+        # gh-117127: Reopen self.dir_fd to pick up directory changes
+        self.open_dirfd()
+
         self.assertEqual(self.rglob('mypipe'), [path])
         self.assertEqual(self.rglob('mypipe*'), [path])
         self.assertEqual(self.rglob('mypipe', ''), [])