mirror of https://github.com/apache/superset.git
refactor(tests): decouple unittests from integration tests (#15473)
* refactor move all tests to be under integration_tests package * refactor decouple unittests from integration tests - commands * add unit_tests package * fix celery_tests.py * fix wrong FIXTURES_DIR value
This commit is contained in:
parent
55d0371b92
commit
b5119b8dff
|
@ -192,7 +192,7 @@ cypress-run-all() {
|
||||||
say "::endgroup::"
|
say "::endgroup::"
|
||||||
|
|
||||||
# Rerun SQL Lab tests with backend persist enabled
|
# Rerun SQL Lab tests with backend persist enabled
|
||||||
export SUPERSET_CONFIG=tests.superset_test_config_sqllab_backend_persist
|
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config_sqllab_backend_persist
|
||||||
|
|
||||||
# Restart Flask with new configs
|
# Restart Flask with new configs
|
||||||
kill $flaskProcessId
|
kill $flaskProcessId
|
||||||
|
|
|
@ -25,7 +25,7 @@ jobs:
|
||||||
env:
|
env:
|
||||||
FLASK_ENV: development
|
FLASK_ENV: development
|
||||||
ENABLE_REACT_CRUD_VIEWS: true
|
ENABLE_REACT_CRUD_VIEWS: true
|
||||||
SUPERSET_CONFIG: tests.superset_test_config
|
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||||
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
||||||
PYTHONPATH: ${{ github.workspace }}
|
PYTHONPATH: ${{ github.workspace }}
|
||||||
REDIS_PORT: 16379
|
REDIS_PORT: 16379
|
||||||
|
|
|
@ -17,7 +17,7 @@ jobs:
|
||||||
python-version: [3.8]
|
python-version: [3.8]
|
||||||
env:
|
env:
|
||||||
PYTHONPATH: ${{ github.workspace }}
|
PYTHONPATH: ${{ github.workspace }}
|
||||||
SUPERSET_CONFIG: tests.superset_test_config
|
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||||
REDIS_PORT: 16379
|
REDIS_PORT: 16379
|
||||||
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
||||||
SUPERSET__SQLALCHEMY_EXAMPLES_URI: presto://localhost:15433/memory/default
|
SUPERSET__SQLALCHEMY_EXAMPLES_URI: presto://localhost:15433/memory/default
|
||||||
|
@ -91,7 +91,7 @@ jobs:
|
||||||
python-version: [3.8]
|
python-version: [3.8]
|
||||||
env:
|
env:
|
||||||
PYTHONPATH: ${{ github.workspace }}
|
PYTHONPATH: ${{ github.workspace }}
|
||||||
SUPERSET_CONFIG: tests.superset_test_config
|
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||||
REDIS_PORT: 16379
|
REDIS_PORT: 16379
|
||||||
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
||||||
SUPERSET__SQLALCHEMY_EXAMPLES_URI: hive://localhost:10000/default
|
SUPERSET__SQLALCHEMY_EXAMPLES_URI: hive://localhost:10000/default
|
||||||
|
|
|
@ -17,7 +17,7 @@ jobs:
|
||||||
python-version: [3.7]
|
python-version: [3.7]
|
||||||
env:
|
env:
|
||||||
PYTHONPATH: ${{ github.workspace }}
|
PYTHONPATH: ${{ github.workspace }}
|
||||||
SUPERSET_CONFIG: tests.superset_test_config
|
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||||
REDIS_PORT: 16379
|
REDIS_PORT: 16379
|
||||||
SUPERSET__SQLALCHEMY_DATABASE_URI: |
|
SUPERSET__SQLALCHEMY_DATABASE_URI: |
|
||||||
mysql+mysqldb://superset:superset@127.0.0.1:13306/superset?charset=utf8mb4&binary_prefix=true
|
mysql+mysqldb://superset:superset@127.0.0.1:13306/superset?charset=utf8mb4&binary_prefix=true
|
||||||
|
@ -80,7 +80,7 @@ jobs:
|
||||||
python-version: [3.7, 3.8]
|
python-version: [3.7, 3.8]
|
||||||
env:
|
env:
|
||||||
PYTHONPATH: ${{ github.workspace }}
|
PYTHONPATH: ${{ github.workspace }}
|
||||||
SUPERSET_CONFIG: tests.superset_test_config
|
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||||
REDIS_PORT: 16379
|
REDIS_PORT: 16379
|
||||||
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
|
||||||
services:
|
services:
|
||||||
|
@ -144,7 +144,7 @@ jobs:
|
||||||
python-version: [3.7]
|
python-version: [3.7]
|
||||||
env:
|
env:
|
||||||
PYTHONPATH: ${{ github.workspace }}
|
PYTHONPATH: ${{ github.workspace }}
|
||||||
SUPERSET_CONFIG: tests.superset_test_config
|
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
|
||||||
REDIS_PORT: 16379
|
REDIS_PORT: 16379
|
||||||
SUPERSET__SQLALCHEMY_DATABASE_URI: |
|
SUPERSET__SQLALCHEMY_DATABASE_URI: |
|
||||||
sqlite:///${{ github.workspace }}/.temp/unittest.db
|
sqlite:///${{ github.workspace }}/.temp/unittest.db
|
||||||
|
|
|
@ -771,7 +771,7 @@ npm run test -- path/to/file.js
|
||||||
We use [Cypress](https://www.cypress.io/) for integration tests. Tests can be run by `tox -e cypress`. To open Cypress and explore tests first setup and run test server:
|
We use [Cypress](https://www.cypress.io/) for integration tests. Tests can be run by `tox -e cypress`. To open Cypress and explore tests first setup and run test server:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export SUPERSET_CONFIG=tests.superset_test_config
|
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
|
||||||
export SUPERSET_TESTENV=true
|
export SUPERSET_TESTENV=true
|
||||||
export ENABLE_REACT_CRUD_VIEWS=true
|
export ENABLE_REACT_CRUD_VIEWS=true
|
||||||
export CYPRESS_BASE_URL="http://localhost:8081"
|
export CYPRESS_BASE_URL="http://localhost:8081"
|
||||||
|
|
|
@ -21,7 +21,7 @@ set -eo pipefail
|
||||||
REQUIREMENTS_LOCAL="/app/docker/requirements-local.txt"
|
REQUIREMENTS_LOCAL="/app/docker/requirements-local.txt"
|
||||||
# If Cypress run – overwrite the password for admin and export env variables
|
# If Cypress run – overwrite the password for admin and export env variables
|
||||||
if [ "$CYPRESS_CONFIG" == "true" ]; then
|
if [ "$CYPRESS_CONFIG" == "true" ]; then
|
||||||
export SUPERSET_CONFIG=tests.superset_test_config
|
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
|
||||||
export SUPERSET_TESTENV=true
|
export SUPERSET_TESTENV=true
|
||||||
export ENABLE_REACT_CRUD_VIEWS=true
|
export ENABLE_REACT_CRUD_VIEWS=true
|
||||||
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset
|
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#
|
#
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
export SUPERSET_CONFIG=${SUPERSET_CONFIG:-tests.superset_test_config}
|
export SUPERSET_CONFIG=${SUPERSET_CONFIG:-tests.integration_tests.superset_test_config}
|
||||||
export SUPERSET_TESTENV=true
|
export SUPERSET_TESTENV=true
|
||||||
echo "Superset config module: $SUPERSET_CONFIG"
|
echo "Superset config module: $SUPERSET_CONFIG"
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ DB_NAME="test"
|
||||||
DB_USER="superset"
|
DB_USER="superset"
|
||||||
DB_PASSWORD="superset"
|
DB_PASSWORD="superset"
|
||||||
export SUPERSET__SQLALCHEMY_DATABASE_URI=${SUPERSET__SQLALCHEMY_DATABASE_URI:-postgresql+psycopg2://"${DB_USER}":"${DB_PASSWORD}"@localhost/"${DB_NAME}"}
|
export SUPERSET__SQLALCHEMY_DATABASE_URI=${SUPERSET__SQLALCHEMY_DATABASE_URI:-postgresql+psycopg2://"${DB_USER}":"${DB_PASSWORD}"@localhost/"${DB_NAME}"}
|
||||||
export SUPERSET_CONFIG=${SUPERSET_CONFIG:-tests.superset_test_config}
|
export SUPERSET_CONFIG=${SUPERSET_CONFIG:-tests.integration_tests.superset_test_config}
|
||||||
RUN_INIT=1
|
RUN_INIT=1
|
||||||
RUN_RESET_DB=1
|
RUN_RESET_DB=1
|
||||||
RUN_TESTS=1
|
RUN_TESTS=1
|
||||||
|
|
|
@ -19,13 +19,19 @@
|
||||||
import json
|
import json
|
||||||
import unittest
|
import unittest
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
from tests.test_app import app # isort:skip
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.test_app import app # isort:skip
|
||||||
from superset import db, security_manager
|
from superset import db, security_manager
|
||||||
from superset.connectors.connector_registry import ConnectorRegistry
|
from superset.connectors.connector_registry import ConnectorRegistry
|
||||||
from superset.connectors.druid.models import DruidDatasource
|
from superset.connectors.druid.models import DruidDatasource
|
|
@ -45,9 +45,9 @@ from superset.views.alerts import (
|
||||||
AlertModelView,
|
AlertModelView,
|
||||||
AlertObservationModelView,
|
AlertObservationModelView,
|
||||||
)
|
)
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from tests.utils import read_fixture
|
from tests.integration_tests.utils import read_fixture
|
||||||
|
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
|
@ -22,12 +22,12 @@ import pytest
|
||||||
import prison
|
import prison
|
||||||
from sqlalchemy.sql import func
|
from sqlalchemy.sql import func
|
||||||
|
|
||||||
import tests.test_app
|
import tests.integration_tests.test_app
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.models.annotations import Annotation, AnnotationLayer
|
from superset.models.annotations import Annotation, AnnotationLayer
|
||||||
|
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.annotation_layers.fixtures import (
|
from tests.integration_tests.annotation_layers.fixtures import (
|
||||||
create_annotation_layers,
|
create_annotation_layers,
|
||||||
get_end_dttm,
|
get_end_dttm,
|
||||||
get_start_dttm,
|
get_start_dttm,
|
|
@ -22,7 +22,7 @@ from typing import Optional
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.models.annotations import Annotation, AnnotationLayer
|
from superset.models.annotations import Annotation, AnnotationLayer
|
||||||
|
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
|
|
||||||
ANNOTATION_LAYERS_COUNT = 10
|
ANNOTATION_LAYERS_COUNT = 10
|
|
@ -19,8 +19,8 @@ from typing import Optional
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from superset.extensions import async_query_manager
|
from superset.extensions import async_query_manager
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
|
|
||||||
class TestAsyncEventApi(SupersetTestCase):
|
class TestAsyncEventApi(SupersetTestCase):
|
|
@ -16,13 +16,15 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
# isort:skip_file
|
# isort:skip_file
|
||||||
import json
|
import json
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
from flask_appbuilder.models.sqla.interface import SQLAInterface
|
||||||
import prison
|
import prison
|
||||||
|
|
||||||
import tests.test_app
|
import tests.integration_tests.test_app
|
||||||
from superset import db, security_manager
|
from superset import db, security_manager
|
||||||
from superset.extensions import appbuilder
|
from superset.extensions import appbuilder
|
||||||
from superset.models.dashboard import Dashboard
|
from superset.models.dashboard import Dashboard
|
|
@ -32,7 +32,7 @@ from sqlalchemy.ext.declarative.api import DeclarativeMeta
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from sqlalchemy.sql import func
|
from sqlalchemy.sql import func
|
||||||
|
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from superset.sql_parse import CtasMethod
|
from superset.sql_parse import CtasMethod
|
||||||
from superset import db, security_manager
|
from superset import db, security_manager
|
||||||
from superset.connectors.base.models import BaseDatasource
|
from superset.connectors.base.models import BaseDatasource
|
|
@ -22,7 +22,9 @@ import pytest
|
||||||
from superset import app, db
|
from superset import app, db
|
||||||
from superset.extensions import cache_manager
|
from superset.extensions import cache_manager
|
||||||
from superset.utils.core import QueryStatus
|
from superset.utils.core import QueryStatus
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
from .base_tests import SupersetTestCase
|
from .base_tests import SupersetTestCase
|
||||||
|
|
|
@ -18,11 +18,11 @@
|
||||||
"""Unit tests for Superset"""
|
"""Unit tests for Superset"""
|
||||||
from typing import Dict, Any
|
from typing import Dict, Any
|
||||||
|
|
||||||
from tests.test_app import app # noqa
|
from tests.integration_tests.test_app import app # noqa
|
||||||
|
|
||||||
from superset.extensions import cache_manager, db
|
from superset.extensions import cache_manager, db
|
||||||
from superset.models.cache import CacheKey
|
from superset.models.cache import CacheKey
|
||||||
from tests.base_tests import (
|
from tests.integration_tests.base_tests import (
|
||||||
SupersetTestCase,
|
SupersetTestCase,
|
||||||
post_assert_metric,
|
post_assert_metric,
|
||||||
test_client,
|
test_client,
|
|
@ -23,16 +23,18 @@ import string
|
||||||
import time
|
import time
|
||||||
import unittest.mock as mock
|
import unittest.mock as mock
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import flask
|
import flask
|
||||||
from flask import current_app
|
from flask import current_app
|
||||||
|
|
||||||
from tests.base_tests import login
|
from tests.integration_tests.base_tests import login
|
||||||
from tests.conftest import CTAS_SCHEMA_NAME
|
from tests.integration_tests.conftest import CTAS_SCHEMA_NAME
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from superset import db, sql_lab
|
from superset import db, sql_lab
|
||||||
from superset.result_set import SupersetResultSet
|
from superset.result_set import SupersetResultSet
|
||||||
from superset.db_engine_specs.base import BaseEngineSpec
|
from superset.db_engine_specs.base import BaseEngineSpec
|
|
@ -23,10 +23,12 @@ from typing import Optional
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
from zipfile import is_zipfile, ZipFile
|
from zipfile import is_zipfile, ZipFile
|
||||||
|
|
||||||
from tests.conftest import with_feature_flags
|
from tests.integration_tests.conftest import with_feature_flags
|
||||||
from superset.models.sql_lab import Query
|
from superset.models.sql_lab import Query
|
||||||
from tests.insert_chart_mixin import InsertChartMixin
|
from tests.integration_tests.insert_chart_mixin import InsertChartMixin
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
import humanize
|
import humanize
|
||||||
import prison
|
import prison
|
||||||
|
@ -35,8 +37,10 @@ import yaml
|
||||||
from sqlalchemy import and_, or_
|
from sqlalchemy import and_, or_
|
||||||
from sqlalchemy.sql import func
|
from sqlalchemy.sql import func
|
||||||
|
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
from tests.test_app import app
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.test_app import app
|
||||||
from superset.charts.commands.data import ChartDataCommand
|
from superset.charts.commands.data import ChartDataCommand
|
||||||
from superset.connectors.sqla.models import SqlaTable, TableColumn
|
from superset.connectors.sqla.models import SqlaTable, TableColumn
|
||||||
from superset.errors import SupersetErrorType
|
from superset.errors import SupersetErrorType
|
||||||
|
@ -55,21 +59,32 @@ from superset.utils.core import (
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
from tests.base_api_tests import ApiOwnersTestCaseMixin
|
from tests.integration_tests.base_api_tests import ApiOwnersTestCaseMixin
|
||||||
from tests.base_tests import SupersetTestCase, post_assert_metric, test_client
|
from tests.integration_tests.base_tests import (
|
||||||
|
SupersetTestCase,
|
||||||
|
post_assert_metric,
|
||||||
|
test_client,
|
||||||
|
)
|
||||||
|
|
||||||
from tests.fixtures.importexport import (
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
chart_config,
|
chart_config,
|
||||||
chart_metadata_config,
|
chart_metadata_config,
|
||||||
database_config,
|
database_config,
|
||||||
dataset_config,
|
dataset_config,
|
||||||
dataset_metadata_config,
|
dataset_metadata_config,
|
||||||
)
|
)
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
from tests.fixtures.query_context import get_query_context, ANNOTATION_LAYERS
|
load_energy_table_with_slice,
|
||||||
from tests.fixtures.unicode_dashboard import load_unicode_dashboard_with_slice
|
)
|
||||||
from tests.annotation_layers.fixtures import create_annotation_layers
|
from tests.integration_tests.fixtures.query_context import (
|
||||||
from tests.utils.get_dashboards import get_dashboards_ids
|
get_query_context,
|
||||||
|
ANNOTATION_LAYERS,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.unicode_dashboard import (
|
||||||
|
load_unicode_dashboard_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.annotation_layers.fixtures import create_annotation_layers
|
||||||
|
from tests.integration_tests.utils.get_dashboards import get_dashboards_ids
|
||||||
|
|
||||||
CHART_DATA_URI = "api/v1/chart/data"
|
CHART_DATA_URI = "api/v1/chart/data"
|
||||||
CHARTS_FIXTURE_COUNT = 10
|
CHARTS_FIXTURE_COUNT = 10
|
|
@ -31,9 +31,11 @@ from superset.commands.importers.exceptions import IncorrectVersionError
|
||||||
from superset.connectors.sqla.models import SqlaTable
|
from superset.connectors.sqla.models import SqlaTable
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from superset.models.slice import Slice
|
from superset.models.slice import Slice
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
from tests.fixtures.importexport import (
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
chart_config,
|
chart_config,
|
||||||
chart_metadata_config,
|
chart_metadata_config,
|
||||||
database_config,
|
database_config,
|
|
@ -19,11 +19,11 @@
|
||||||
from typing import Any, Dict, Tuple
|
from typing import Any, Dict, Tuple
|
||||||
|
|
||||||
from marshmallow import ValidationError
|
from marshmallow import ValidationError
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from superset.charts.schemas import ChartDataQueryContextSchema
|
from superset.charts.schemas import ChartDataQueryContextSchema
|
||||||
from superset.common.query_context import QueryContext
|
from superset.common.query_context import QueryContext
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.query_context import get_query_context
|
from tests.integration_tests.fixtures.query_context import get_query_context
|
||||||
|
|
||||||
|
|
||||||
class TestSchema(SupersetTestCase):
|
class TestSchema(SupersetTestCase):
|
|
@ -27,7 +27,9 @@ from freezegun import freeze_time
|
||||||
|
|
||||||
import superset.cli
|
import superset.cli
|
||||||
from superset import app
|
from superset import app
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
from superset.commands.exceptions import CommandInvalidError
|
from superset.commands.exceptions import CommandInvalidError
|
||||||
from superset.commands.importers.v1.utils import is_valid_config
|
from superset.commands.importers.v1.utils import is_valid_config
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
|
|
||||||
|
|
||||||
class TestCommandsExceptions(SupersetTestCase):
|
class TestCommandsExceptions(SupersetTestCase):
|
|
@ -19,8 +19,8 @@
|
||||||
import unittest
|
import unittest
|
||||||
from typing import Any, Dict
|
from typing import Any, Dict
|
||||||
|
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.connectors.sqla.models import SqlaTable
|
from superset.connectors.sqla.models import SqlaTable
|
|
@ -22,7 +22,7 @@ import pytest
|
||||||
from sqlalchemy.engine import Engine
|
from sqlalchemy.engine import Engine
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.extensions import feature_flag_manager
|
from superset.extensions import feature_flag_manager
|
||||||
from superset.utils.core import get_example_database, json_dumps_w_dates
|
from superset.utils.core import get_example_database, json_dumps_w_dates
|
||||||
|
@ -41,7 +41,7 @@ def app_context():
|
||||||
@pytest.fixture(autouse=True, scope="session")
|
@pytest.fixture(autouse=True, scope="session")
|
||||||
def setup_sample_data() -> Any:
|
def setup_sample_data() -> Any:
|
||||||
# TODO(john-bodley): Determine a cleaner way of setting up the sample data without
|
# TODO(john-bodley): Determine a cleaner way of setting up the sample data without
|
||||||
# relying on `tests.test_app.app` leveraging an `app` fixture which is purposely
|
# relying on `tests.integration_tests.test_app.app` leveraging an `app` fixture which is purposely
|
||||||
# scoped to the function level to ensure tests remain idempotent.
|
# scoped to the function level to ensure tests remain idempotent.
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
setup_presto_if_needed()
|
setup_presto_if_needed()
|
||||||
|
@ -115,7 +115,7 @@ def setup_presto_if_needed():
|
||||||
|
|
||||||
def with_feature_flags(**mock_feature_flags):
|
def with_feature_flags(**mock_feature_flags):
|
||||||
"""
|
"""
|
||||||
Use this decorator to mock feature flags in tests.
|
Use this decorator to mock feature flags in tests.integration_tests.
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
|
|
|
@ -25,7 +25,9 @@ import json
|
||||||
import logging
|
import logging
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import pytz
|
import pytz
|
||||||
|
@ -39,9 +41,11 @@ import sqlalchemy as sqla
|
||||||
from sqlalchemy.exc import SQLAlchemyError
|
from sqlalchemy.exc import SQLAlchemyError
|
||||||
from superset.models.cache import CacheKey
|
from superset.models.cache import CacheKey
|
||||||
from superset.utils.core import get_example_database
|
from superset.utils.core import get_example_database
|
||||||
from tests.conftest import with_feature_flags
|
from tests.integration_tests.conftest import with_feature_flags
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
from tests.test_app import app
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.test_app import app
|
||||||
import superset.views.utils
|
import superset.views.utils
|
||||||
from superset import (
|
from superset import (
|
||||||
dataframe,
|
dataframe,
|
||||||
|
@ -66,7 +70,9 @@ from superset.views import core as views
|
||||||
from superset.views.database.views import DatabaseView
|
from superset.views.database.views import DatabaseView
|
||||||
|
|
||||||
from .base_tests import SupersetTestCase
|
from .base_tests import SupersetTestCase
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -742,7 +748,9 @@ class TestCore(SupersetTestCase):
|
||||||
data = self.run_sql(sql, "fdaklj3ws")
|
data = self.run_sql(sql, "fdaklj3ws")
|
||||||
self.assertEqual(data["data"][0]["test"], "2")
|
self.assertEqual(data["data"][0]["test"], "2")
|
||||||
|
|
||||||
@mock.patch("tests.superset_test_custom_template_processors.datetime")
|
@mock.patch(
|
||||||
|
"tests.integration_tests.superset_test_custom_template_processors.datetime"
|
||||||
|
)
|
||||||
@mock.patch("superset.sql_lab.get_sql_results")
|
@mock.patch("superset.sql_lab.get_sql_results")
|
||||||
def test_custom_templated_sql_json(self, sql_lab_mock, mock_dt) -> None:
|
def test_custom_templated_sql_json(self, sql_lab_mock, mock_dt) -> None:
|
||||||
"""Test sqllab receives macros expanded query."""
|
"""Test sqllab receives macros expanded query."""
|
|
@ -21,12 +21,12 @@ import pytest
|
||||||
import prison
|
import prison
|
||||||
from sqlalchemy.sql import func
|
from sqlalchemy.sql import func
|
||||||
|
|
||||||
import tests.test_app
|
import tests.integration_tests.test_app
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.models.core import CssTemplate
|
from superset.models.core import CssTemplate
|
||||||
from superset.utils.core import get_example_database
|
from superset.utils.core import get_example_database
|
||||||
|
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
|
|
||||||
|
|
||||||
CSS_TEMPLATES_FIXTURE_COUNT = 5
|
CSS_TEMPLATES_FIXTURE_COUNT = 5
|
|
@ -27,12 +27,12 @@ import pandas as pd
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from superset.sql_parse import Table
|
from superset.sql_parse import Table
|
||||||
from tests.conftest import ADMIN_SCHEMA_NAME
|
from tests.integration_tests.conftest import ADMIN_SCHEMA_NAME
|
||||||
from tests.test_app import app # isort:skip
|
from tests.integration_tests.test_app import app # isort:skip
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from superset.utils import core as utils
|
from superset.utils import core as utils
|
||||||
from tests.base_tests import get_resp, login, SupersetTestCase
|
from tests.integration_tests.base_tests import get_resp, login, SupersetTestCase
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ def upload_excel(
|
||||||
|
|
||||||
def mock_upload_to_s3(filename: str, upload_prefix: str, table: Table) -> str:
|
def mock_upload_to_s3(filename: str, upload_prefix: str, table: Table) -> str:
|
||||||
"""
|
"""
|
||||||
HDFS is used instead of S3 for the unit tests.
|
HDFS is used instead of S3 for the unit tests.integration_tests.
|
||||||
|
|
||||||
:param filename: The file to upload
|
:param filename: The file to upload
|
||||||
:param upload_prefix: The S3 prefix
|
:param upload_prefix: The S3 prefix
|
|
@ -25,17 +25,25 @@ import pytest
|
||||||
from flask import escape, url_for
|
from flask import escape, url_for
|
||||||
from sqlalchemy import func
|
from sqlalchemy import func
|
||||||
|
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from superset import db, security_manager
|
from superset import db, security_manager
|
||||||
from superset.connectors.sqla.models import SqlaTable
|
from superset.connectors.sqla.models import SqlaTable
|
||||||
from superset.models import core as models
|
from superset.models import core as models
|
||||||
from superset.models.dashboard import Dashboard
|
from superset.models.dashboard import Dashboard
|
||||||
from superset.models.slice import Slice
|
from superset.models.slice import Slice
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
load_birth_names_dashboard_with_slices,
|
||||||
from tests.fixtures.public_role import public_role_like_gamma
|
)
|
||||||
from tests.fixtures.unicode_dashboard import load_unicode_dashboard_with_position
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.public_role import public_role_like_gamma
|
||||||
|
from tests.integration_tests.fixtures.unicode_dashboard import (
|
||||||
|
load_unicode_dashboard_with_position,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
from .base_tests import SupersetTestCase
|
from .base_tests import SupersetTestCase
|
||||||
|
|
|
@ -23,7 +23,7 @@ from typing import List, Optional
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
from zipfile import is_zipfile, ZipFile
|
from zipfile import is_zipfile, ZipFile
|
||||||
|
|
||||||
from tests.insert_chart_mixin import InsertChartMixin
|
from tests.integration_tests.insert_chart_mixin import InsertChartMixin
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import prison
|
import prison
|
||||||
|
@ -40,9 +40,9 @@ from superset.models.slice import Slice
|
||||||
from superset.utils.core import backend
|
from superset.utils.core import backend
|
||||||
from superset.views.base import generate_download_headers
|
from superset.views.base import generate_download_headers
|
||||||
|
|
||||||
from tests.base_api_tests import ApiOwnersTestCaseMixin
|
from tests.integration_tests.base_api_tests import ApiOwnersTestCaseMixin
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.importexport import (
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
chart_config,
|
chart_config,
|
||||||
database_config,
|
database_config,
|
||||||
dashboard_config,
|
dashboard_config,
|
||||||
|
@ -51,9 +51,13 @@ from tests.fixtures.importexport import (
|
||||||
dataset_config,
|
dataset_config,
|
||||||
dataset_metadata_config,
|
dataset_metadata_config,
|
||||||
)
|
)
|
||||||
from tests.utils.get_dashboards import get_dashboards_ids
|
from tests.integration_tests.utils.get_dashboards import get_dashboards_ids
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
DASHBOARDS_FIXTURE_COUNT = 10
|
DASHBOARDS_FIXTURE_COUNT = 10
|
||||||
|
|
|
@ -21,10 +21,14 @@ import prison
|
||||||
from flask import Response
|
from flask import Response
|
||||||
|
|
||||||
from superset import app, security_manager
|
from superset import app, security_manager
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.dashboards.consts import *
|
from tests.integration_tests.dashboards.consts import *
|
||||||
from tests.dashboards.dashboard_test_utils import build_save_dash_parts
|
from tests.integration_tests.dashboards.dashboard_test_utils import (
|
||||||
from tests.dashboards.superset_factory_util import delete_all_inserted_objects
|
build_save_dash_parts,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.dashboards.superset_factory_util import (
|
||||||
|
delete_all_inserted_objects,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class DashboardTestCase(SupersetTestCase):
|
class DashboardTestCase(SupersetTestCase):
|
|
@ -38,8 +38,8 @@ from superset.dashboards.commands.importers import v0, v1
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from superset.models.dashboard import Dashboard
|
from superset.models.dashboard import Dashboard
|
||||||
from superset.models.slice import Slice
|
from superset.models.slice import Slice
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.importexport import (
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
chart_config,
|
chart_config,
|
||||||
dashboard_config,
|
dashboard_config,
|
||||||
dashboard_export,
|
dashboard_export,
|
||||||
|
@ -48,7 +48,9 @@ from tests.fixtures.importexport import (
|
||||||
dataset_config,
|
dataset_config,
|
||||||
dataset_metadata_config,
|
dataset_metadata_config,
|
||||||
)
|
)
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestExportDashboardsCommand(SupersetTestCase):
|
class TestExportDashboardsCommand(SupersetTestCase):
|
|
@ -21,12 +21,14 @@ import time
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
import tests.test_app # pylint: disable=unused-import
|
import tests.integration_tests.test_app # pylint: disable=unused-import
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.dashboards.dao import DashboardDAO
|
from superset.dashboards.dao import DashboardDAO
|
||||||
from superset.models.dashboard import Dashboard
|
from superset.models.dashboard import Dashboard
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestDashboardDAO(SupersetTestCase):
|
class TestDashboardDAO(SupersetTestCase):
|
|
@ -25,7 +25,7 @@ from superset import appbuilder, db, security_manager
|
||||||
from superset.connectors.sqla.models import SqlaTable
|
from superset.connectors.sqla.models import SqlaTable
|
||||||
from superset.models.dashboard import Dashboard
|
from superset.models.dashboard import Dashboard
|
||||||
from superset.models.slice import Slice
|
from superset.models.slice import Slice
|
||||||
from tests.dashboards.consts import DEFAULT_DASHBOARD_SLUG_TO_TEST
|
from tests.integration_tests.dashboards.consts import DEFAULT_DASHBOARD_SLUG_TO_TEST
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
@ -19,7 +19,7 @@ from typing import List, Optional
|
||||||
from flask import escape, Response
|
from flask import escape, Response
|
||||||
|
|
||||||
from superset.models.dashboard import Dashboard
|
from superset.models.dashboard import Dashboard
|
||||||
from tests.dashboards.base_case import DashboardTestCase
|
from tests.integration_tests.dashboards.base_case import DashboardTestCase
|
||||||
|
|
||||||
|
|
||||||
class BaseTestDashboardSecurity(DashboardTestCase):
|
class BaseTestDashboardSecurity(DashboardTestCase):
|
|
@ -23,11 +23,13 @@ from flask import escape
|
||||||
|
|
||||||
from superset import app
|
from superset import app
|
||||||
from superset.models import core as models
|
from superset.models import core as models
|
||||||
from tests.dashboards.base_case import DashboardTestCase
|
from tests.integration_tests.dashboards.base_case import DashboardTestCase
|
||||||
from tests.dashboards.consts import *
|
from tests.integration_tests.dashboards.consts import *
|
||||||
from tests.dashboards.dashboard_test_utils import *
|
from tests.integration_tests.dashboards.dashboard_test_utils import *
|
||||||
from tests.dashboards.superset_factory_util import *
|
from tests.integration_tests.dashboards.superset_factory_util import *
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestDashboardDatasetSecurity(DashboardTestCase):
|
class TestDashboardDatasetSecurity(DashboardTestCase):
|
|
@ -19,17 +19,21 @@ from unittest import mock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from tests.dashboards.dashboard_test_utils import *
|
from tests.integration_tests.dashboards.dashboard_test_utils import *
|
||||||
from tests.dashboards.security.base_case import BaseTestDashboardSecurity
|
from tests.integration_tests.dashboards.security.base_case import (
|
||||||
from tests.dashboards.superset_factory_util import (
|
BaseTestDashboardSecurity,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.dashboards.superset_factory_util import (
|
||||||
create_dashboard_to_db,
|
create_dashboard_to_db,
|
||||||
create_database_to_db,
|
create_database_to_db,
|
||||||
create_datasource_table_to_db,
|
create_datasource_table_to_db,
|
||||||
create_slice_to_db,
|
create_slice_to_db,
|
||||||
)
|
)
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
from tests.fixtures.public_role import public_role_like_gamma
|
load_birth_names_dashboard_with_slices,
|
||||||
from tests.fixtures.query_context import get_query_context
|
)
|
||||||
|
from tests.integration_tests.fixtures.public_role import public_role_like_gamma
|
||||||
|
from tests.integration_tests.fixtures.query_context import get_query_context
|
||||||
|
|
||||||
CHART_DATA_URI = "api/v1/chart/data"
|
CHART_DATA_URI = "api/v1/chart/data"
|
||||||
|
|
|
@ -30,7 +30,11 @@ from superset.models.dashboard import (
|
||||||
DashboardRoles,
|
DashboardRoles,
|
||||||
)
|
)
|
||||||
from superset.models.slice import Slice, slice_user
|
from superset.models.slice import Slice, slice_user
|
||||||
from tests.dashboards.dashboard_test_utils import random_slug, random_str, random_title
|
from tests.integration_tests.dashboards.dashboard_test_utils import (
|
||||||
|
random_slug,
|
||||||
|
random_str,
|
||||||
|
random_title,
|
||||||
|
)
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
@ -43,19 +43,27 @@ from superset.errors import SupersetError
|
||||||
from superset.models.core import Database, ConfigurationMethod
|
from superset.models.core import Database, ConfigurationMethod
|
||||||
from superset.models.reports import ReportSchedule, ReportScheduleType
|
from superset.models.reports import ReportSchedule, ReportScheduleType
|
||||||
from superset.utils.core import get_example_database, get_main_database
|
from superset.utils.core import get_example_database, get_main_database
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
from tests.fixtures.certificates import ssl_certificate
|
load_birth_names_dashboard_with_slices,
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
)
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.certificates import ssl_certificate
|
||||||
from tests.fixtures.importexport import (
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
database_config,
|
database_config,
|
||||||
dataset_config,
|
dataset_config,
|
||||||
database_metadata_config,
|
database_metadata_config,
|
||||||
dataset_metadata_config,
|
dataset_metadata_config,
|
||||||
)
|
)
|
||||||
from tests.fixtures.unicode_dashboard import load_unicode_dashboard_with_position
|
from tests.integration_tests.fixtures.unicode_dashboard import (
|
||||||
from tests.test_app import app
|
load_unicode_dashboard_with_position,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
|
|
||||||
class TestDatabaseApi(SupersetTestCase):
|
class TestDatabaseApi(SupersetTestCase):
|
|
@ -42,10 +42,14 @@ from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.exceptions import SupersetErrorsException, SupersetSecurityException
|
from superset.exceptions import SupersetErrorsException, SupersetSecurityException
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from superset.utils.core import backend, get_example_database
|
from superset.utils.core import backend, get_example_database
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
load_birth_names_dashboard_with_slices,
|
||||||
from tests.fixtures.importexport import (
|
)
|
||||||
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
database_config,
|
database_config,
|
||||||
database_metadata_config,
|
database_metadata_config,
|
||||||
dataset_config,
|
dataset_config,
|
|
@ -18,7 +18,7 @@
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
||||||
import tests.test_app
|
import tests.integration_tests.test_app
|
||||||
from superset.dataframe import df_to_records
|
from superset.dataframe import df_to_records
|
||||||
from superset.db_engine_specs import BaseEngineSpec
|
from superset.db_engine_specs import BaseEngineSpec
|
||||||
from superset.result_set import SupersetResultSet
|
from superset.result_set import SupersetResultSet
|
|
@ -38,11 +38,15 @@ from superset.extensions import db, security_manager
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from superset.utils.core import backend, get_example_database, get_main_database
|
from superset.utils.core import backend, get_example_database, get_main_database
|
||||||
from superset.utils.dict_import_export import export_to_dict
|
from superset.utils.dict_import_export import export_to_dict
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.conftest import CTAS_SCHEMA_NAME
|
from tests.integration_tests.conftest import CTAS_SCHEMA_NAME
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
load_birth_names_dashboard_with_slices,
|
||||||
from tests.fixtures.importexport import (
|
)
|
||||||
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
database_config,
|
database_config,
|
||||||
database_metadata_config,
|
database_metadata_config,
|
||||||
dataset_config,
|
dataset_config,
|
|
@ -33,9 +33,11 @@ from superset.datasets.commands.export import ExportDatasetsCommand
|
||||||
from superset.datasets.commands.importers import v0, v1
|
from superset.datasets.commands.importers import v0, v1
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from superset.utils.core import get_example_database
|
from superset.utils.core import get_example_database
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
|
from tests.integration_tests.fixtures.energy_dashboard import (
|
||||||
from tests.fixtures.importexport import (
|
load_energy_table_with_slice,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.importexport import (
|
||||||
database_config,
|
database_config,
|
||||||
database_metadata_config,
|
database_metadata_config,
|
||||||
dataset_cli_export,
|
dataset_cli_export,
|
||||||
|
@ -43,7 +45,9 @@ from tests.fixtures.importexport import (
|
||||||
dataset_metadata_config,
|
dataset_metadata_config,
|
||||||
dataset_ui_export,
|
dataset_ui_export,
|
||||||
)
|
)
|
||||||
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
|
from tests.integration_tests.fixtures.world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestExportDatasetsCommand(SupersetTestCase):
|
class TestExportDatasetsCommand(SupersetTestCase):
|
|
@ -26,7 +26,9 @@ from superset.connectors.sqla.models import SqlaTable
|
||||||
from superset.datasets.commands.exceptions import DatasetNotFoundError
|
from superset.datasets.commands.exceptions import DatasetNotFoundError
|
||||||
from superset.exceptions import SupersetException, SupersetGenericDBErrorException
|
from superset.exceptions import SupersetException, SupersetGenericDBErrorException
|
||||||
from superset.utils.core import get_example_database
|
from superset.utils.core import get_example_database
|
||||||
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
|
from tests.integration_tests.fixtures.birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
)
|
||||||
|
|
||||||
from .base_tests import db_insert_temp_object, SupersetTestCase
|
from .base_tests import db_insert_temp_object, SupersetTestCase
|
||||||
from .fixtures.datasource import datasource_post
|
from .fixtures.datasource import datasource_post
|
|
@ -15,7 +15,7 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.ascend import AscendEngineSpec
|
from superset.db_engine_specs.ascend import AscendEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestAscendDbEngineSpec(TestDbEngineSpec):
|
class TestAscendDbEngineSpec(TestDbEngineSpec):
|
|
@ -16,7 +16,7 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.athena import AthenaEngineSpec
|
from superset.db_engine_specs.athena import AthenaEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestAthenaDbEngineSpec(TestDbEngineSpec):
|
class TestAthenaDbEngineSpec(TestDbEngineSpec):
|
|
@ -31,8 +31,8 @@ from superset.db_engine_specs.sqlite import SqliteEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.sql_parse import ParsedQuery
|
from superset.sql_parse import ParsedQuery
|
||||||
from superset.utils.core import get_example_database
|
from superset.utils.core import get_example_database
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
from ..fixtures.energy_dashboard import load_energy_table_with_slice
|
from ..fixtures.energy_dashboard import load_energy_table_with_slice
|
||||||
from ..fixtures.pyodbcRow import Row
|
from ..fixtures.pyodbcRow import Row
|
|
@ -18,8 +18,8 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Tuple, Type
|
from typing import Tuple, Type
|
||||||
|
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
from superset.db_engine_specs.base import BaseEngineSpec
|
from superset.db_engine_specs.base import BaseEngineSpec
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from superset.utils.core import GenericDataType
|
from superset.utils.core import GenericDataType
|
|
@ -24,7 +24,7 @@ from superset.db_engine_specs.base import BaseEngineSpec
|
||||||
from superset.db_engine_specs.bigquery import BigQueryEngineSpec
|
from superset.db_engine_specs.bigquery import BigQueryEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.sql_parse import Table
|
from superset.sql_parse import Table
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestBigQueryDbEngineSpec(TestDbEngineSpec):
|
class TestBigQueryDbEngineSpec(TestDbEngineSpec):
|
|
@ -20,7 +20,7 @@ import pytest
|
||||||
|
|
||||||
from superset.db_engine_specs.clickhouse import ClickHouseEngineSpec
|
from superset.db_engine_specs.clickhouse import ClickHouseEngineSpec
|
||||||
from superset.db_engine_specs.exceptions import SupersetDBAPIDatabaseError
|
from superset.db_engine_specs.exceptions import SupersetDBAPIDatabaseError
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestClickHouseDbEngineSpec(TestDbEngineSpec):
|
class TestClickHouseDbEngineSpec(TestDbEngineSpec):
|
|
@ -17,7 +17,7 @@
|
||||||
from superset.connectors.sqla.models import SqlaTable, TableColumn
|
from superset.connectors.sqla.models import SqlaTable, TableColumn
|
||||||
from superset.db_engine_specs.crate import CrateEngineSpec
|
from superset.db_engine_specs.crate import CrateEngineSpec
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestCrateDbEngineSpec(TestDbEngineSpec):
|
class TestCrateDbEngineSpec(TestDbEngineSpec):
|
|
@ -15,7 +15,7 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.dremio import DremioEngineSpec
|
from superset.db_engine_specs.dremio import DremioEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestDremioDbEngineSpec(TestDbEngineSpec):
|
class TestDremioDbEngineSpec(TestDbEngineSpec):
|
|
@ -15,7 +15,7 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.drill import DrillEngineSpec
|
from superset.db_engine_specs.drill import DrillEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestDrillDbEngineSpec(TestDbEngineSpec):
|
class TestDrillDbEngineSpec(TestDbEngineSpec):
|
|
@ -19,9 +19,9 @@ from unittest import mock
|
||||||
from sqlalchemy import column
|
from sqlalchemy import column
|
||||||
|
|
||||||
from superset.db_engine_specs.druid import DruidEngineSpec
|
from superset.db_engine_specs.druid import DruidEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
from tests.fixtures.certificates import ssl_certificate
|
from tests.integration_tests.fixtures.certificates import ssl_certificate
|
||||||
from tests.fixtures.database import default_db_extra
|
from tests.integration_tests.fixtures.database import default_db_extra
|
||||||
|
|
||||||
|
|
||||||
class TestDruidDbEngineSpec(TestDbEngineSpec):
|
class TestDruidDbEngineSpec(TestDbEngineSpec):
|
|
@ -22,7 +22,7 @@ from superset.db_engine_specs.elasticsearch import (
|
||||||
ElasticSearchEngineSpec,
|
ElasticSearchEngineSpec,
|
||||||
OpenDistroEngineSpec,
|
OpenDistroEngineSpec,
|
||||||
)
|
)
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestElasticSearchDbEngineSpec(TestDbEngineSpec):
|
class TestElasticSearchDbEngineSpec(TestDbEngineSpec):
|
|
@ -16,7 +16,7 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.gsheets import GSheetsEngineSpec
|
from superset.db_engine_specs.gsheets import GSheetsEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestGsheetsDbEngineSpec(TestDbEngineSpec):
|
class TestGsheetsDbEngineSpec(TestDbEngineSpec):
|
|
@ -15,7 +15,7 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.hana import HanaEngineSpec
|
from superset.db_engine_specs.hana import HanaEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestHanaDbEngineSpec(TestDbEngineSpec):
|
class TestHanaDbEngineSpec(TestDbEngineSpec):
|
|
@ -25,7 +25,7 @@ from sqlalchemy.sql import select
|
||||||
from superset.db_engine_specs.hive import HiveEngineSpec, upload_to_s3
|
from superset.db_engine_specs.hive import HiveEngineSpec, upload_to_s3
|
||||||
from superset.exceptions import SupersetException
|
from superset.exceptions import SupersetException
|
||||||
from superset.sql_parse import Table, ParsedQuery
|
from superset.sql_parse import Table, ParsedQuery
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
|
|
||||||
def test_0_progress():
|
def test_0_progress():
|
|
@ -15,7 +15,7 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.impala import ImpalaEngineSpec
|
from superset.db_engine_specs.impala import ImpalaEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestImpalaDbEngineSpec(TestDbEngineSpec):
|
class TestImpalaDbEngineSpec(TestDbEngineSpec):
|
|
@ -15,7 +15,7 @@
|
||||||
# specific language governing permissions and limitations
|
# specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
from superset.db_engine_specs.kylin import KylinEngineSpec
|
from superset.db_engine_specs.kylin import KylinEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestKylinDbEngineSpec(TestDbEngineSpec):
|
class TestKylinDbEngineSpec(TestDbEngineSpec):
|
|
@ -27,7 +27,7 @@ from superset.db_engine_specs.base import BaseEngineSpec
|
||||||
from superset.db_engine_specs.mssql import MssqlEngineSpec
|
from superset.db_engine_specs.mssql import MssqlEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.utils.core import GenericDataType
|
from superset.utils.core import GenericDataType
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestMssqlEngineSpec(TestDbEngineSpec):
|
class TestMssqlEngineSpec(TestDbEngineSpec):
|
|
@ -22,7 +22,10 @@ from sqlalchemy.dialects.mysql import DATE, NVARCHAR, TEXT, VARCHAR
|
||||||
from superset.db_engine_specs.mysql import MySQLEngineSpec
|
from superset.db_engine_specs.mysql import MySQLEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.utils.core import GenericDataType
|
from superset.utils.core import GenericDataType
|
||||||
from tests.db_engine_specs.base_tests import assert_generic_types, TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import (
|
||||||
|
assert_generic_types,
|
||||||
|
TestDbEngineSpec,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestMySQLEngineSpecsDbEngineSpec(TestDbEngineSpec):
|
class TestMySQLEngineSpecsDbEngineSpec(TestDbEngineSpec):
|
|
@ -22,7 +22,7 @@ from sqlalchemy.dialects import oracle
|
||||||
from sqlalchemy.dialects.oracle import DATE, NVARCHAR, VARCHAR
|
from sqlalchemy.dialects.oracle import DATE, NVARCHAR, VARCHAR
|
||||||
|
|
||||||
from superset.db_engine_specs.oracle import OracleEngineSpec
|
from superset.db_engine_specs.oracle import OracleEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestOracleDbEngineSpec(TestDbEngineSpec):
|
class TestOracleDbEngineSpec(TestDbEngineSpec):
|
|
@ -17,7 +17,7 @@
|
||||||
from sqlalchemy import column
|
from sqlalchemy import column
|
||||||
|
|
||||||
from superset.db_engine_specs.pinot import PinotEngineSpec
|
from superset.db_engine_specs.pinot import PinotEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestPinotDbEngineSpec(TestDbEngineSpec):
|
class TestPinotDbEngineSpec(TestDbEngineSpec):
|
|
@ -24,9 +24,12 @@ from superset.db_engine_specs import get_engine_specs
|
||||||
from superset.db_engine_specs.postgres import PostgresEngineSpec
|
from superset.db_engine_specs.postgres import PostgresEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.utils.core import GenericDataType
|
from superset.utils.core import GenericDataType
|
||||||
from tests.db_engine_specs.base_tests import assert_generic_types, TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import (
|
||||||
from tests.fixtures.certificates import ssl_certificate
|
assert_generic_types,
|
||||||
from tests.fixtures.database import default_db_extra
|
TestDbEngineSpec,
|
||||||
|
)
|
||||||
|
from tests.integration_tests.fixtures.certificates import ssl_certificate
|
||||||
|
from tests.integration_tests.fixtures.database import default_db_extra
|
||||||
|
|
||||||
|
|
||||||
class TestPostgresDbEngineSpec(TestDbEngineSpec):
|
class TestPostgresDbEngineSpec(TestDbEngineSpec):
|
|
@ -26,7 +26,7 @@ from superset.db_engine_specs.presto import PrestoEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.sql_parse import ParsedQuery
|
from superset.sql_parse import ParsedQuery
|
||||||
from superset.utils.core import DatasourceName, GenericDataType
|
from superset.utils.core import DatasourceName, GenericDataType
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
class TestPrestoDbEngineSpec(TestDbEngineSpec):
|
|
@ -18,7 +18,7 @@ from textwrap import dedent
|
||||||
|
|
||||||
from superset.db_engine_specs.redshift import RedshiftEngineSpec
|
from superset.db_engine_specs.redshift import RedshiftEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestRedshiftDbEngineSpec(TestDbEngineSpec):
|
class TestRedshiftDbEngineSpec(TestDbEngineSpec):
|
|
@ -19,7 +19,7 @@ import json
|
||||||
from superset.db_engine_specs.snowflake import SnowflakeEngineSpec
|
from superset.db_engine_specs.snowflake import SnowflakeEngineSpec
|
||||||
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestSnowflakeDbEngineSpec(TestDbEngineSpec):
|
class TestSnowflakeDbEngineSpec(TestDbEngineSpec):
|
|
@ -17,7 +17,7 @@
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from superset.db_engine_specs.sqlite import SqliteEngineSpec
|
from superset.db_engine_specs.sqlite import SqliteEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestSQliteDbEngineSpec(TestDbEngineSpec):
|
class TestSQliteDbEngineSpec(TestDbEngineSpec):
|
|
@ -17,7 +17,7 @@
|
||||||
from sqlalchemy.engine.url import URL
|
from sqlalchemy.engine.url import URL
|
||||||
|
|
||||||
from superset.db_engine_specs.trino import TrinoEngineSpec
|
from superset.db_engine_specs.trino import TrinoEngineSpec
|
||||||
from tests.db_engine_specs.base_tests import TestDbEngineSpec
|
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
|
||||||
|
|
||||||
|
|
||||||
class TestTrinoDbEngineSpec(TestDbEngineSpec):
|
class TestTrinoDbEngineSpec(TestDbEngineSpec):
|
|
@ -22,7 +22,7 @@ from uuid import uuid4
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
from superset import db
|
from superset import db
|
||||||
from superset.connectors.druid.models import (
|
from superset.connectors.druid.models import (
|
||||||
DruidColumn,
|
DruidColumn,
|
|
@ -19,7 +19,7 @@ import json
|
||||||
import unittest
|
import unittest
|
||||||
from unittest.mock import Mock
|
from unittest.mock import Mock
|
||||||
|
|
||||||
import tests.test_app
|
import tests.integration_tests.test_app
|
||||||
import superset.connectors.druid.models as models
|
import superset.connectors.druid.models as models
|
||||||
from superset.connectors.druid.models import DruidColumn, DruidDatasource, DruidMetric
|
from superset.connectors.druid.models import DruidColumn, DruidDatasource, DruidMetric
|
||||||
from superset.exceptions import SupersetException
|
from superset.exceptions import SupersetException
|
|
@ -19,7 +19,7 @@ import json
|
||||||
import unittest
|
import unittest
|
||||||
from unittest.mock import Mock, patch
|
from unittest.mock import Mock, patch
|
||||||
|
|
||||||
import tests.test_app
|
import tests.integration_tests.test_app
|
||||||
import superset.connectors.druid.models as models
|
import superset.connectors.druid.models as models
|
||||||
from superset.connectors.druid.models import DruidColumn, DruidDatasource, DruidMetric
|
from superset.connectors.druid.models import DruidColumn, DruidDatasource, DruidMetric
|
||||||
from superset.exceptions import SupersetException
|
from superset.exceptions import SupersetException
|
|
@ -21,7 +21,7 @@ import unittest
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from unittest.mock import Mock, patch
|
from unittest.mock import Mock, patch
|
||||||
|
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
from superset import db, security_manager
|
from superset import db, security_manager
|
||||||
from superset.connectors.druid.views import (
|
from superset.connectors.druid.views import (
|
|
@ -26,7 +26,7 @@ from unittest import mock
|
||||||
|
|
||||||
from superset import app
|
from superset import app
|
||||||
from superset.utils import core as utils
|
from superset.utils import core as utils
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
|
|
||||||
from .utils import read_fixture
|
from .utils import read_fixture
|
||||||
|
|
|
@ -30,7 +30,7 @@ from superset.utils.log import (
|
||||||
DBEventLogger,
|
DBEventLogger,
|
||||||
get_event_logger_from_cfg_value,
|
get_event_logger_from_cfg_value,
|
||||||
)
|
)
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
|
|
||||||
class TestEventLogger(unittest.TestCase):
|
class TestEventLogger(unittest.TestCase):
|
|
@ -17,7 +17,7 @@
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
from superset import is_feature_enabled
|
from superset import is_feature_enabled
|
||||||
from tests.base_tests import SupersetTestCase
|
from tests.integration_tests.base_tests import SupersetTestCase
|
||||||
|
|
||||||
|
|
||||||
class TestFeatureFlag(SupersetTestCase):
|
class TestFeatureFlag(SupersetTestCase):
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from .birth_names_dashboard import (
|
||||||
|
load_birth_names_dashboard_with_slices,
|
||||||
|
load_birth_names_dashboard_with_slices_module_scope,
|
||||||
|
)
|
||||||
|
from .energy_dashboard import load_energy_table_with_slice
|
||||||
|
from .public_role import public_role_like_gamma, public_role_like_test_role
|
||||||
|
from .unicode_dashboard import (
|
||||||
|
load_unicode_dashboard_with_position,
|
||||||
|
load_unicode_dashboard_with_slice,
|
||||||
|
)
|
||||||
|
from .world_bank_dashboard import (
|
||||||
|
load_world_bank_dashboard_with_slices,
|
||||||
|
load_world_bank_dashboard_with_slices_module_scope,
|
||||||
|
)
|
|
@ -31,8 +31,8 @@ from superset.models.core import Database
|
||||||
from superset.models.dashboard import Dashboard
|
from superset.models.dashboard import Dashboard
|
||||||
from superset.models.slice import Slice
|
from superset.models.slice import Slice
|
||||||
from superset.utils.core import get_example_database
|
from superset.utils.core import get_example_database
|
||||||
from tests.dashboard_utils import create_table_for_dashboard
|
from tests.integration_tests.dashboard_utils import create_table_for_dashboard
|
||||||
from tests.test_app import app
|
from tests.integration_tests.test_app import app
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue