Coverage for manila/tests/test_manager.py: 100%
74 statements
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2026-02-18 22:19 +0000
1# Copyright 2014 Mirantis Inc.
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
16"""Test of Base Manager for Manila."""
18from unittest import mock
20import ddt
21from oslo_utils import importutils
23from manila import manager
24from manila import test
27@ddt.ddt
28class ManagerTestCase(test.TestCase):
30 def setUp(self):
31 super(ManagerTestCase, self).setUp()
32 self.host = 'host'
33 self.db_driver = 'fake_driver'
34 self.mock_object(importutils, 'import_module')
36 def test_verify_manager_instance(self):
37 fake_manager = manager.Manager(self.host, self.db_driver)
38 self.assertTrue(hasattr(fake_manager, '_periodic_tasks'))
39 self.assertTrue(hasattr(fake_manager, 'additional_endpoints'))
40 self.assertTrue(hasattr(fake_manager, 'host'))
41 self.assertTrue(hasattr(fake_manager, 'periodic_tasks'))
42 self.assertTrue(hasattr(fake_manager, 'init_host'))
43 self.assertTrue(hasattr(fake_manager, 'service_version'))
44 self.assertTrue(hasattr(fake_manager, 'service_config'))
45 self.assertEqual(self.host, fake_manager.host)
46 importutils.import_module.assert_called_once_with(self.db_driver)
48 @ddt.data(True, False)
49 def test_periodic_tasks(self, raise_on_error):
50 fake_manager = manager.Manager(self.host, self.db_driver)
51 fake_context = 'fake_context'
52 self.mock_object(fake_manager, 'run_periodic_tasks')
54 fake_manager.periodic_tasks(fake_context, raise_on_error)
56 fake_manager.run_periodic_tasks.assert_called_once_with(
57 fake_context, raise_on_error=raise_on_error)
60@ddt.ddt
61class SchedulerDependentManagerTestCase(test.TestCase):
63 def setUp(self):
64 super(SchedulerDependentManagerTestCase, self).setUp()
65 self.context = 'fake_context'
66 self.host = 'host'
67 self.db_driver = 'fake_driver'
68 self.service_name = 'fake_service_name'
69 self.mock_object(importutils, 'import_module')
70 self.sched_manager = manager.SchedulerDependentManager(
71 self.host, self.db_driver, self.service_name)
73 def test_verify_scheduler_dependent_manager_instance(self):
74 self.assertTrue(hasattr(self.sched_manager, '_periodic_tasks'))
75 self.assertTrue(hasattr(self.sched_manager, 'additional_endpoints'))
76 self.assertTrue(hasattr(self.sched_manager, 'host'))
77 self.assertTrue(hasattr(self.sched_manager, 'periodic_tasks'))
78 self.assertTrue(hasattr(self.sched_manager, 'init_host'))
79 self.assertTrue(hasattr(self.sched_manager, 'service_version'))
80 self.assertTrue(hasattr(self.sched_manager, 'service_config'))
81 self.assertTrue(hasattr(self.sched_manager, 'last_capabilities'))
82 self.assertTrue(hasattr(self.sched_manager, 'service_name'))
83 self.assertTrue(hasattr(self.sched_manager, 'scheduler_rpcapi'))
84 self.assertTrue(hasattr(self.sched_manager,
85 'update_service_capabilities'))
86 self.assertTrue(hasattr(self.sched_manager,
87 '_publish_service_capabilities'))
88 self.assertEqual(self.host, self.sched_manager.host)
89 self.assertEqual(self.service_name, self.sched_manager.service_name)
90 importutils.import_module.assert_called_once_with(self.db_driver)
92 @ddt.data(None, {}, [], '')
93 def test__publish_service_capabilities_no_update(self, last_capabilities):
94 self.sched_manager.last_capabilities = last_capabilities
95 self.mock_object(
96 self.sched_manager.scheduler_rpcapi, 'update_service_capabilities')
98 self.sched_manager._publish_service_capabilities('fake_context')
100 self.assertFalse(
101 self.sched_manager.scheduler_rpcapi.update_service_capabilities.
102 called)
104 @ddt.data('fake_last_capabilities', {'foo': 'bar'})
105 def test__publish_service_capabilities_with_update(self,
106 last_capabilities):
107 self.sched_manager.last_capabilities = last_capabilities
108 self.mock_object(
109 self.sched_manager.scheduler_rpcapi, 'update_service_capabilities')
110 self.mock_object(manager.LOG, 'debug')
112 self.sched_manager._publish_service_capabilities(self.context)
114 (self.sched_manager.scheduler_rpcapi.update_service_capabilities.
115 assert_called_once_with(
116 self.context, self.service_name, self.host, last_capabilities))
117 manager.LOG.debug.assert_called_once_with(mock.ANY)
119 @ddt.data(None, '', [], {}, {'foo': 'bar'})
120 def test_update_service_capabilities(self, capabilities):
121 self.sched_manager.update_service_capabilities(capabilities)
122 self.assertEqual(capabilities, self.sched_manager.last_capabilities)