Exemplo n.º 1
0
def test_program_config_load_config_reload():
    pack1 = __import__("pack1")
    reload(pack1)
    program_config = parse_modules(pack1)
    cfg = Config.from_string("""\
[pack1]
    [mod0]
        opt1 = 20
    beta = 55
""")
    program_config.configure(cfg)
    config = program_config.config
    program_config2 = parse_modules(pack1)
    config2 = program_config2.config
    assert config is not config2
    assert config == config2
Exemplo n.º 2
0
def test_program_config_unique_module_config():
    pack2 = __import__("pack2")
    reload(pack2)
    program_config = parse_modules(pack2.mod1, fqname="packX", override_function=override_merge)
    schema = program_config.schema
    assert 'opt10' in schema['packX']['mod1']
    assert 'opt11' in schema['packX']['mod1']
Exemplo n.º 3
0
def test_program_config_root():
    pack10_comp1 = __import__("pack10.comp1", fromlist=('pack10', ))
    reload(pack10_comp1)
    print(pack10_comp1)
    program_config = parse_modules(pack10_comp1)
    assert 'comp1' in program_config.schema
    assert 'comp0' not in program_config.schema
    program_config.schema.dump()
Exemplo n.º 4
0
def test_program_config_PATH_noconfig():
    pack9 = __import__("pack9")
    reload(pack9)
    program_config = parse_modules(pack9)
    dirname = os.getcwd()
    basename = ""
    assert pack9.get_url() == "sqlite://{}/.{}.db".format(dirname, basename)
    assert pack9.comp0.get_fn0() == "{}/fn0.config".format(dirname)
    assert pack9.comp0.get_fn1() == "_fn1.config"
Exemplo n.º 5
0
def test_program_config_duplication_merge():
    pack2 = __import__("pack2")
    reload(pack2)
    program_config = parse_modules(pack2.mod1, override_function=override_merge)
    assert pack2.mod1.CONF_A.schema == pack2.mod1.CONF_B.schema
    assert 'opt10' in pack2.mod1.CONF_A.schema
    assert 'opt11' in pack2.mod1.CONF_A.schema
    assert pack2.mod1.get_opt10() == 3
    assert pack2.mod1.get_opt11() == 1.5
Exemplo n.º 6
0
def test_program_config_module_isolation():
    pack4 = __import__("pack4")
    reload(pack4)
    program_config = parse_modules(pack4)
    schema = program_config.schema
    schema.dump()
    assert 'pack4' in schema
    assert 'comp1' in schema["pack4"]
    assert 'opt10' in schema["pack4"]["comp1"]
    assert 'comp2' in schema["pack4"]
    assert 'opt20' in schema["pack4"]["comp2"]
Exemplo n.º 7
0
def test_program_config_load_config_noconfigure():
    pack1 = __import__("pack1")
    reload(pack1)
    program_config = parse_modules(pack1)
    config = program_config.config
    config.dump()
    config.defaults.dump()
    assert config["pack1"]["alpha"] == True
    assert config["pack1"]["beta"] == 5
    assert config["pack1"]["mod0"]["opt0"] == "abracadabra"
    assert config["pack1"]["mod0"]["opt1"] == 10
    assert config["pack1"]["mod1"]["opt0"] == 3.5
Exemplo n.º 8
0
def test_program_config_PATH_config_argparser(tmpdir):
    pack9 = __import__("pack9")
    reload(pack9)
    program_config = parse_modules(pack9)
    filename = tmpdir.join("PATH.config").strpath
    with open(filename, "w") as f_out:
        f_out.write("""\
""")
    config, validation_result, namespace = program_config.parse_args(["--config", filename])
    dirname, basename = os.path.split(filename)
    assert pack9.get_url() == "sqlite://{}/.{}.db".format(dirname, basename)
    assert pack9.comp0.get_fn0() == "{}/fn0.config".format(dirname)
    assert pack9.comp0.get_fn1() == "{}_fn1.config".format(filename)
Exemplo n.º 9
0
def test_program_config_unique_module_config():
    pack2 = __import__("pack2")
    reload(pack2)
    program_config = parse_modules(pack2, override_function=override_merge)
    program_config.schema.dump()
    schema = program_config.schema
    assert 'opt0' in schema['pack2']
    assert 'opt00' in schema['pack2']['mod0']
    assert 'opt00' not in schema['pack2']
    assert 'opt10' in schema['pack2']['mod1']
    assert 'opt10' not in schema['pack2']
    assert 'opt11' in schema['pack2']['mod1']
    assert 'opt11' not in schema['pack2']
