Skip to content
This repository was archived by the owner on Mar 29, 2023. It is now read-only.

Commit dc474af

Browse files
feat: Raise better error message when incorrect dataset is supplied #113 (#115)
* feat: Raise better error message on dataset [#113] * chore: refactor tests to use pytests.raises matcher Co-authored-by: Tim Swast <swast@google.com>
1 parent 9dc5808 commit dc474af

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

ibis_bigquery/client.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,13 @@ def parse_project_and_dataset(project: str, dataset: str = "") -> Tuple[str, str
319319
None
320320
321321
"""
322-
if "." in dataset:
322+
if dataset.count(".") > 1:
323+
raise ValueError(
324+
"{} is not a BigQuery dataset. More info https://cloud.google.com/bigquery/docs/datasets-intro".format(
325+
dataset
326+
)
327+
)
328+
elif dataset.count(".") == 1:
323329
data_project, dataset = dataset.split(".")
324330
billing_project = project
325331
else:

tests/unit/test_client.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,11 @@
1919
def test_parse_project_and_dataset(project, dataset, expected):
2020
got = ibis_bigquery.client.parse_project_and_dataset(project, dataset)
2121
assert got == expected
22+
23+
24+
def test_parse_project_and_dataset_raises_error():
25+
expected_message = "data-project.my_dataset.table is not a BigQuery dataset"
26+
with pytest.raises(ValueError, match=expected_message):
27+
ibis_bigquery.client.parse_project_and_dataset(
28+
"my-project", "data-project.my_dataset.table"
29+
)

0 commit comments

Comments
 (0)