]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
nautilus: mgr/dashboard: decouple unit tests from build artifacts 40547/head
authorAlfonso Martínez <almartin@redhat.com>
Tue, 6 Apr 2021 10:34:02 +0000 (12:34 +0200)
committerAlfonso Martínez <almartin@redhat.com>
Tue, 6 Apr 2021 10:34:02 +0000 (12:34 +0200)
Signed-off-by: Alfonso Martínez <almartin@redhat.com>
12 files changed:
src/pybind/mgr/dashboard/__init__.py
src/pybind/mgr/dashboard/controllers/iscsi.py
src/pybind/mgr/dashboard/controllers/nfsganesha.py
src/pybind/mgr/dashboard/controllers/rbd.py
src/pybind/mgr/dashboard/controllers/rbd_mirroring.py
src/pybind/mgr/dashboard/exceptions.py
src/pybind/mgr/dashboard/module.py
src/pybind/mgr/dashboard/services/ceph_service.py
src/pybind/mgr/dashboard/services/cephfs.py
src/pybind/mgr/dashboard/services/exception.py
src/pybind/mgr/dashboard/services/rbd.py
src/pybind/mgr/dashboard/tests/test_exceptions.py

index 798ed37e3ab6c5b8350700fae9b1e22f9f72e70b..fc8fbc20adb8f0e30d7469a2131b48ac7006a982 100644 (file)
@@ -48,7 +48,38 @@ else:
     # raise an ImportError
     import sys
     import mock
-    sys.modules['ceph_module'] = mock.Mock()
 
     mgr = mock.Mock()
     mgr.get_frontend_path.side_effect = lambda: os.path.abspath("./frontend/dist")
+
+    def mock_ceph_modules():
+        class MockRadosError(Exception):
+            def __init__(self, message, errno=None):
+                super(MockRadosError, self).__init__(message)
+                self.errno = errno
+
+            def __str__(self):
+                msg = super(MockRadosError, self).__str__()
+                if self.errno is None:
+                    return msg
+                return '[errno {0}] {1}'.format(self.errno, msg)
+
+        rbd = mock.Mock()
+        rbd.RBD_FEATURE_LAYERING = 1
+        rbd.RBD_FEATURE_STRIPINGV2 = 2
+        rbd.RBD_FEATURE_EXCLUSIVE_LOCK = 4
+        rbd.RBD_FEATURE_OBJECT_MAP = 8
+        rbd.RBD_FEATURE_FAST_DIFF = 16
+        rbd.RBD_FEATURE_DEEP_FLATTEN = 32
+        rbd.RBD_FEATURE_JOURNALING = 64
+        rbd.RBD_FEATURE_DATA_POOL = 128
+        rbd.RBD_FEATURE_OPERATIONS = 256
+
+        sys.modules.update({
+            'rados': mock.Mock(Error=MockRadosError, OSError=MockRadosError),
+            'rbd': rbd,
+            'cephfs': mock.Mock(),
+            'ceph_module': mock.Mock(),
+        })
+
+    mock_ceph_modules()
index af7532055d4062ccb0ca1855b42ae8700cfe3e30..0a353841fc11aafac56d13c60a9c7a2f83738559 100644 (file)
@@ -8,8 +8,8 @@ import re
 import json
 import cherrypy
 
-import rados
-import rbd
+import rados  # pylint: disable=import-error
+import rbd  # pylint: disable=import-error
 
 from . import ApiController, UiApiController, RESTController, BaseController, Endpoint,\
     ReadPermission, UpdatePermission, Task
index b9599d72b482a527bc80071779deb79595b560ab..e98b17e6aeb23cabe75b5ff54ca013d1a0aee5fc 100644 (file)
@@ -4,7 +4,7 @@ from __future__ import absolute_import
 from functools import partial
 
 import cherrypy
-import cephfs
+import cephfs  # pylint: disable=import-error
 
 from . import ApiController, RESTController, UiApiController, BaseController, \
               Endpoint, Task, ReadPermission, ControllerDoc, EndpointDoc
