Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit e368aba

Browse files
authored
Merge pull request #61 from datafuselabs/feat/add-txn-test
feat: add txn tests
2 parents 6598081 + 5b7d9df commit e368aba

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

databend_py/client.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,3 +271,21 @@ def upload_to_stage(self, stage_dir, file_name, data):
271271
:return:
272272
"""
273273
return self._uploader.upload_to_stage(stage_dir, file_name, data)
274+
275+
def begin(self):
276+
try:
277+
self.execute("BEGIN")
278+
except Exception as e:
279+
raise e
280+
281+
def commit(self):
282+
try:
283+
self.execute("COMMIT")
284+
except Exception as e:
285+
raise e
286+
287+
def rollback(self):
288+
try:
289+
self.execute("ROLLBACK")
290+
except Exception as e:
291+
raise e

tests/test_client.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,42 @@ def test_set_query_id_header(self):
207207
client.execute("select 2")
208208
self.assertNotEqual(execute_query_id1, client.connection.additional_headers["X-Databend-Query-Id"])
209209

210+
def test_commit(self):
211+
client = Client.from_url(self.databend_url)
212+
client.execute("create or replace table test_commit (x int)")
213+
client.begin()
214+
client.execute("insert into test_commit values (1)")
215+
_, data = client.execute("select * from test_commit")
216+
self.assertEqual(data, [(1,)])
217+
218+
client2 = Client.from_url(self.databend_url)
219+
client2.begin()
220+
client2.execute("insert into test_commit values (2)")
221+
_, data = client2.execute("select * from test_commit")
222+
self.assertEqual(data, [(2,)])
223+
224+
client.commit()
225+
_, data = client.execute("select * from test_commit")
226+
self.assertEqual(data, [(1,)])
227+
228+
def test_rollback(self):
229+
client = Client.from_url(self.databend_url)
230+
client.execute("create or replace table test_rollback (x int)")
231+
client.begin()
232+
client.execute("insert into test_rollback values (1)")
233+
_, data = client.execute("select * from test_rollback")
234+
self.assertEqual(data, [(1,)])
235+
236+
client2 = Client.from_url(self.databend_url)
237+
client2.begin()
238+
client2.execute("insert into test_rollback values (2)")
239+
_, data = client2.execute("select * from test_rollback")
240+
self.assertEqual(data, [(2,)])
241+
242+
client.rollback()
243+
_, data = client.execute("select * from test_rollback")
244+
self.assertEqual(data, [])
245+
210246

211247
if __name__ == '__main__':
212248
print("start test......")

0 commit comments

Comments
 (0)