Exemplo n.º 10
0
def test_program_config_load_schema():
    pack1 = __import__("pack1")
    reload(pack1)
    program_config = parse_modules(pack1)
    schema = program_config.schema
    schema.dump()
    assert 'pack1' in schema
    assert 'alpha' in schema["pack1"]
    assert 'beta' in schema["pack1"]
    assert 'mod0' in schema["pack1"]
    assert 'opt0' in schema["pack1"]["mod0"]
    assert 'opt1' in schema["pack1"]["mod0"]
    assert 'mod1' in schema["pack1"]
    assert 'opt0' in schema["pack1"]["mod1"]
Exemplo n.º 11
0
def test_program_config_load_config_configure():
    pack1 = __import__("pack1")
    reload(pack1)
    program_config = parse_modules(pack1)
    cfg = Config.from_string("""\
[pack1]
    [mod0]
        opt1 = 20
    beta = 55
""")
    program_config.configure(cfg)
    config = program_config.config
    config.dump()
    assert config["pack1"]["alpha"] == True
    assert config["pack1"]["beta"] == 55
    assert config["pack1"]["mod0"]["opt0"] == "abracadabra"
    assert config["pack1"]["mod0"]["opt1"] == 20
Exemplo n.º 12
0
def test_program_config_PATH_config(tmpdir):
    pack9 = __import__("pack9")
    reload(pack9)
    program_config = parse_modules(pack9)
    filename = tmpdir.join("PATH.config").strpath
    with open(filename, "w") as f_out:
        f_out.write("""\
""")
    config = Config.from_file(filename, schema=program_config.schema)
    # print(config.as_dict(defaults=True, evaluate=False))
    # config.dump(evaluate=False, defaults=True)
    # print(config.as_dict(defaults=True, evaluate=True))
    # config.dump(evaluate=True, defaults=True)
    program_config.configure(config)
    dirname, basename = os.path.split(filename)
    assert pack9.get_url() == "sqlite://{}/.{}.db".format(dirname, basename)
    assert pack9.comp0.get_fn0() == "{}/fn0.config".format(dirname)
    assert pack9.comp0.get_fn1() == "{}_fn1.config".format(filename)
Exemplo n.º 13
0
def test_program_config_ROOT(tmpdir):
    pack1 = __import__("pack1", fromlist=('pack10', ))
    reload(pack1)
    print(pack1)
    program_config = parse_modules(pack1)
    cfile = tmpdir.join("pack1.config").strpath
    with open(cfile, "w") as f:
        f.write("""\
[pack1]
    alpha = True
    beta = 5
    [mod0]
        opt0 = 'abracadabra'
        opt1 = ROOT["pack1"]["beta"] * 100
    [mod1]
        opt0 = 3.5
""")
    program_config.parse_args(["--config", cfile])
    assert pack1.mod0.get_opt1() == 500
Exemplo n.º 14
0
def test_program_config_callback():
    pack8 = __import__("pack8")
    reload(pack8)
    program_config = parse_modules(pack8)
    assert pack8.get_url() == "sqlite://"
    assert pack8.get_db() is not None
    assert pack8.get_db().url == pack8.get_url()
    assert pack8.comp0.get_size() == 0
    assert pack8.comp0.get_lst() is not None
    assert len(pack8.comp0.get_lst()) == pack8.comp0.get_size()
    cfg = Config.from_string("""\
[pack8]
    url = "memory://"
    [comp0]
        size = 10
""")
    program_config.configure(cfg)
    assert pack8.get_url() == "memory://"
    assert pack8.get_db() is not None
    assert pack8.get_db().url == pack8.get_url()
    assert pack8.comp0.get_size() == 10
    assert pack8.comp0.get_lst() is not None
    assert len(pack8.comp0.get_lst()) == pack8.comp0.get_size()
Exemplo n.º 15
0
def test_program_config_parse_error():
    with pytest.raises(TypeError):
        program_config = parse_modules(45)
Exemplo n.º 16
0
def test_program_config_duplication_error():
    pack2 = __import__("pack2")
    reload(pack2)
    with pytest.raises(ModuleConfigDuplicationError) as exc_info:
        program_config = parse_modules(pack2.mod1, override_function=override_error)