예제 #1
0
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)
예제 #2
0
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)
예제 #4
0
 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,
     )
예제 #5
0
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
예제 #6
0
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,
    )
예제 #7
0
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)
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
    def test_convert_dttm_invalid_type(self):
        dttm = self.get_dttm()

        self.assertEqual(SqliteEngineSpec.convert_dttm("other", dttm), None)
예제 #12
0
    def test_convert_dttm_lower(self):
        dttm = self.get_dttm()

        self.assertEqual(SqliteEngineSpec.convert_dttm("text", dttm),
                         "'2019-01-02 03:04:05.678900'")
예제 #13
0
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
예제 #14
0
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'"
예제 #15
0
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'"