def test_config_update_none():
    cf0 = config_defaults.copy()
    for k in cf0.keys():
        cf0[k] = None
    cf0['loglevel'] = 'DEBUG'
    obj = config_update(cf0)
    with pytest.raises(AttributeError):
        cfg = obj.config
Exemple #2
0
def test_config_save():
    fd = tempfile.TemporaryDirectory()
    cf0 = {"k": "v", "output_dir": fd.name}
    cf = config_update(cf0)
    config_save(cf, 'config.json', indent=None)
    with open(os.path.join(fd.name, 'config.json')) as ff:
        line = ff.readline()
    assert line.replace(
        " ", "") == "{" + '"k":"v","output_dir":"{}"'.format(fd.name) + "}"
def test_auto_dir():
    cf0 = config_defaults.copy()
    config = config_update(cf0)
    config.logdir = '.'
    auto_dir(config)
    assert config.logdir == '.'
    assert 'drp1d_spectra_' in config.output_dir
    config.output_dir = 'test'
    config.logdir = '@AUTO@'
    auto_dir(config)
    assert config.output_dir == 'test'
    assert config.logdir == 'test/log'
    config.output_dir = '@AUTO@'
    config.logdir = '@AUTO@'
    auto_dir(config)
    assert 'drp1d_spectra_' in config.output_dir
Exemple #4
0
def main():
    """Pre-Process entry point

    Return
    ------
    int
        Exit code of the main method
    """
    parser = define_specific_program_options()
    define_global_program_options(parser)
    args = parser.parse_args()
    config = config_update(config_defaults,
                           args=vars(args),
                           install_conf_path=get_conf_path("pre_process.json"))
    config_save(config, "pre_process_config.json")
    return main_method(config)
Exemple #5
0
def main():
    """Pipeline entry point

    Return
    ------
    int
        Exit code of the main method
    """
    parser = define_specific_program_options()
    define_global_program_options(parser)
    args = parser.parse_args()
    config = config_update(
        config_defaults,
        args=vars(args),
        install_conf_path=get_conf_path("drp_1dpipe.json"),
        environ_var='DRP_1DPIPE_STARTUP'
        )
    auto_dir(config)
    config_save(config, "config.json")
    return main_method(config)
Exemple #6
0
def test_config_update():
    cf0 = {
        "config": "",
        "a1": "v1.0",
        "a2": "v2.0",
        "a3": "v3.0",
        "a4": "v4.0"
    }
    # Test on install conf path
    cf1 = '{"a1":"v1.1"}'
    cfl1 = tempfile.NamedTemporaryFile()
    with open(cfl1.name, 'w') as ff:
        ff.write(cf1)
    obj = config_update(cf0, install_conf_path=cfl1.name)
    assert obj.a1 == "v1.1"
    assert obj.a2 == "v2.0"
    assert obj.a3 == "v3.0"
    assert obj.a4 == "v4.0"
    # Test on args
    args = {"a2": "v2.1"}
    obj = config_update(cf0, args=args)
    assert obj.a1 == "v1.0"
    assert obj.a2 == "v2.1"
    assert obj.a3 == "v3.0"
    assert obj.a4 == "v4.0"
    # Test on config args
    cf_args = '{"a3":"v3.1"}'
    cfl2 = tempfile.NamedTemporaryFile()
    with open(cfl2.name, 'w') as ff:
        ff.write(cf_args)
    argsc = {"config": cfl2.name}
    obj = config_update(cf0, args=argsc)
    assert obj.a1 == "v1.0"
    assert obj.a2 == "v2.0"
    assert obj.a3 == "v3.1"
    assert obj.a4 == "v4.0"
    # Test on environment variable
    json_str = '{"a4":"v4.1"}'
    cfl3 = tempfile.NamedTemporaryFile()
    with open(cfl3.name, 'w') as ff:
        ff.write(json_str)
    os.environ['TEST_STARTUP'] = cfl3.name
    obj = config_update(cf0, environ_var='TEST_STARTUP')
    assert obj.a1 == "v1.0"
    assert obj.a2 == "v2.0"
    assert obj.a3 == "v3.0"
    assert obj.a4 == "v4.1"
    # Whole test
    args.update(argsc)
    obj = config_update(cf0,
                        args=args,
                        install_conf_path=cfl1.name,
                        environ_var='TEST_STARTUP')
    assert obj.a1 == "v1.1"
    assert obj.a2 == "v2.1"
    assert obj.a3 == "v3.1"
    assert obj.a4 == "v4.1"
    del os.environ['TEST_STARTUP']
    # Test on log level
    cf0 = {"config": "", "loglevel": "no"}
    with pytest.raises(KeyError):
        obj = config_update(cf0)