Переглянути джерело

Merge pull request #5112 from finefoot/patch-1

Fix tests of read-only repos for non-root users
TW 5 роки тому
батько
коміт
cc25c7d692
1 змінених файлів з 6 додано та 3 видалено
  1. 6 3
      src/borg/testsuite/__init__.py

+ 6 - 3
src/borg/testsuite/__init__.py

@@ -262,9 +262,10 @@ class BaseTestCase(unittest.TestCase):
     def read_only(self, path):
         """Some paths need to be made read-only for testing
 
-        Using chmod to remove write permissions is not enough due to
-        the tests running with root privileges. Instead, the folder is
-        rendered immutable with chattr or chflags, respectively.
+        To simulate operations on read-only repositories, writing
+        permissions are simply being withdrawn. However, if the tests
+        are being run with root privileges, this is not enough and
+        the folder has to be rendered immutable, additionally.
         """
         if sys.platform.startswith('linux'):
             cmd_immutable = 'chattr +i "%s"' % path
@@ -279,11 +280,13 @@ class BaseTestCase(unittest.TestCase):
             message = 'Testing read-only repos is not supported on platform %s' % sys.platform
             self.skipTest(message)
         try:
+            os.system('chmod -R ugo-w "%s"' % path)
             os.system(cmd_immutable)
             yield
         finally:
             # Restore permissions to ensure clean-up doesn't fail
             os.system(cmd_mutable)
+            os.system('chmod -R ugo+w "%s"' % path)
 
 
 class changedir: