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
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)
mock_bad_firewalld,
)
+from pyfakefs import fake_filesystem
from pyfakefs import fake_filesystem_unittest
with mock.patch('builtins.open', create=True):
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