]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/tests/test_grafana.py
import ceph nautilus 14.2.2
[ceph.git] / ceph / src / pybind / mgr / dashboard / tests / test_grafana.py
CommitLineData
11fdf7f2
TL
1from . import ControllerTestCase
2from ..controllers.grafana import Grafana
3from .. import mgr
4
5
6class GrafanaTest(ControllerTestCase):
7 @classmethod
8 def setup_server(cls):
81eedcae 9 cls.server_settings()
11fdf7f2
TL
10 # pylint: disable=protected-access
11 Grafana._cp_config['tools.authenticate.on'] = False
12 cls.setup_controllers([Grafana])
13
81eedcae
TL
14 @classmethod
15 def server_settings(
16 cls,
17 url='http://localhost:3000',
18 user='admin',
19 password='admin',
20 ):
21 settings = dict()
22 if url is not None:
23 settings['GRAFANA_API_URL'] = url
24 if user is not None:
25 settings['GRAFANA_API_USERNAME'] = user
26 if password is not None:
27 settings['GRAFANA_API_PASSWORD'] = password
28 mgr.get_module_option.side_effect = settings.get
29
11fdf7f2 30 def test_url(self):
81eedcae 31 self.server_settings()
11fdf7f2
TL
32 self._get('/api/grafana/url')
33 self.assertStatus(200)
34 self.assertJsonBody({'instance': 'http://localhost:3000'})
35
36 def test_validation(self):
81eedcae 37 self.server_settings()
11fdf7f2
TL
38 self._get('/api/grafana/validation/foo')
39 self.assertStatus(500)
81eedcae
TL
40
41 def test_dashboards(self):
42 self.server_settings(url=None)
43 self._post('/api/grafana/dashboards')
44 self.assertStatus(500)
45 self.server_settings(user=None)
46 self._post('/api/grafana/dashboards')
47 self.assertStatus(500)
48 self.server_settings(password=None)
49 self._post('/api/grafana/dashboards')
50 self.assertStatus(500)