File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change 3434 "IllegalBackReference" ,
3535 "InsufficientStorage" ,
3636 "InvalidCharsInPath" ,
37+ "InvalidMoveOperation" ,
3738 "InvalidPath" ,
3839 "MissingInfoNamespace" ,
3940 "NoSysPath" ,
@@ -303,6 +304,12 @@ class DirectoryNotEmpty(ResourceError):
303304 default_message = "directory '{path}' is not empty"
304305
305306
307+ class InvalidMoveOperation (ResourceError ):
308+ """Attempt to move a folder into its own subfolder."""
309+
310+ default_message = "you cannot move '{path}' into its own subfolder"
311+
312+
306313class ResourceLocked (ResourceError ):
307314 """Attempt to use a locked resource."""
308315
Original file line number Diff line number Diff line change @@ -1885,6 +1885,25 @@ def test_movedir(self):
18851885 with self .assertRaises (errors .DirectoryExpected ):
18861886 self .fs .movedir ("foo2/foofoo.txt" , "foo2/baz/egg" )
18871887
1888+ def test_movedir_onto_itself (self ):
1889+ folder = self .fs .makedir ("folder" )
1890+ folder .writetext ("file1.txt" , "Hello1" )
1891+ sub = folder .makedir ("sub" )
1892+ sub .writetext ("file2.txt" , "Hello2" )
1893+
1894+ self .fs .movedir ("folder" , "folder" )
1895+ self .assert_text ("folder/file1.txt" , "Hello1" )
1896+ self .assert_text ("folder/sub/file2.txt" , "Hello2" )
1897+
1898+ def test_movedir_into_its_own_subfolder (self ):
1899+ folder = self .fs .makedir ("folder" )
1900+ folder .writetext ("file1.txt" , "Hello1" )
1901+ sub = folder .makedir ("sub" )
1902+ sub .writetext ("file2.txt" , "Hello2" )
1903+
1904+ with self .assertRaises (errors .InvalidMoveOperation ):
1905+ self .fs .movedir ("folder" , "folder/sub/" )
1906+
18881907 def test_match (self ):
18891908 self .assertTrue (self .fs .match (["*.py" ], "foo.py" ))
18901909 self .assertEqual (
You can’t perform that action at this time.
0 commit comments