def test_load_and_check_config_remote_config_local_type_raise(tmpdir): """Configuration without 'local' storage is rejected""" config = {"scheduler": {"cls": "remote"}} config_path = prepare_config_file(tmpdir, config) expected_error = ( "The scheduler backend can only be started with a 'local'" " configuration") with pytest.raises(ValueError, match=expected_error): load_and_check_config(config_path, type="local")
def test_load_and_check_config_local_incomplete_configuration(tmpdir): """Incomplete 'local' configuration should raise""" config = { "scheduler": { "cls": "postgresql", "something": "needed-for-test", } } config_path = prepare_config_file(tmpdir, config) expected_error = "Invalid configuration; missing 'db' config entry" with pytest.raises(KeyError, match=expected_error): load_and_check_config(config_path)
def test_load_and_check_config_local_config_fine(tmpdir, clazz): """Local configuration is fine""" config = { "scheduler": { "cls": clazz, "db": "db", } } config_path = prepare_config_file(tmpdir, config) cfg = load_and_check_config(config_path, type="postgresql") assert cfg == config
def test_load_and_check_config_remote_config_fine(tmpdir): """Remote configuration is fine""" config = {"scheduler": {"cls": "remote"}} config_path = prepare_config_file(tmpdir, config) cfg = load_and_check_config(config_path, type="any") assert cfg == config
def test_load_and_check_config_remote_config_local_type_raise(tmpdir): """Configuration without 'postgresql' storage is rejected""" config_path = prepare_config_file(tmpdir, {"scheduler": {"cls": "remote"}}) with pytest.raises(ValueError, match="'postgresql'"): load_and_check_config(config_path)
def test_load_and_check_config_wrong_configuration(tmpdir): """Wrong configuration raises""" config_path = prepare_config_file(tmpdir, "something: useless") with pytest.raises(KeyError, match="Missing '%scheduler' configuration"): load_and_check_config(config_path)
def test_load_and_check_config_inexistent_fil(): """Inexistent config filepath should raise""" config_path = "/some/inexistent/config.yml" expected_error = f"Configuration file {config_path} does not exist" with pytest.raises(FileNotFoundError, match=expected_error): load_and_check_config(config_path)
def test_load_and_check_config_no_configuration(scheduler_class): """Inexistent configuration files raises""" with pytest.raises(EnvironmentError, match="Configuration file must be defined"): load_and_check_config(scheduler_class)