Skip to content

Commit cf2bb50

Browse files
authored
Dune Error on failed Create Table (#147)
This is more consistent with the other routes as well.
1 parent bd4594e commit cf2bb50

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

dune_client/api/table.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ def create_table(
8181
"is_private": is_private,
8282
},
8383
)
84-
return CreateTableResult.from_dict(result_json)
84+
try:
85+
return CreateTableResult.from_dict(result_json)
86+
except KeyError as err:
87+
raise DuneError(result_json, "CreateTableResult", err) from err
8588

8689
def insert_table(
8790
self,
@@ -107,7 +110,7 @@ def insert_table(
107110
try:
108111
return InsertTableResult.from_dict(result_json)
109112
except KeyError as err:
110-
raise DuneError(result_json, "InsertTable", err) from err
113+
raise DuneError(result_json, "InsertTableResult", err) from err
111114

112115
def clear_data(self, namespace: str, table_name: str) -> ClearTableResult:
113116
"""
@@ -120,7 +123,7 @@ def clear_data(self, namespace: str, table_name: str) -> ClearTableResult:
120123
try:
121124
return ClearTableResult.from_dict(result_json)
122125
except KeyError as err:
123-
raise DuneError(result_json, "ClearData", err) from err
126+
raise DuneError(result_json, "ClearTableResult", err) from err
124127

125128
def delete_table(self, namespace: str, table_name: str) -> DeleteTableResult:
126129
"""
@@ -132,4 +135,4 @@ def delete_table(self, namespace: str, table_name: str) -> DeleteTableResult:
132135
try:
133136
return DeleteTableResult.from_dict(response_json)
134137
except KeyError as err:
135-
raise DuneError(response_json, "DeleteTable", err) from err
138+
raise DuneError(response_json, "DeleteTableResult", err) from err

tests/e2e/test_client.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ def test_create_table_success(self):
246246
# You will need to change the namespace to your own.
247247
client = DuneClient(self.valid_api_key)
248248

249-
namespace = "test"
249+
namespace = "bh2smith"
250250
table_name = "dataset_e2e_test"
251251

252252
self.assertEqual(
@@ -270,6 +270,23 @@ def test_create_table_success(self):
270270
),
271271
)
272272

273+
# @unittest.skip("Requires custom namespace and table_name input.")
274+
def test_create_table_error(self):
275+
client = DuneClient("Invalid Key")
276+
277+
namespace = "test"
278+
table_name = "table"
279+
with self.assertRaises(DuneError) as err:
280+
client.create_table(
281+
namespace=namespace,
282+
table_name=table_name,
283+
description="",
284+
schema=[
285+
{"name": "ALL_CAPS", "type": "timestamp"},
286+
],
287+
is_private=False,
288+
)
289+
273290
@unittest.skip("Requires custom namespace and table_name input.")
274291
def test_insert_table_csv_success(self):
275292
# Make sure the table already exists and csv matches table schema.

0 commit comments

Comments
 (0)