ceph/qa/tasks/mgr/dashboard/test_settings.py
Patrick Nawracay 7340e70d7f mgr/dashboard/backend: API to manage dashboard settings
Enables to change (set/unset) values of settings of the dashboard using
the REST API.

Fixes: https://tracker.ceph.com/issues/24273

Signed-off-by: Patrick Nawracay <pnawracay@suse.com>
2018-08-10 11:32:25 +02:00

66 lines
1.9 KiB
Python

# -*- coding: utf-8 -*-
from __future__ import absolute_import
from .helper import DashboardTestCase, JList, JObj, JAny
from pprint import pformat
class SettingsTest(DashboardTestCase):
def setUp(self):
self.settings = self._get('/api/settings')
def tearDown(self):
self._put(
'/api/settings',
{setting['name']: setting['value']
for setting in self.settings})
def test_list_settings(self):
settings = self._get('/api/settings')
self.assertGreater(len(settings), 10)
self.assertSchema(
settings,
JList(
JObj({
'default': JAny(none=False),
'name': str,
'type': str,
'value': JAny(none=False)
})))
self.assertStatus(200)
def test_get_setting(self):
setting = self._get('/api/settings/rgw-api-access-key')
self.assertSchema(
setting,
JObj({
'default': JAny(none=False),
'name': str,
'type': str,
'value': JAny(none=False)
}))
self.assertStatus(200)
def test_set_setting(self):
self._put('/api/settings/rgw-api-access-key', {'value': 'foo'})
self.assertStatus(200)
value = self._get('/api/settings/rgw-api-access-key')['value']
self.assertEqual('foo', value)
def test_bulk_set(self):
self._put('/api/settings', {
'RGW_API_HOST': 'somehost',
'RGW_API_PORT': 7777,
})
self.assertStatus(200)
host = self._get('/api/settings/rgw-api-host')['value']
self.assertStatus(200)
self.assertEqual('somehost', host)
port = self._get('/api/settings/rgw-api-port')['value']
self.assertStatus(200)
self.assertEqual(7777, port)