Exemple #1
0
def test_all_values(url_with_everything, param, value, default):
    url_with_this_one = make_url(
        f"bigquery://some-project/some-dataset"
        f"?{param}={url_with_everything.query[param]}")

    for url in url_with_everything, url_with_this_one:
        job_config = parse_url(url)[5]
        config_value = getattr(job_config, param)
        if callable(value):
            assert value(config_value)
        else:
            assert config_value == value

    url_with_nothing = make_url("bigquery://some-project/some-dataset")
    job_config = parse_url(url_with_nothing)[5]
    assert getattr(job_config, param) == default
Exemple #2
0
def test_basic(url_with_everything):
    (
        project_id,
        location,
        dataset_id,
        arraysize,
        credentials_path,
        job_config,
        list_tables_page_size,
    ) = parse_url(url_with_everything)

    assert project_id == "some-project"
    assert location == "some-location"
    assert dataset_id == "some-dataset"
    assert arraysize == 1000
    assert list_tables_page_size == 5000
    assert credentials_path == "/some/path/to.json"
    assert isinstance(job_config, QueryJobConfig)
Exemple #3
0
def test_only_dataset():
    url = parse_url(make_url("bigquery:///some-dataset"))
    (
        project_id,
        location,
        dataset_id,
        arraysize,
        credentials_path,
        job_config,
        list_tables_page_size,
    ) = url

    assert project_id is None
    assert location is None
    assert dataset_id == "some-dataset"
    assert arraysize is None
    assert credentials_path is None
    assert list_tables_page_size is None
    assert isinstance(job_config, QueryJobConfig)
Exemple #4
0
def test_empty_with_non_config():
    url = parse_url(
        make_url(
            "bigquery:///?location=some-location&arraysize=1000&credentials_path=/some/path/to.json"
        ))
    (
        project_id,
        location,
        dataset_id,
        arraysize,
        credentials_path,
        job_config,
        list_tables_page_size,
    ) = url

    assert project_id is None
    assert location == "some-location"
    assert dataset_id is None
    assert arraysize == 1000
    assert credentials_path == "/some/path/to.json"
    assert job_config is None
    assert list_tables_page_size is None
Exemple #5
0
def test_not_implemented(not_implemented_arg):
    url = make_url("bigquery://some-project/some-dataset/?" +
                   not_implemented_arg + "=" + "whatever")
    with pytest.raises(NotImplementedError):
        parse_url(url)
Exemple #6
0
def test_disallowed(disallowed_arg):
    url = make_url("bigquery://some-project/some-dataset/?" + disallowed_arg +
                   "=" + "whatever")
    with pytest.raises(ValueError):
        parse_url(url)
Exemple #7
0
def test_empty_url():
    for value in parse_url(make_url("bigquery://")):
        assert value is None

    for value in parse_url(make_url("bigquery:///")):
        assert value is None
Exemple #8
0
def test_bad_values(param, value):
    url = make_url("bigquery:///?" + param + "=" + value)
    with pytest.raises(ValueError):
        parse_url(url)