]>
git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/tests/test_ceph_service.py
1 # -*- coding: utf-8 -*-
2 # pylint: disable=dangerous-default-value,too-many-public-methods
3 from __future__
import absolute_import
9 import unittest
.mock
as mock
11 from ..services
.ceph_service
import CephService
14 class CephServiceTest(unittest
.TestCase
):
16 'pool_name': 'good_pool',
19 'pool_name': 'bad_pool',
26 self
.list_patch
= mock
.patch('dashboard.services.ceph_service.CephService.get_pool_list')
27 self
.list = self
.list_patch
.start()
28 self
.list.return_value
= self
.pools
30 self
.mgr_patch
= mock
.patch('dashboard.mgr.get')
31 self
.mgr
= self
.mgr_patch
.start()
32 self
.mgr
.return_value
= {
34 '1': {'active+clean': 16},
35 '2': {'creating+incomplete': 16},
38 self
.service
= CephService()
41 self
.list_patch
.stop()
44 def test_get_pool_by_attribute_with_match(self
):
45 self
.assertEqual(self
.service
.get_pool_by_attribute('pool', 1), self
.pools
[0])
46 self
.assertEqual(self
.service
.get_pool_by_attribute('pool_name', 'bad_pool'), self
.pools
[1])
48 def test_get_pool_by_attribute_without_a_match(self
):
49 self
.assertEqual(self
.service
.get_pool_by_attribute('pool', 3), None)
50 self
.assertEqual(self
.service
.get_pool_by_attribute('not_there', 'sth'), None)
52 def test_get_pool_by_attribute_matching_a_not_always_set_attribute(self
):
53 self
.assertEqual(self
.service
.get_pool_by_attribute('flaky', 'option_x'), self
.pools
[1])
55 @mock.patch('dashboard.mgr.rados.pool_reverse_lookup', return_value
='good_pool')
56 def test_get_pool_name_from_id_with_match(self
, _mock
):
57 self
.assertEqual(self
.service
.get_pool_name_from_id(1), 'good_pool')
59 @mock.patch('dashboard.mgr.rados.pool_reverse_lookup', return_value
=None)
60 def test_get_pool_name_from_id_without_match(self
, _mock
):
61 self
.assertEqual(self
.service
.get_pool_name_from_id(3), None)
63 def test_get_pool_pg_status(self
):
64 self
.assertEqual(self
.service
.get_pool_pg_status('good_pool'), {'active+clean': 16})
66 def test_get_pg_status_without_match(self
):
67 self
.assertEqual(self
.service
.get_pool_pg_status('no-pool'), {})