diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/memoryfs.py | 3 | ||||
-rw-r--r-- | fs/tests/__init__.py | 1 |
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")) |