]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: add pyfakefs fixture
authorMichael Fritch <mfritch@suse.com>
Mon, 24 May 2021 14:03:55 +0000 (08:03 -0600)
committerSebastian Wagner <sewagner@redhat.com>
Fri, 11 Jun 2021 09:49:19 +0000 (11:49 +0200)
to mock the cephadm filesystem

Signed-off-by: Michael Fritch <mfritch@suse.com>
(cherry picked from commit d5eac27833ea830f35fb0d75bc205cf85e4256e4)

src/cephadm/tests/fixtures.py
src/cephadm/tox.ini

index bd0ae193a148cdbca909e2b09bf25ed923eb04d7..ab5dcab652d3acd15909c6703bf6bd09bc258f11 100644 (file)
@@ -3,6 +3,8 @@ import os
 import pytest
 import time
 
+from pyfakefs import fake_filesystem
+
 
 with mock.patch('builtins.open', create=True):
     from importlib.machinery import SourceFileLoader
@@ -38,3 +40,25 @@ def exporter():
         exporter = cd.CephadmDaemon(ctx, fsid='foobar', daemon_id='test')
         assert exporter.token == 'MyAccessToken' 
         yield exporter
+
+
+@pytest.fixture()
+def cephadm_fs(
+    fs: fake_filesystem.FakeFilesystem,
+):
+    """
+    use pyfakefs to stub filesystem calls
+    """
+    uid = os.getuid()
+    gid = os.getgid()
+
+    with mock.patch('os.fchown'), \
+         mock.patch('cephadm.extract_uid_gid', return_value=(uid, gid)):
+
+            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)
+
+            yield fs
index 8e127123b0383f3d96f416b23d0146dfbacb6666..6f25b4008f0fc3309ebacf22093a01204f27175c 100644 (file)
@@ -34,8 +34,9 @@ addopts =
 [testenv]
 skip_install=true
 deps =
-  pytest
+  pyfakefs
   mock
+  pytest
 commands=pytest {posargs}
 
 [testenv:mypy]