22
33from testgen .common import date_service , read_template_sql_file
44from testgen .common .clean_sql import CleanSQL , ConcatColumnList , quote_identifiers
5- from testgen .common .database .database_service import replace_params
5+ from testgen .common .database .database_service import get_flavor_service , replace_params
66
77
88class TestParams (TypedDict ):
@@ -55,6 +55,7 @@ class CTestExecutionSQL:
5555 def __init__ (self , strProjectCode , strFlavor , strTestSuiteId , strTestSuite , minutes_offset = 0 ):
5656 self .project_code = strProjectCode
5757 self .flavor = strFlavor
58+ self .flavor_service = get_flavor_service (strFlavor )
5859 self .test_suite_id = strTestSuiteId
5960 self .test_suite = strTestSuite
6061 self .today = date_service .get_now_as_string_with_offset (minutes_offset )
@@ -101,13 +102,14 @@ def _get_query(
101102 "TEST_SUITE_ID" : self .test_suite_id ,
102103 "TEST_SUITE" : self .test_suite ,
103104 "SQL_FLAVOR" : self .flavor ,
105+ "QUOTE" : self .flavor_service .quote_character ,
104106 "TEST_RUN_ID" : self .test_run_id ,
105107 "INPUT_PARAMETERS" : self ._get_input_parameters (),
106108 "RUN_DATE" : self .run_date ,
107109 "EXCEPTION_MESSAGE" : self .exception_message ,
108110 "START_TIME" : self .today ,
109111 "PROCESS_ID" : self .process_id ,
110- "VARCHAR_TYPE" : "STRING" if self .flavor in ( "databricks" , "bigquery" ) else "VARCHAR" ,
112+ "VARCHAR_TYPE" : self .flavor_service . varchar_type ,
111113 "NOW_TIMESTAMP" : date_service .get_now_as_string_with_offset (self .minutes_offset ),
112114 ** {key .upper (): value or "" for key , value in self .test_params .items ()},
113115 }
@@ -128,12 +130,12 @@ def _get_query(
128130
129131 subset_condition = self .test_params ["subset_condition" ]
130132 params ["SUBSET_DISPLAY" ] = subset_condition .replace (
131- "'" , r"\'" if self .flavor == "bigquery" else "''"
133+ "'" , self .flavor_service . escaped_single_quote
132134 ) if subset_condition else ""
133135
134136 query = replace_params (query , params )
135137
136- if no_bind and self . flavor != "databricks" :
138+ if no_bind :
137139 # Adding escape character where ':' is referenced
138140 query = query .replace (":" , "\\ :" )
139141
0 commit comments