mirror of
https://github.com/apache/superset.git
synced 2026-04-25 11:04:48 +00:00
chore: switching out ConnectorRegistry references for DatasourceDAO (#20380)
* rename and move dao file * Update dao.py * add cachekey * Update __init__.py * change reference in query context test * add utils ref * more ref changes * add helpers * add todo in dashboard.py * add cachekey * circular import error in dar.py * push rest of refs * fix linting * fix more linting * update enum * remove references for connector registry * big reafctor * take value * fix * test to see if removing value works * delete connectregistry * address concerns * address comments * fix merge conflicts * address concern II * address concern II * fix test Co-authored-by: Phillip Kelley-Dotson <pkelleydotson@yahoo.com>
This commit is contained in:
@@ -22,12 +22,13 @@ from unittest import mock
|
||||
import prison
|
||||
import pytest
|
||||
|
||||
from superset import app, ConnectorRegistry, db
|
||||
from superset import app, db
|
||||
from superset.connectors.sqla.models import SqlaTable
|
||||
from superset.dao.exceptions import DatasourceNotFound, DatasourceTypeNotSupportedError
|
||||
from superset.datasets.commands.exceptions import DatasetNotFoundError
|
||||
from superset.exceptions import SupersetGenericDBErrorException
|
||||
from superset.models.core import Database
|
||||
from superset.utils.core import get_example_default_schema
|
||||
from superset.utils.core import DatasourceType, get_example_default_schema
|
||||
from superset.utils.database import get_example_database
|
||||
from tests.integration_tests.base_tests import db_insert_temp_object, SupersetTestCase
|
||||
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||
@@ -256,9 +257,10 @@ class TestDatasource(SupersetTestCase):
|
||||
|
||||
pytest.raises(
|
||||
SupersetGenericDBErrorException,
|
||||
lambda: ConnectorRegistry.get_datasource(
|
||||
"table", tbl.id, db.session
|
||||
).external_metadata(),
|
||||
lambda: db.session.query(SqlaTable)
|
||||
.filter_by(id=tbl.id)
|
||||
.one_or_none()
|
||||
.external_metadata(),
|
||||
)
|
||||
|
||||
resp = self.client.get(url)
|
||||
@@ -385,21 +387,30 @@ class TestDatasource(SupersetTestCase):
|
||||
app.config["DATASET_HEALTH_CHECK"] = my_check
|
||||
self.login(username="admin")
|
||||
tbl = self.get_table(name="birth_names")
|
||||
datasource = ConnectorRegistry.get_datasource("table", tbl.id, db.session)
|
||||
datasource = db.session.query(SqlaTable).filter_by(id=tbl.id).one_or_none()
|
||||
assert datasource.health_check_message == "Warning message!"
|
||||
app.config["DATASET_HEALTH_CHECK"] = None
|
||||
|
||||
def test_get_datasource_failed(self):
|
||||
from superset.datasource.dao import DatasourceDAO
|
||||
|
||||
pytest.raises(
|
||||
DatasetNotFoundError,
|
||||
lambda: ConnectorRegistry.get_datasource("table", 9999999, db.session),
|
||||
DatasourceNotFound,
|
||||
lambda: DatasourceDAO.get_datasource(db.session, "table", 9999999),
|
||||
)
|
||||
|
||||
self.login(username="admin")
|
||||
resp = self.get_json_resp("/datasource/get/table/500000/", raise_on_error=False)
|
||||
self.assertEqual(resp.get("error"), "Datasource does not exist")
|
||||
|
||||
def test_get_datasource_invalid_datasource_failed(self):
|
||||
from superset.datasource.dao import DatasourceDAO
|
||||
|
||||
pytest.raises(
|
||||
DatasourceTypeNotSupportedError,
|
||||
lambda: DatasourceDAO.get_datasource(db.session, "druid", 9999999),
|
||||
)
|
||||
|
||||
self.login(username="admin")
|
||||
resp = self.get_json_resp("/datasource/get/druid/500000/", raise_on_error=False)
|
||||
self.assertEqual(resp.get("error"), "Dataset does not exist")
|
||||
|
||||
resp = self.get_json_resp(
|
||||
"/datasource/get/invalid-datasource-type/500000/", raise_on_error=False
|
||||
)
|
||||
self.assertEqual(resp.get("error"), "Dataset does not exist")
|
||||
self.assertEqual(resp.get("error"), "'druid' is not a valid DatasourceType")
|
||||
|
||||
Reference in New Issue
Block a user