summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pathlib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_pathlib')
-rw-r--r--Lib/test/test_pathlib/test_pathlib.py43
-rw-r--r--Lib/test/test_pathlib/test_pathlib_abc.py42
2 files changed, 43 insertions, 42 deletions
diff --git a/Lib/test/test_pathlib/test_pathlib.py b/Lib/test/test_pathlib/test_pathlib.py
index db5f3b2..8f95c80 100644
--- a/Lib/test/test_pathlib/test_pathlib.py
+++ b/Lib/test/test_pathlib/test_pathlib.py
@@ -15,6 +15,7 @@ from urllib.request import pathname2url
from test.support import import_helper
from test.support import is_emscripten, is_wasi
+from test.support import set_recursion_limit
from test.support import os_helper
from test.support.os_helper import TESTFN, FakePath
from test.test_pathlib import test_pathlib_abc
@@ -1660,6 +1661,48 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
self.assertEqual(next(it), expected)
path = path / 'd'
+ def test_walk_above_recursion_limit(self):
+ recursion_limit = 40
+ # directory_depth > recursion_limit
+ directory_depth = recursion_limit + 10
+ base = self.cls(self.base, 'deep')
+ path = base.joinpath(*(['d'] * directory_depth))
+ path.mkdir(parents=True)
+
+ with set_recursion_limit(recursion_limit):
+ list(base.walk())
+ list(base.walk(top_down=False))
+
+ def test_glob_many_open_files(self):
+ depth = 30
+ P = self.cls
+ p = base = P(self.base) / 'deep'
+ p.mkdir()
+ for _ in range(depth):
+ p /= 'd'
+ p.mkdir()
+ pattern = '/'.join(['*'] * depth)
+ iters = [base.glob(pattern) for j in range(100)]
+ for it in iters:
+ self.assertEqual(next(it), p)
+ iters = [base.rglob('d') for j in range(100)]
+ p = base
+ for i in range(depth):
+ p = p / 'd'
+ for it in iters:
+ self.assertEqual(next(it), p)
+
+ def test_glob_above_recursion_limit(self):
+ recursion_limit = 50
+ # directory_depth > recursion_limit
+ directory_depth = recursion_limit + 10
+ base = self.cls(self.base, 'deep')
+ path = base.joinpath(*(['d'] * directory_depth))
+ path.mkdir(parents=True)
+
+ with set_recursion_limit(recursion_limit):
+ list(base.glob('**/'))
+
@only_posix
class PosixPathTest(PathTest, PurePosixPathTest):
diff --git a/Lib/test/test_pathlib/test_pathlib_abc.py b/Lib/test/test_pathlib/test_pathlib_abc.py
index 568a318..e4a4e81 100644
--- a/Lib/test/test_pathlib/test_pathlib_abc.py
+++ b/Lib/test/test_pathlib/test_pathlib_abc.py
@@ -8,7 +8,6 @@ import unittest
from pathlib._abc import UnsupportedOperation, PurePathBase, PathBase
import posixpath
-from test.support import set_recursion_limit
from test.support.os_helper import TESTFN
@@ -1224,25 +1223,6 @@ class DummyPathTest(DummyPurePathTest):
}
self.assertEqual(given, {p / x for x in expect})
- def test_glob_many_open_files(self):
- depth = 30
- P = self.cls
- p = base = P(self.base) / 'deep'
- p.mkdir()
- for _ in range(depth):
- p /= 'd'
- p.mkdir()
- pattern = '/'.join(['*'] * depth)
- iters = [base.glob(pattern) for j in range(100)]
- for it in iters:
- self.assertEqual(next(it), p)
- iters = [base.rglob('d') for j in range(100)]
- p = base
- for i in range(depth):
- p = p / 'd'
- for it in iters:
- self.assertEqual(next(it), p)
-
def test_glob_dotdot(self):
# ".." is not special in globs.
P = self.cls
@@ -1286,17 +1266,6 @@ class DummyPathTest(DummyPurePathTest):
bad_link.symlink_to("bad" * 200)
self.assertEqual(sorted(base.glob('**/*')), [bad_link])
- def test_glob_above_recursion_limit(self):
- recursion_limit = 50
- # directory_depth > recursion_limit
- directory_depth = recursion_limit + 10
- base = self.cls(self.base, 'deep')
- path = base.joinpath(*(['d'] * directory_depth))
- path.mkdir(parents=True)
-
- with set_recursion_limit(recursion_limit):
- list(base.glob('**/'))
-
def test_glob_recursive_no_trailing_slash(self):
P = self.cls
p = P(self.base)
@@ -1825,17 +1794,6 @@ class DummyPathTest(DummyPurePathTest):
else:
self.fail("symlink not found")
- def test_walk_above_recursion_limit(self):
- recursion_limit = 40
- # directory_depth > recursion_limit
- directory_depth = recursion_limit + 10
- base = self.cls(self.base, 'deep')
- path = base.joinpath(*(['d'] * directory_depth))
- path.mkdir(parents=True)
-
- with set_recursion_limit(recursion_limit):
- list(base.walk())
- list(base.walk(top_down=False))
class DummyPathWithSymlinks(DummyPath):
def readlink(self):