]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cephadm: move podman/docker test mock
authorMichael Fritch <mfritch@suse.com>
Wed, 26 May 2021 13:05:24 +0000 (07:05 -0600)
committerSebastian Wagner <sewagner@redhat.com>
Fri, 11 Jun 2021 09:51:03 +0000 (11:51 +0200)
to use as a default value in the fixtures

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

Conflicts:
src/cephadm/tests/test_cephadm.py

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

index ec4244abede8e8af05e718c5ad645ce7c38347d1..9693ead8dd0d63eae76458fc1043e47f388e31f5 100644 (file)
@@ -5,7 +5,8 @@ import time
 
 from contextlib import contextmanager
 from pyfakefs import fake_filesystem
-from typing import Dict, List, Optional
+
+from typing import Callable, Dict, List, Optional
 
 
 with mock.patch('builtins.open', create=True):
@@ -13,6 +14,19 @@ with mock.patch('builtins.open', create=True):
     cd = SourceFileLoader('cephadm', 'cephadm').load_module()
 
 
+def mock_docker():
+    docker = mock.Mock(cd.Docker)
+    docker.path = '/usr/bin/docker'
+    return docker
+
+
+def mock_podman():
+    podman = mock.Mock(cd.Podman)
+    podman.path = '/usr/bin/podman'
+    podman.version = (2, 1, 0)
+    return podman
+
+
 def _daemon_path():
     return os.getcwd()
 
@@ -69,10 +83,12 @@ def cephadm_fs(
 @contextmanager
 def with_cephadm_ctx(
     cmd: List[str],
+    container_engine: Callable = mock_podman(),
     list_networks: Optional[Dict[str,Dict[str,List[str]]]] = None
 ):
     """
     :param cmd: cephadm command argv
+    :param container_engine: container engine mock (podman or docker)
     :param list_networks: mock 'list-networks' return
     """
     if not list_networks:
@@ -86,4 +102,5 @@ def with_cephadm_ctx(
          mock.patch('cephadm.json_loads_retry', return_value={'epoch' : 1}), \
          mock.patch('cephadm.list_networks', return_value=list_networks):
              ctx: cd.CephadmContext = cd.cephadm_init_ctx(cmd)
+             ctx.container_engine = container_engine
              yield ctx
index 95c335de1d643fa73d9e112c7390bf0b9306f92f..5360b39f5706e89cd5e6efd8c9c16b6e167f60d6 100644 (file)
@@ -15,7 +15,7 @@ from urllib.request import Request, urlopen
 from urllib.error import HTTPError
 
 from typing import List, Optional
-from .fixtures import exporter
+from .fixtures import exporter, mock_docker, mock_podman
 
 
 with mock.patch('builtins.open', create=True):
@@ -25,25 +25,12 @@ with mock.patch('builtins.open', create=True):
 
 class TestCephAdm(object):
 
-    @staticmethod
-    def mock_docker():
-        docker = mock.Mock(cd.Docker)
-        docker.path = '/usr/bin/docker'
-        return docker
-
-    @staticmethod
-    def mock_podman():
-        podman = mock.Mock(cd.Podman)
-        podman.path = '/usr/bin/podman'
-        podman.version = (2, 1, 0)
-        return podman
-
     def test_docker_unit_file(self):
         ctx = mock.Mock()
-        ctx.container_engine = self.mock_docker()
+        ctx.container_engine = mock_docker()
         r = cd.get_unit_file(ctx, '9b9d7609-f4d5-4aba-94c8-effa764d96c9')
         assert 'Requires=docker.service' in r
-        ctx.container_engine = self.mock_podman()
+        ctx.container_engine = mock_podman()
         r = cd.get_unit_file(ctx, '9b9d7609-f4d5-4aba-94c8-effa764d96c9')
         assert 'Requires=docker.service' not in r
 
@@ -416,7 +403,7 @@ default proto ra metric 100
             ['registry-login', '--registry-url', 'sample-url',
             '--registry-username', 'sample-user', '--registry-password',
             'sample-pass'])
-        ctx.container_engine = self.mock_docker()
+        ctx.container_engine = mock_docker()
         retval = cd.command_registry_login(ctx)
         assert retval == 0
 
@@ -432,7 +419,7 @@ default proto ra metric 100
         get_parm.return_value = {"url": "sample-url", "username": "sample-username", "password": "sample-password"}
         ctx: cd.CephadmContext = cd.cephadm_init_ctx(
             ['registry-login', '--registry-json', 'sample-json'])
-        ctx.container_engine = self.mock_docker()
+        ctx.container_engine = mock_docker()
         retval = cd.command_registry_login(ctx)
         assert retval == 0