1+ from contextlib import suppress
12import unittest
23import time
34from data_diff import database as db
@@ -195,6 +196,12 @@ def _insert_to_table(conn, table, values):
195196 if not isinstance (conn , db .BigQuery ):
196197 conn .query ("COMMIT" , None )
197198
199+ def _drop_table_if_exists (conn , table ):
200+ with suppress (db .QueryError ):
201+ if isinstance (conn , db .Oracle ):
202+ conn .query (f"DROP TABLE { table } " , None )
203+ else :
204+ conn .query (f"DROP TABLE IF EXISTS { table } " , None )
198205
199206class TestDiffCrossDatabaseTables (unittest .TestCase ):
200207 @parameterized .expand (type_pairs , name_func = expand_params )
@@ -212,21 +219,13 @@ def test_types(self, source_db, target_db, source_type, target_type, type_catego
212219 src_table = src_conn .quote ("." .join (src_table_path ))
213220 dst_table = dst_conn .quote ("." .join (dst_table_path ))
214221
215- if isinstance (src_conn , db .Oracle ):
216- src_conn .query (f"DROP TABLE { src_table } " , None )
217- else :
218- src_conn .query (f"DROP TABLE IF EXISTS { src_table } " , None )
219-
222+ _drop_table_if_exists (src_conn , src_table )
220223 src_conn .query (f"CREATE TABLE { src_table } (id int, col { source_type } )" , None )
221224 _insert_to_table (src_conn , src_table , enumerate (sample_values , 1 ))
222225
223226 values_in_source = src_conn .query (f"SELECT id, col FROM { src_table } " , list )
224227
225- if isinstance (dst_conn , db .Oracle ):
226- dst_conn .query (f"DROP TABLE { dst_table } " , None )
227- else :
228- dst_conn .query (f"DROP TABLE IF EXISTS { dst_table } " , None )
229-
228+ _drop_table_if_exists (dst_conn , dst_table )
230229 dst_conn .query (f"CREATE TABLE { dst_table } (id int, col { target_type } )" , None )
231230 _insert_to_table (dst_conn , dst_table , values_in_source )
232231
@@ -251,3 +250,4 @@ def test_types(self, source_db, target_db, source_type, target_type, type_catego
251250
252251 duration = time .time () - start
253252 # print(f"source_db={source_db.__name__} target_db={target_db.__name__} source_type={source_type} target_type={target_type} duration={round(duration * 1000, 2)}ms")
253+
0 commit comments