]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: run tests as root
authorKefu Chai <tchaikov@gmail.com>
Mon, 10 Oct 2022 13:57:57 +0000 (21:57 +0800)
committerNizamudeen A <nia@redhat.com>
Tue, 11 Oct 2022 06:21:41 +0000 (11:51 +0530)
as we will be create/access directories which are only accessible by
root with pyfakefs, and pyfake respects the uid of current effective
user, so if we run the test using non-root user, these tests would fail
after the fix for https://github.com/pytest-dev/pyfakefs/issues/489
is addressed in the pyfakefs we are using.

in this change, we will run the test on behalf of root, so we can
create and access the directories as we did before.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
(cherry picked from commit ed19416067a7ef3b69310d22bf4e3b573e3011f0)

 Conflicts:
src/cephadm/tests/fixtures.py
  - Replace _cephadm with cd

src/cephadm/tests/fixtures.py
src/cephadm/tests/test_cephadm.py

index 1f5f171214863ff577a2b6fa20277925b6c58fa4..843fb4b33e9ec284dded496b03a6542e0bb2db63 100644 (file)
@@ -68,11 +68,15 @@ def cephadm_fs(
          mock.patch('platform.processor', return_value='x86_64'), \
          mock.patch('cephadm.extract_uid_gid', return_value=(uid, gid)):
 
+            if not fake_filesystem.is_root():
+                fake_filesystem.set_uid(0)
+
             fs.create_dir(cd.DATA_DIR)
             fs.create_dir(cd.LOG_DIR)
             fs.create_dir(cd.LOCK_DIR)
             fs.create_dir(cd.LOGROTATE_DIR)
             fs.create_dir(cd.UNIT_DIR)
+            fs.create_dir('/sys/block')
 
             yield fs
 
index b5c6008e88d74b7947b6ed5510f6a4e22e13fd03..b259ce55eca07ebb8ab51af184afb598a89dee5a 100644 (file)
@@ -17,6 +17,7 @@ from .fixtures import (
     mock_bad_firewalld,
 )
 
+from pyfakefs import fake_filesystem
 from pyfakefs import fake_filesystem_unittest
 
 with mock.patch('builtins.open', create=True):
@@ -2446,6 +2447,9 @@ class TestRescan(fake_filesystem_unittest.TestCase):
 
     def setUp(self):
         self.setUpPyfakefs()
+        if not fake_filesystem.is_root():
+            fake_filesystem.set_uid(0)
+
         self.fs.create_dir('/sys/class')
         self.ctx = cd.CephadmContext()
         self.ctx.func = cd.command_rescan_disks