def test_convert_dttm(dttm: datetime) -> None: """ Test that date objects are converted correctly. """ from superset.db_engine_specs.athena import AthenaEngineSpec assert AthenaEngineSpec.convert_dttm("DATE", dttm) == "DATE '2019-01-02'" assert (AthenaEngineSpec.convert_dttm( "TIMESTAMP", dttm) == "TIMESTAMP '2019-01-02 03:04:05.678'")
def test_convert_dttm(self): dttm = self.get_dttm() self.assertEqual( AthenaEngineSpec.convert_dttm("DATE", dttm), "from_iso8601_date('2019-01-02')", ) self.assertEqual( AthenaEngineSpec.convert_dttm("TIMESTAMP", dttm), "from_iso8601_timestamp('2019-01-02T03:04:05.678900')", )
def test_convert_dttm(app_context: AppContext, dttm: datetime) -> None: """ Test that date objects are converted correctly. """ from superset.db_engine_specs.athena import AthenaEngineSpec assert (AthenaEngineSpec.convert_dttm( "DATE", dttm) == "from_iso8601_date('2019-01-02')") assert (AthenaEngineSpec.convert_dttm( "TIMESTAMP", dttm) == "from_iso8601_timestamp('2019-01-02T03:04:05.678900')")
def test_extract_errors() -> None: """ Test that custom error messages are extracted correctly. """ from superset.db_engine_specs.athena import AthenaEngineSpec msg = ": mismatched input 'fromm'. Expecting: " result = AthenaEngineSpec.extract_errors(Exception(msg)) assert result == [ SupersetError( message= 'Please check your query for syntax errors at or near "fromm". Then, try running your query again.', error_type=SupersetErrorType.SYNTAX_ERROR, level=ErrorLevel.ERROR, extra={ "engine_name": "Amazon Athena", "issue_codes": [{ "code": 1030, "message": "Issue 1030 - The query has a syntax error.", }], }, ) ]
def test_get_text_clause_with_colon() -> None: """ Make sure text clauses don't escape the colon character """ from superset.db_engine_specs.athena import AthenaEngineSpec query = ("SELECT foo FROM tbl WHERE " "abc >= TIMESTAMP '2021-11-26T00\:00\:00.000000'") text_clause = AthenaEngineSpec.get_text_clause(query) assert text_clause.text == query
def test_get_text_clause_with_colon(app_context: AppContext) -> None: """ Make sure text clauses don't escape the colon character """ from superset.db_engine_specs.athena import AthenaEngineSpec query = ("SELECT foo FROM tbl WHERE " "abc >= from_iso8601_timestamp('2021-11-26T00\:00\:00.000000')") text_clause = AthenaEngineSpec.get_text_clause(query) assert text_clause.text == query