]>
git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/tests/test_orchestrator.py
3 from unittest
import mock
5 from orchestrator
import Orchestrator
as OrchestratorBase
7 from ..controllers
.orchestrator
import Orchestrator
8 from ..services
.orchestrator
import OrchFeature
9 from ..tests
import ControllerTestCase
12 class OrchestratorControllerTest(ControllerTestCase
):
13 URL_STATUS
= '/api/orchestrator/status'
14 URL_INVENTORY
= '/api/orchestrator/inventory'
17 def setup_server(cls
):
18 cls
.setup_controllers([Orchestrator
])
20 @mock.patch('dashboard.controllers.orchestrator.OrchClient.instance')
21 def test_status_get(self
, instance
):
22 status
= {'available': False, 'description': ''}
24 fake_client
= mock
.Mock()
25 fake_client
.status
.return_value
= status
26 instance
.return_value
= fake_client
28 self
._get
(self
.URL_STATUS
)
29 self
.assertStatus(200)
30 self
.assertJsonBody(status
)
33 class TestOrchestrator(unittest
.TestCase
):
34 def test_features_has_corresponding_methods(self
):
35 defined_methods
= [v
for k
, v
in inspect
.getmembers(
36 OrchFeature
, lambda m
: not inspect
.isroutine(m
)) if not k
.startswith('_')]
37 orchestrator_methods
= [k
for k
, v
in inspect
.getmembers(
38 OrchestratorBase
, inspect
.isroutine
)]
39 for method
in defined_methods
:
40 self
.assertIn(method
, orchestrator_methods
)