summaryrefslogtreecommitdiffstats
path: root/src/pybind/mgr/dashboard/tests/test_cephfs.py
blob: e9abda538090852197e61a1b9d6762d9608a6a71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- coding: utf-8 -*-
from collections import defaultdict
try:
    from mock import Mock
except ImportError:
    from unittest.mock import Mock

from .. import mgr
from . import ControllerTestCase
from ..controllers.cephfs import CephFS


class MetaDataMock(object):
    def get(self, _x, _y):
        return 'bar'


def get_metadata_mock(key, meta_key):
    return {
        'mds': {
            None: None,  # Unknown key
            'foo': MetaDataMock()
        }[meta_key]
    }[key]


class CephFsTest(ControllerTestCase):
    cephFs = CephFS()

    @classmethod
    def setup_server(cls):
        mgr.get_metadata = Mock(side_effect=get_metadata_mock)

    def tearDown(self):
        mgr.get_metadata.stop()

    def test_append_of_mds_metadata_if_key_is_not_found(self):
        mds_versions = defaultdict(list)
        # pylint: disable=protected-access
        self.cephFs._append_mds_metadata(mds_versions, None)
        self.assertEqual(len(mds_versions), 0)

    def test_append_of_mds_metadata_with_existing_metadata(self):
        mds_versions = defaultdict(list)
        # pylint: disable=protected-access
        self.cephFs._append_mds_metadata(mds_versions, 'foo')
        self.assertEqual(len(mds_versions), 1)
        self.assertEqual(mds_versions['bar'], ['foo'])