Exemple #1
0
def test_load_sources_setting(config, tmpdir):
    json1 = tmpdir.join('config1.json').strpath
    json2 = tmpdir.join('config2.json').strpath
    json3 = tmpdir.join('config3.json').strpath

    config.uploads.db.settings.load_sources.append(json1)
    config.settings.load_sources.append(json2)

    # None of the files exist, shouldn't fail
    config.load()

    assert config.dump_values(with_defaults=False) == {}

    with open(json1, 'w') as f:
        json.dump({'user': '******', 'password': '******'}, f)

    config.load()

    assert config.dump_values(with_defaults=False) == {
        'uploads': {'db': {'user': '******', 'password': '******'}}
    }

    assert config.uploads.enabled.value is False
    assert config.uploads.db.user.value == 'Administrator'

    with open(json2, 'w') as f:
        json.dump({'uploads': {'db': {'user': '******'}, 'enabled': True}}, f)

    config.load()

    assert config.uploads.enabled.value is True
    assert config.uploads.db.user.value == 'admin'  # should override "Administrator"
    assert config.uploads.db.password.value == 'SECRET'

    with open(json3, 'w') as f:
        json.dump({'main': {'greeting': 'Hey!'}}, f)

    wrapper = Config({
        'main': config
    })
    wrapper.settings.load_sources.append(json3)

    wrapper.load()

    assert wrapper.main.uploads.db.user.value == 'admin'
    assert wrapper.main.uploads.db.password.value == 'SECRET'
    assert wrapper.main.greeting.value == 'Hey!'
Exemple #2
0
def test_config_with_app_name(tmpdir):
    config_path = tmpdir.mkdir('test_config_with_app_name').join(
        'config.json').strpath
    with open(config_path, 'w') as f:
        json.dump({'uploads': {'enabled': True}}, f)

    schema = {
        'uploads': {
            'enabled': False,
            'threads': 1,
            'db': {
                'user': '******',
                'password': '******',
            }
        }
    }

    # Auto-load enabled
    config1 = Config(schema,
                     app_name='test_config_with_app_name',
                     user_config_root=tmpdir.strpath,
                     auto_load=True)

    assert config1.uploads.threads.value == 1

    assert config1.uploads.enabled.value is True
    assert not config1.uploads.enabled.is_default

    # Auto-load not enabled by default
    config2 = Config(schema,
                     app_name='test_config_with_app_name',
                     user_config_root=tmpdir.strpath)
    assert config2.uploads.enabled.value is False

    config2.load()
    assert config2.uploads.enabled.value is True