def test_define_from_path_dynamic(): c = Config() c._define_from_path([ 'foo value=bar validator=tests.test_config.double', ]) assert c.foo == 'barbar' c.foo = 'akk' assert c.foo == 'akkakk'
def test_define_from_path(): c = Config() c._define_from_path([ 'foo value=bar', 'bar value=10 validator=int', 'foobar', ]) assert c.foo == 'bar' assert c.bar == 10 assert c.foobar is None
def test_load_undefined(): c = Config() with pytest.raises(KeyError): c._load(['a=b'])
def test_get_fail(key): c = Config() with pytest.raises(KeyError): c._get(key)
def test_dot(define, key, expect): c = Config() c._define_from_path([define]) v = eval('c.{}'.format(key)) assert v == expect
def test_bracket(define, key, expect): c = Config() c._define_from_path([define]) access = ''.join("['{}']".format(k) for k in key.split('.')) access = 'c{}'.format(access) assert eval(access) == expect
def test_get(define, key, expect): c = Config([define]) assert c._get(key) == expect
def cfg(): return Config(['foo value=bar'])
def test_as_dict(value, expected): cfg = Config(value) assert cfg._as_dict == expected
def test_repr(value, expected): cfg = Config(value) assert str(cfg) == expected
def test_load_relaxed(): cfg = Config() cfg._load(['foo=123', 'foo=234', '#foo=345'], relaxed=True) assert cfg.foo == '234'