def test_get_user_datasources_gamma_with_schema(self): Datasource = namedtuple("Datasource", ["database", "schema", "name"]) mock_session = mock.MagicMock() mock_session.query.return_value.filter.return_value.all.return_value = [ Datasource("database1", "schema1", "table1"), Datasource("database1", "schema1", "table2"), ] with mock.patch("superset.security_manager") as mock_security_manager: mock_security_manager.can_access_database.return_value = False with mock.patch.object( ConnectorRegistry, "get_all_datasources") as mock_get_all_datasources: mock_get_all_datasources.return_value = [ Datasource("database1", "schema1", "table1"), Datasource("database1", "schema1", "table2"), Datasource("database2", None, "table1"), ] datasources = ConnectorRegistry.get_user_datasources( mock_session) assert sorted(datasources) == [ Datasource("database1", "schema1", "table1"), Datasource("database1", "schema1", "table2"), ]
def add(self) -> FlaskResponse: datasources = [{ "value": str(d.id) + "__" + d.type, "label": repr(d) } for d in ConnectorRegistry.get_user_datasources(db.session)] payload = { "datasources": sorted( datasources, key=lambda d: d["label"].lower() if isinstance(d["label"], str) else "", ), "common": common_bootstrap_payload(), "user": bootstrap_user_data(g.user), } return self.render_template("superset/add_slice.html", bootstrap_data=json.dumps(payload))