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)
def test_all_values(url_with_everything, param, value, default): url_with_this_one = make_url("bigquery://some-project/some-dataset") url_with_this_one.query[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
def test_all_values(url_with_everything, param, value): job_config = parse_url(url_with_everything)[5] config_value = getattr(job_config, param) if callable(value): assert value(config_value) else: assert config_value == value
def test_basic(url_with_everything): project_id, location, dataset_id, arraysize, credentials_path, job_config = parse_url(url_with_everything) assert project_id == 'some-project' assert location == 'some-location' assert dataset_id == 'some-dataset' assert arraysize == 1000 assert credentials_path == '/some/path/to.json' assert isinstance(job_config, QueryJobConfig)
def test_only_dataset(): url = parse_url(make_url('bigquery:///some-dataset')) location, dataset_id, arraysize, credentials_path, job_config = url assert location is None assert dataset_id == 'some-dataset' assert arraysize is None assert credentials_path is None assert isinstance(job_config, QueryJobConfig)
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 = 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
def test_disallowed(disallowed_arg): url = make_url( "bigquery://some-project/some-dataset/?" + disallowed_arg + "=" + "whatever" ) with pytest.raises(ValueError): parse_url(url)
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
def test_bad_values(param, value): url = make_url("bigquery:///?" + param + "=" + value) with pytest.raises(ValueError): parse_url(url)
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)
def test_disallowed(disallowed_arg): url = make_url('bigquery://some-project/some-dataset/?' + disallowed_arg + '=' + 'whatever') with pytest.raises(ValueError): parse_url(url)
def test_bad_values(param, value): url = make_url('bigquery:///?' + param + '=' + value) with pytest.raises(ValueError): parse_url(url)