summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Kendall <brian@briankendall.net>2022-04-08 13:03:42 -0400
committerRadek Podgorny <radek@podgorny.cz>2022-07-02 18:37:37 +0200
commit694eb9527659462107b66647483140325d36f060 (patch)
tree49851441a2b4b865513886e165deec167883d4db
parent091564ceb494eb57def1250e380dc008d2493495 (diff)
downloadunionfs-fuse-git-694eb9527659462107b66647483140325d36f060.tar.gz
Add two more tests for preserve_branch checking handling of permissions
-rwxr-xr-xtest_all.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/test_all.py b/test_all.py
index 7ffeede..b4dc744 100755
--- a/test_all.py
+++ b/test_all.py
@@ -611,6 +611,32 @@ class UnionFS_RW_RW_PreserveBranch_TestCase(Common, unittest.TestCase):
self.assertTrue(os.access('rw2/rw1_dir/rw2_file', os.F_OK))
self.assertTrue(os.access('union/rw1_dir/rw2_file', os.F_OK))
+ def test_file_move_without_access(self):
+ self.assertTrue(os.access('union/rw1_dir/rw1_file', os.F_OK))
+ os.chmod('union/rw2_dir', 0o500);
+ try:
+ self.assertFalse(os.access('union/rw2_dir/rw1_file', os.F_OK))
+ with self.assertRaises(PermissionError):
+ os.rename('union/rw1_dir/rw1_file', 'union/rw2_dir/rw1_file')
+ self.assertTrue(os.access('union/rw1_dir/rw1_file', os.F_OK))
+ self.assertFalse(os.access('union/rw2_dir/rw1_file', os.F_OK))
+ finally:
+ # Ensure teardown can delete the files it needs to:
+ os.chmod('union/rw2_dir', 0o700);
+
+ def test_file_move_with_access(self):
+ os.mkdir('rw1/rw2_dir')
+ os.chmod('rw2/rw2_dir', 0o500);
+ try:
+ self.assertTrue(os.access('union/rw1_dir/rw1_file', os.F_OK))
+ os.rename('union/rw1_dir/rw1_file', 'union/rw2_dir/rw1_file')
+ self.assertFalse(os.access('rw1/rw1_dir/rw1_file', os.F_OK))
+ self.assertTrue(os.access('rw1/rw2_dir/rw1_file', os.F_OK))
+ self.assertTrue(os.access('union/rw2_dir/rw1_file', os.F_OK))
+ finally:
+ # Ensure teardown can delete the files it needs to:
+ os.chmod('rw2/rw2_dir', 0o700);
+
if __name__ == '__main__':
unittest.main()