fuel-ccp/fuel_ccp/tests/test_config.py

40 lines
1.1 KiB
Python

import io
import jsonschema
import six
from fuel_ccp import config
from fuel_ccp.config import _yaml
from fuel_ccp.tests import base
def nested_dict_to_attrdict(d):
if isinstance(d, dict):
return _yaml.AttrDict({k: nested_dict_to_attrdict(v)
for k, v in six.iteritems(d)})
elif isinstance(d, list):
return list(map(nested_dict_to_attrdict, d))
else:
return d
class TestConfigSchema(base.TestCase):
def test_validate_config_schema(self):
schema = config.get_config_schema()
jsonschema.Draft4Validator.check_schema(schema)
def test_validate_default_oslo_conf(self):
config.validate_config(self.conf)
def test_validate_default_conf(self):
config.validate_config(config.get_config_defaults())
def test_dump_load_validate_default(self):
conf = config.get_config_defaults()
if str is bytes:
stream = io.BytesIO()
else:
stream = io.StringIO()
_yaml.dump(conf, stream)
new_conf = _yaml.load(stream.getvalue())
config.validate_config(new_conf)