def test_where_clause_n_prefix(app_context: AppContext) -> None: from superset.db_engine_specs.mssql import MssqlEngineSpec dialect = mssql.dialect() # non-unicode col sqla_column_type = MssqlEngineSpec.get_sqla_column_type("VARCHAR(10)") assert sqla_column_type is not None type_, _ = sqla_column_type str_col = column("col", type_=type_) # unicode col sqla_column_type = MssqlEngineSpec.get_sqla_column_type("NTEXT") assert sqla_column_type is not None type_, _ = sqla_column_type unicode_col = column("unicode_col", type_=type_) tbl = table("tbl") sel = (select([ str_col, unicode_col ]).select_from(tbl).where(str_col == "abc").where(unicode_col == "abc")) query = str( sel.compile(dialect=dialect, compile_kwargs={"literal_binds": True})) query_expected = ("SELECT col, unicode_col \n" "FROM tbl \n" "WHERE col = 'abc' AND unicode_col = N'abc'") assert query == query_expected
def assert_type(type_string, type_expected, generic_type_expected): if type_expected is None: type_assigned = MssqlEngineSpec.get_sqla_column_type(type_string) self.assertIsNone(type_assigned) else: column_spec = MssqlEngineSpec.get_column_spec(type_string) if column_spec != None: self.assertIsInstance(column_spec.sqla_type, type_expected) self.assertEquals(column_spec.generic_type, generic_type_expected)
def test_mssql_column_types( type_string: str, type_expected: TypeEngine, generic_type_expected: GenericDataType, ) -> None: from superset.db_engine_specs.mssql import MssqlEngineSpec if type_expected is None: type_assigned = MssqlEngineSpec.get_sqla_column_type(type_string) assert type_assigned is None else: column_spec = MssqlEngineSpec.get_column_spec(type_string) if column_spec is not None: assert isinstance(column_spec.sqla_type, type_expected) assert column_spec.generic_type == generic_type_expected
def assert_type(type_string, type_expected): type_assigned = MssqlEngineSpec.get_sqla_column_type(type_string) if type_expected is None: self.assertIsNone(type_assigned) else: self.assertIsInstance(type_assigned, type_expected)