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
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
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)
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)
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)