From: Kefu Chai Date: Mon, 10 Oct 2022 13:57:57 +0000 (+0800) Subject: cephadm: run tests as root X-Git-Tag: v18.1.0~1041^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ed19416067a7ef3b69310d22bf4e3b573e3011f0;p=ceph.git cephadm: run tests as root 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 --- diff --git a/src/cephadm/tests/fixtures.py b/src/cephadm/tests/fixtures.py index ef61e68474b1..1274a89bd75d 100644 --- a/src/cephadm/tests/fixtures.py +++ b/src/cephadm/tests/fixtures.py @@ -77,6 +77,9 @@ 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(_cephadm.DATA_DIR) fs.create_dir(_cephadm.LOG_DIR) fs.create_dir(_cephadm.LOCK_DIR) diff --git a/src/cephadm/tests/test_cephadm.py b/src/cephadm/tests/test_cephadm.py index ab87a42665cd..87e700b535ce 100644 --- a/src/cephadm/tests/test_cephadm.py +++ b/src/cephadm/tests/test_cephadm.py @@ -18,6 +18,7 @@ from .fixtures import ( import_cephadm, ) +from pyfakefs import fake_filesystem from pyfakefs import fake_filesystem_unittest _cephadm = import_cephadm() @@ -2565,6 +2566,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 = _cephadm.CephadmContext() self.ctx.func = _cephadm.command_rescan_disks