Files
deb-python-dcos/tests/test_config.py
José Armando García Sancio 59ace056a8 DCOS-104 Basic config functionality
1. Add ability to create mutable and immutable TOML configuration. The
DCOS config cli should be the only one using the mutable version
2. Add ability to list of all the properties in the TOML configuration.

Test: tox
2015-01-24 12:07:16 +00:00

112 lines
2.5 KiB
Python

import pytest
from dcos.api import config
@pytest.fixture
def conf():
return config.Toml(_conf())
def test_get_property(conf):
conf['dcos.mesos_uri'] == 'zk://localhost/mesos'
def test_get_partial_property(conf):
conf['dcos'] == config.Toml({
'user': 'group',
'mesos_uri': 'zk://localhost/mesos'
})
def test_iterator(conf):
assert (sorted(list(conf.property_items())) == [
('dcos.mesos_uri', 'zk://localhost/mesos'),
('dcos.user', 'principal'),
('package.repo_uri', 'git://localhost/mesosphere/package-repo.git'),
])
@pytest.fixture
def mutable_conf():
return config.MutableToml(_conf())
def test_mutable_unset_property(mutable_conf):
expect = config.MutableToml({
'dcos': {
'user': 'principal',
'mesos_uri': 'zk://localhost/mesos'
},
'package': {}
})
del mutable_conf['package.repo_uri']
assert mutable_conf == expect
def test_mutable_set_property(mutable_conf):
expect = config.MutableToml({
'dcos': {
'user': 'group',
'mesos_uri': 'zk://localhost/mesos'
},
'package': {
'repo_uri': 'git://localhost/mesosphere/package-repo.git'
}
})
mutable_conf['dcos.user'] = 'group'
assert mutable_conf == expect
def test_mutable_test_deep_property(mutable_conf):
expect = config.MutableToml({
'dcos': {
'user': 'principal',
'mesos_uri': 'zk://localhost/mesos'
},
'package': {
'repo_uri': 'git://localhost/mesosphere/package-repo.git'
},
'new': {
'key': 42
},
})
mutable_conf['new.key'] = 42
assert mutable_conf == expect
def test_mutable_get_property(mutable_conf):
mutable_conf['dcos.mesos_uri'] == 'zk://localhost/mesos'
def test_mutable_get_partial_property(mutable_conf):
mutable_conf['dcos'] == config.MutableToml({
'user': 'group',
'mesos_uri': 'zk://localhost/mesos'
})
def test_mutable_iterator(mutable_conf):
assert (sorted(list(mutable_conf.property_items())) == [
('dcos.mesos_uri', 'zk://localhost/mesos'),
('dcos.user', 'principal'),
('package.repo_uri', 'git://localhost/mesosphere/package-repo.git'),
])
def _conf():
return {
'dcos': {
'user': 'principal',
'mesos_uri': 'zk://localhost/mesos'
},
'package': {
'repo_uri': 'git://localhost/mesosphere/package-repo.git'
}
}