Improve unit test coverage for dcmanager/manager/subcloud_manager.py (3/5)

This commit includes new unit tests for subcloud_manager.py,
covering new test cases in deploy, add, delete, update, compose,
backup and restore, redeploy, backup, prestage and migrate
operations.

Test plan:

1) PASS: Run tox py39, pylint and pep8 envs and
         verify that they are all passing.
2) PASS: Check 'tox -e cover' command output.
         Coverage increased from 61% to 70%

Depends-On: https://review.opendev.org/c/starlingx/distcloud/+/913989

Story: 2007082
Task: 49618

Change-Id: I05604a4940eac62b311dd8476498965a0f021be0
Signed-off-by: Swapna Gorre <swapna.gorre@windriver.com>
This commit is contained in:
Swapna Gorre 2024-03-25 06:12:48 -04:00
parent b82d5886cd
commit 5ac107c3e5
3 changed files with 978 additions and 499 deletions

View File

@ -30,6 +30,7 @@ import sqlalchemy
from sqlalchemy.engine import Engine
from sqlalchemy import event
from dccommon.utils import AnsiblePlaybook
from dcmanager.audit import rpcapi as audit_rpc_client
from dcmanager.common import consts
from dcmanager.common import phased_subcloud_deploy as psd_common
@ -317,16 +318,23 @@ class DCManagerTestCase(base.BaseTestCase):
return base64.b64encode(keyword.encode("utf-8")).decode("utf-8")
def _mock_SubcloudManager(self, target):
def _mock_subcloud_manager(self, target):
"""Mock the target's SubcloudManager"""
mock_patch = mock.patch.object(target, 'SubcloudManager')
self.mock_subcloud_manager = mock_patch.start()
self.addCleanup(mock_patch.stop)
mock_patch_object = mock.patch.object(target, 'SubcloudManager')
self.mock_subcloud_manager = mock_patch_object.start()
self.addCleanup(mock_patch_object.stop)
def _mock_PeerMonitorManager(self, target):
def _mock_peer_monitor_manager(self, target):
"""Mock the target's PeerMonitorManager"""
mock_patch = mock.patch.object(target, 'PeerMonitorManager')
self.mock_PeerMonitor_Manager = mock_patch.start()
self.addCleanup(mock_patch.stop)
mock_patch_object = mock.patch.object(target, 'PeerMonitorManager')
self.mock_peer_monitor_manager = mock_patch_object.start()
self.addCleanup(mock_patch_object.stop)
def _mock_ansible_run_playbook(self):
"""Mock AnsiblePlaybook's run_playbook"""
mock_patch_object = mock.patch.object(AnsiblePlaybook, 'run_playbook')
self.mock_ansible_run_playbook = mock_patch_object.start()
self.addCleanup(mock_patch_object.stop)

View File

@ -39,8 +39,8 @@ class BaseTestDCManagerService(DCManagerTestCase):
'dcmanager')
self.payload = {}
self._mock_audit_rpc_client()
self._mock_SubcloudManager(service)
self._mock_PeerMonitorManager(service)
self._mock_subcloud_manager(service)
self._mock_peer_monitor_manager(service)
class TestDCManagerServiceInit(BaseTestDCManagerService):
@ -275,7 +275,7 @@ class TestPeerMonitorManager(BaseTestDCManagerService):
def test_peer_monitor_notify(self):
self.service_obj.init_managers()
self.service_obj.peer_monitor_notify(self.ctx)
self.mock_PeerMonitor_Manager().peer_monitor_notify.assert_called_once_with(
self.mock_peer_monitor_manager().peer_monitor_notify.assert_called_once_with(
self.ctx)
def test_peer_group_audit_notify(self):
@ -283,7 +283,7 @@ class TestPeerMonitorManager(BaseTestDCManagerService):
self.service_obj.init_managers()
self.service_obj.peer_group_audit_notify(
self.ctx, peer_group_name='fake_peer_group', payload=payload)
self.mock_PeerMonitor_Manager().peer_group_audit_notify.\
self.mock_peer_monitor_manager().peer_group_audit_notify.\
assert_called_once_with(self.ctx,
'fake_peer_group', payload)