summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/memoryfs.py3
-rw-r--r--fs/tests/__init__.py1
2 files changed, 4 insertions, 0 deletions
diff --git a/fs/memoryfs.py b/fs/memoryfs.py
index 91aa4c3..0d56f37 100644
--- a/fs/memoryfs.py
+++ b/fs/memoryfs.py
@@ -484,6 +484,9 @@ class MemoryFS(FS):
if not dirname:
raise RemoveRootError(path)
del parent_dir.contents[dirname]
+ # stop recursing if the directory has other contents
+ if parent_dir.contents:
+ break
else:
pathname, dirname = pathsplit(path)
parent_dir = self._get_dir_entry(pathname)
diff --git a/fs/tests/__init__.py b/fs/tests/__init__.py
index d44e43a..bbfeff1 100644
--- a/fs/tests/__init__.py
+++ b/fs/tests/__init__.py
@@ -419,6 +419,7 @@ class FSTestCases(object):
self.fs.removedir("foo/bar/baz", recursive=True)
self.assert_(not check("foo/bar/baz"))
self.assert_(not check("foo/bar"))
+ self.assert_(check("foo/file.txt"))
# Ensure that force=True works as expected
self.fs.makedir("frollic/waggle", recursive=True)
self.fs.setcontents("frollic/waddle.txt",b("waddlewaddlewaddle"))