def test_get_all_datasource_names_invalid_type() -> None: from superset.db_engine_specs.sqlite import SqliteEngineSpec database = mock.MagicMock() database.get_all_schema_names.return_value = ["schema1"] invalid_type = "asdf" with pytest.raises(Exception): SqliteEngineSpec.get_all_datasource_names(database, invalid_type)
def test_time_grain_denylist(): config = app.config.copy() app.config["TIME_GRAIN_DENYLIST"] = ["PT1M"] with app.app_context(): time_grain_functions = SqliteEngineSpec.get_time_grain_expressions() assert not "PT1M" in time_grain_functions app.config = config
def test_time_grain_addons(self): with app.app_context(): app.config["TIME_GRAIN_ADDONS"] = {"PTXM": "x seconds"} app.config["TIME_GRAIN_ADDON_FUNCTIONS"] = { "sqlite": {"PTXM": "ABC({col})"} } time_grains = SqliteEngineSpec.get_time_grains() time_grain_addon = time_grains[-1] self.assertEqual("PTXM", time_grain_addon.duration) self.assertEqual("x seconds", time_grain_addon.label)
def test_get_all_datasource_names_view(self): database = mock.MagicMock() database.get_all_schema_names.return_value = ["schema1"] views_names = ["view1", "view2"] get_views = mock.MagicMock(return_value=views_names) database.get_all_view_names_in_schema = get_views result = SqliteEngineSpec.get_all_datasource_names(database, "view") assert result == views_names get_views.assert_called_once_with( schema="schema1", force=True, cache=database.table_cache_enabled, cache_timeout=database.table_cache_timeout, )
def test_time_grain_addons(): config = app.config.copy() app.config["TIME_GRAIN_ADDONS"] = {"PTXM": "x seconds"} app.config["TIME_GRAIN_ADDON_EXPRESSIONS"] = { "sqlite": { "PTXM": "ABC({col})" } } with app.app_context(): time_grains = SqliteEngineSpec.get_time_grains() time_grain_addon = time_grains[-1] assert "PTXM" == time_grain_addon.duration assert "x seconds" == time_grain_addon.label app.config = config
def test_get_all_datasource_names_view(app_context: AppContext) -> None: from superset.db_engine_specs.sqlite import SqliteEngineSpec database = mock.MagicMock() database.get_all_schema_names.return_value = ["schema1"] views_names = [("view1", "schema1"), ("view2", "schema1")] get_views = mock.MagicMock(return_value=views_names) database.get_all_view_names_in_schema = get_views result = SqliteEngineSpec.get_all_datasource_names(database, "view") assert result == views_names get_views.assert_called_once_with( schema="schema1", force=True, cache=database.table_cache_enabled, cache_timeout=database.table_cache_timeout, )
def test_get_all_datasource_names_table() -> None: from superset.db_engine_specs.sqlite import SqliteEngineSpec database = mock.MagicMock() database.get_all_schema_names.return_value = ["schema1"] table_names = [("table1", "schema1"), ("table2", "schema1")] get_tables = mock.MagicMock(return_value=table_names) database.get_all_table_names_in_schema = get_tables result = SqliteEngineSpec.get_all_datasource_names(database, "table") assert result == table_names get_tables.assert_called_once_with( schema="schema1", force=True, cache=database.table_cache_enabled, cache_timeout=database.table_cache_timeout, )
def test_time_grain_blacklist(self): with app.app_context(): app.config["TIME_GRAIN_BLACKLIST"] = ["PT1M"] time_grain_functions = SqliteEngineSpec.get_time_grain_functions() self.assertNotIn("PT1M", time_grain_functions)
def test_time_grain_denylist(self): with app.app_context(): app.config["TIME_GRAIN_DENYLIST"] = ["PT1M"] time_grain_functions = SqliteEngineSpec.get_time_grain_expressions( ) self.assertNotIn("PT1M", time_grain_functions)
def test_get_all_datasource_names_invalid_type(self): database = mock.MagicMock() database.get_all_schema_names.return_value = ["schema1"] invalid_type = "asdf" with self.assertRaises(Exception): SqliteEngineSpec.get_all_datasource_names(database, invalid_type)
def test_convert_dttm_invalid_type(self): dttm = self.get_dttm() self.assertEqual(SqliteEngineSpec.convert_dttm("other", dttm), None)
def test_convert_dttm_lower(self): dttm = self.get_dttm() self.assertEqual(SqliteEngineSpec.convert_dttm("text", dttm), "'2019-01-02 03:04:05.678900'")
def test_convert_dttm_invalid_type(app_context: AppContext, dttm: datetime) -> None: from superset.db_engine_specs.sqlite import SqliteEngineSpec assert SqliteEngineSpec.convert_dttm("other", dttm) is None
def test_convert_dttm_lower(app_context: AppContext, dttm: datetime) -> None: from superset.db_engine_specs.sqlite import SqliteEngineSpec assert SqliteEngineSpec.convert_dttm( "text", dttm) == "'2019-01-02 03:04:05.678900'"
def test_convert_dttm(dttm: datetime) -> None: from superset.db_engine_specs.sqlite import SqliteEngineSpec assert SqliteEngineSpec.convert_dttm("TEXT", dttm) == "'2019-01-02 03:04:05'"