Пример #1
0
def test_properties():
    config = lazyConfig.from_path('tests/config_default', ['tests/config'])
    count = 0
    for _ in config:
        count += 1
    
    assert count == len(config), "length is broken"

    config_override_lazy = lazyConfig.from_path('tests/config_default', ['tests/config'], laziness=LazyMode.LAZY)
    lazy_dict = config_override_lazy.as_dict()
    assert config == lazy_dict, 'laziness breaks'
Пример #2
0
def test_override():
    print('test_override')
    cfg = lazyConfig.from_path('tests/config_default', ['tests/config'])

    # list overridden 
    assert cfg.list[0] == 'haha'
    with pytest.raises(IndexError):
        print(cfg.list[1])
    
    assert cfg.app.primary_color == 'pink'
    assert cfg.version == 42
    assert cfg.database.configuration.indices.index1 == 'overridden index'
    assert cfg.database.connection.hosts[0].host == "myElasticsearchServer" 
    
    #not overridden
    assert cfg.author == 'ME!'
    assert cfg.database.configuration.indices.index2 == 'stayIndex'

    cfg.add_override({'author': 'not ME!', 'version': None})
    
    assert cfg.author == 'not ME!'
    assert cfg.version == 42

    cfg.add_override({'version': None}, none_can_override=True)

    assert cfg.version == None

    cfg.force_load()

    assert cfg.version == None

    cfg.add_override({'a_key_which_is_not_in_the_default':'may not be overwritten'})

    with pytest.raises(AttributeError):
        cfg.a_key_which_is_not_in_the_default
Пример #3
0
def test_lists():
    config = lazyConfig.from_path('tests/config_default')
    assert config.list[-1] == config.list[len(config.list)-1], 'negative indices broken'
    assert config.list[1:5] == config.list[1:2], 'oversized ranges broken'
    assert config.list[0,1] == config.list, 'tuples broken'

    prim_list = config.list.as_list()
    assert config.as_primitive()['list'] == prim_list
Пример #4
0
def test_equality():
    l_std = [1,2,3,'test', False]
    l_cfg = lazyConfig.from_primitive(l_std)

    assert l_std == l_cfg, "list == ConfigList(list) equality is broken"
    assert l_cfg == l_std, "ConfigList(list) == list equality is broken"

    assert lazyConfig.from_primitive([]) == [], 'empty list equality is broken'

    with open("tests/config/database/__config__.yml", 'r') as f:
        std_dict_connection = yaml.unsafe_load(f)['connection']
    
    config_connection = lazyConfig.from_path('tests/config').database.connection

    assert std_dict_connection == config_connection, 'Config equality is broken'

    config_override = lazyConfig.from_path('tests/config_default', ['tests/config'])
    assert config_override.database.connection == config_connection, 'Override is broken'

    d = config_override.as_dict()
    assert d == config_override, 'as_dict is broken'
    
    json.dumps(d)
Пример #5
0
from discord.ext import commands

import lazyConfig
from pathlib import Path

cfg_path = Path("config").resolve()
cfg = lazyConfig.from_path(
    config=cfg_path,
)


def check_owner(ctx: commands.Context):
    return str(ctx.message.author.id) in cfg.bot.get("developers", [])
Пример #6
0
def test_toml():
    config = lazyConfig.from_path('tests/config_toml')
    with open('tests/config_toml/__config__.toml', 'r') as f:
        assert config == toml.loads(f.read())