예제 #1
0
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")
예제 #2
0
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)
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
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)