def test_section_knows_its_alias():
    config = Config()
    config.uploads = Config({'enabled': True})
    assert config.uploads.alias == 'uploads'

    config.uploads.db = Config({'connection': {'user': '******'}})
    assert config.uploads.db.alias == 'db'
    assert config.uploads.db.connection.alias == 'connection'
def test__getitem__handles_paths_to_sections_and_items_and_so_does__contains__(
):
    config = Config()
    with pytest.raises(NotFound):
        assert not config['uploads', 'enabled']
    assert ('uploads', ) not in config
    assert ('uploads', 'enabled') not in config

    config.uploads = Config({'enabled': True, 'db': {'user': '******'}})
    assert config['uploads', 'enabled'] is config.uploads.enabled
    assert config['uploads', 'db'] is config.uploads.db

    assert 'uploads' in config
    assert ('uploads', ) in config
    assert ('uploads', 'enabled') in config
    assert ('uploads', 'db') in config
    assert ('uploads', 'db', 'user') in config

    assert config.uploads.db.user.value == 'root'

    config['uploads', 'db', 'user'].set('admin')
    assert config.uploads.db.user.value == 'admin'