Exemplo n.º 1
0
def test_parse_args_with_mutually_exclusive_args_commit_ref(env, capsys):
    parser = create_parser()
    with pytest.raises(SystemExit):
        parser.parse_args(["sql", "--remote-reset", "--commit-ref", "abc123"])
    captured = capsys.readouterr()
    assert ("argument --commit-ref: not allowed with argument --remote-reset"
            in captured.err)
Exemplo n.º 2
0
def test_parse_args_with_no_arguments_supplied(clean_env, capsys):
    parser = create_parser()
    with pytest.raises(SystemExit):
        parser.parse_args(["connect"])
    captured = capsys.readouterr()
    assert (
        "the following arguments are required: --base-url, --client-id, --client-secret"
        in captured.err)
Exemplo n.º 3
0
def test_config_override_argparse_default(mock_parse_config, clean_env):
    parser = create_parser()
    mock_parse_config.return_value = {
        "base_url": "BASE_URL_CONFIG",
        "client_id": "CLIENT_ID_CONFIG",
        "client_secret": "CLIENT_SECRET_CONFIG",
        "port": 8080,
    }
    args = parser.parse_args(["connect", "--config-file", "config.yml"])
    assert args.port == 8080
Exemplo n.º 4
0
def test_parse_args_with_incomplete_config_file(mock_parse_config, clean_env, capsys):
    parser = create_parser()
    mock_parse_config.return_value = {
        "base_url": "BASE_URL_CONFIG",
        "client_id": "CLIENT_ID_CONFIG",
    }
    with pytest.raises(SystemExit):
        parser.parse_args(["connect", "--config-file", "config.yml"])
    captured = capsys.readouterr()
    assert "the following arguments are required: --client-secret" in captured.err
Exemplo n.º 5
0
def test_bad_config_file_parameter(mock_parse_config, clean_env):
    parser = create_parser()
    mock_parse_config.return_value = {
        "base_url": "BASE_URL_CONFIG",
        "api_key": "CLIENT_ID_CONFIG",
        "port": 8080,
    }
    with pytest.raises(SpectaclesException,
                       match="Invalid configuration file parameter"):
        parser.parse_args(["connect", "--config-file", "config.yml"])
Exemplo n.º 6
0
def test_parse_args_with_only_config_file(mock_parse_config, clean_env):
    parser = create_parser()
    mock_parse_config.return_value = {
        "base_url": "BASE_URL_CONFIG",
        "client_id": "CLIENT_ID_CONFIG",
        "client_secret": "CLIENT_SECRET_CONFIG",
    }
    args = parser.parse_args(["connect", "--config-file", "config.yml"])
    assert args.base_url == "BASE_URL_CONFIG"
    assert args.client_id == "CLIENT_ID_CONFIG"
    assert args.client_secret == "CLIENT_SECRET_CONFIG"
Exemplo n.º 7
0
def test_arg_precedence(mock_parse_config, limited_env):
    parser = create_parser()
    # Precedence: command line > environment variables > config files
    mock_parse_config.return_value = {
        "base_url": "BASE_URL_CONFIG",
        "client_id": "CLIENT_ID_CONFIG",
        "client_secret": "CLIENT_SECRET_CONFIG",
    }
    args = parser.parse_args(
        ["connect", "--config-file", "config.yml", "--base-url", "BASE_URL_CLI"]
    )
    assert args.base_url == "BASE_URL_CLI"
    assert args.client_id == "CLIENT_ID_ENV_VAR"
    assert args.client_secret == "CLIENT_SECRET_CONFIG"
Exemplo n.º 8
0
def test_parse_args_with_only_cli(clean_env):
    parser = create_parser()
    args = parser.parse_args([
        "connect",
        "--base-url",
        "BASE_URL_CLI",
        "--client-id",
        "CLIENT_ID_CLI",
        "--client-secret",
        "CLIENT_SECRET_CLI",
    ])
    assert args.base_url == "BASE_URL_CLI"
    assert args.client_id == "CLIENT_ID_CLI"
    assert args.client_secret == "CLIENT_SECRET_CLI"
Exemplo n.º 9
0
def test_parse_remote_reset_with_assert(env):
    parser = create_parser()
    args = parser.parse_args(["assert", "--remote-reset"])
    assert args.remote_reset
Exemplo n.º 10
0
def test_env_var_override_argparse_default(env):
    parser = create_parser()
    args = parser.parse_args(["connect"])
    assert args.port == 8080
Exemplo n.º 11
0
def test_parse_args_with_incomplete_env_vars(limited_env, capsys):
    parser = create_parser()
    with pytest.raises(SystemExit):
        parser.parse_args(["connect"])
    captured = capsys.readouterr()
    assert "the following arguments are required: --client-secret" in captured.err
Exemplo n.º 12
0
def test_parse_args_with_only_env_vars(env):
    parser = create_parser()
    args = parser.parse_args(["connect"])
    assert args.base_url == "BASE_URL_ENV_VAR"
    assert args.client_id == "CLIENT_ID_ENV_VAR"
    assert args.client_secret == "CLIENT_SECRET_ENV_VAR"
Exemplo n.º 13
0
def parser():
    parser = create_parser()
    return parser