index 52dca087044b3258a596f29c70afb194ca327198..ea5714a6b72466ab863b19bf477315ebb213999e 100644 (file)
@@ -9,7 +9,7 @@ from datetime import datetime
 
 import cherrypy
 
-import rbd
+import rbd  # pylint: disable=import-error
 
 from . import ApiController, RESTController, Task, UpdatePermission, \
               DeletePermission, CreatePermission, ReadPermission, allow_empty_body
index 0f6574a4667c3aad9ad6afb4e85a9c04356a1a1e..405c068b0ffd4a39eae6228c4863185485b7edc0 100644 (file)
@@ -8,7 +8,7 @@ from functools import partial
 
 import cherrypy
 
-import rbd
+import rbd  # pylint: disable=import-error
 
 from . import ApiController, Endpoint, Task, BaseController, ReadPermission, \
     RESTController
index b44a3f15b03287fbaa8be6ae0c011d7f8f1dfb84..83de90f061924a1dea30707716afcb620c09f214 100644 (file)
@@ -42,7 +42,7 @@ class DashboardException(Exception):
     def code(self):
         if self._code:
             return str(self._code)
-        return str(abs(self.errno))
+        return str(abs(self.errno)) if self.errno is not None else 'Error'
 
 
 # access control module exceptions
index 224b05cab2248b986ada46b95f811576a2226eaa..1a521d00b59dd21d875e65d46caf3b387225c740 100644 (file)
@@ -14,12 +14,14 @@ import sys
 import tempfile
 import threading
 import time
+
 from uuid import uuid4
 from OpenSSL import crypto
-import _strptime  # pylint: disable=unused-import
 from mgr_module import MgrModule, MgrStandbyModule, Option, CLIWriteCommand
 from mgr_util import get_default_addr, ServerConfigException, verify_tls_files
 
+import _strptime  # pylint: disable=unused-import
+
 try:
     import cherrypy
     from cherrypy._cptools import HandlerWrapperTool
index 6d38fa410798793ae5e39edbc526f1d8ec244f16..dc02b2967d4949d9910d7e1930cd2c0c5f0b715d 100644 (file)
@@ -3,7 +3,7 @@ from __future__ import absolute_import
 
 import json
 
-import rados
+import rados  # pylint: disable=import-error
 
 from mgr_module import CommandResult
 from mgr_util import get_time_series_rates, get_most_recent_rate
index bb75b4e2573a26e61a22a60386cce3c6a1c94e57..2c596c57b9e4e11c3e92eae09817b1b6ac3c2fd1 100644 (file)
@@ -3,7 +3,7 @@ from __future__ import absolute_import
 
 from contextlib import contextmanager
 
-import cephfs
+import cephfs  # pylint: disable=import-error
 
 from .. import mgr, logger
 
index b5c0bd58a17f45a2c4875113e26e658337082bb3..ff51b973e65c83708b3e365983b1dceda78730f2 100644 (file)
@@ -7,8 +7,8 @@ from contextlib import contextmanager
 
 import cherrypy
 
-import rbd
-import rados
+import rbd  # pylint: disable=import-error
+import rados  # pylint: disable=import-error
 
 from .. import logger
 from ..services.ceph_service import SendCommandError
index 55c6f542c0a5242a7ad0823c433da6479fd4fb15..d0ac20917db80f36bd8e677646e9e203932265c4 100644 (file)
@@ -3,7 +3,7 @@ from __future__ import absolute_import
 
 import six
 
-import rbd
+import rbd  # pylint: disable=import-error
 
 from .. import mgr
 from .ceph_service import CephService
index 5607f1dd029929cca356e16b8b842cf9f138b293..83845921797d8298d8ef19a4510d9a9c5081f2cc 100644 (file)
@@ -3,7 +3,7 @@ from __future__ import absolute_import
 
 import time
 
-import rados
+import rados  # pylint: disable=import-error
 
 from . import ControllerTestCase
 from ..services.ceph_service import SendCommandError