Ejemplo n.º 1
0
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)
Ejemplo n.º 3
0
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)