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:
ofekisr 2021-07-01 18:03:07 +03:00 committed by GitHub
parent 55d0371b92
commit b5119b8dff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
172 changed files with 456 additions and 262 deletions

View File

@ -192,7 +192,7 @@ cypress-run-all() {
say "::endgroup::"
# 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
kill $flaskProcessId

View File

@ -25,7 +25,7 @@ jobs:
env:
FLASK_ENV: development
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
PYTHONPATH: ${{ github.workspace }}
REDIS_PORT: 16379

View File

@ -17,7 +17,7 @@ jobs:
python-version: [3.8]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.superset_test_config
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
REDIS_PORT: 16379
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
SUPERSET__SQLALCHEMY_EXAMPLES_URI: presto://localhost:15433/memory/default
@ -91,7 +91,7 @@ jobs:
python-version: [3.8]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.superset_test_config
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
REDIS_PORT: 16379
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
SUPERSET__SQLALCHEMY_EXAMPLES_URI: hive://localhost:10000/default

View File

@ -17,7 +17,7 @@ jobs:
python-version: [3.7]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.superset_test_config
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
REDIS_PORT: 16379
SUPERSET__SQLALCHEMY_DATABASE_URI: |
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]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.superset_test_config
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
REDIS_PORT: 16379
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
services:
@ -144,7 +144,7 @@ jobs:
python-version: [3.7]
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.superset_test_config
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
REDIS_PORT: 16379
SUPERSET__SQLALCHEMY_DATABASE_URI: |
sqlite:///${{ github.workspace }}/.temp/unittest.db

View File

@ -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:
```bash
export SUPERSET_CONFIG=tests.superset_test_config
export SUPERSET_CONFIG=tests.integration_tests.superset_test_config
export SUPERSET_TESTENV=true
export ENABLE_REACT_CRUD_VIEWS=true
export CYPRESS_BASE_URL="http://localhost:8081"

View File

@ -21,7 +21,7 @@ set -eo pipefail
REQUIREMENTS_LOCAL="/app/docker/requirements-local.txt"
# If Cypress run overwrite the password for admin and export env variables
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 ENABLE_REACT_CRUD_VIEWS=true
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset

View File

@ -18,7 +18,7 @@
#
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
echo "Superset config module: $SUPERSET_CONFIG"

View File

@ -62,7 +62,7 @@ DB_NAME="test"
DB_USER="superset"
DB_PASSWORD="superset"
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_RESET_DB=1
RUN_TESTS=1

View File

@ -19,13 +19,19 @@
import json
import unittest
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
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.test_app import app # isort:skip
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
from tests.integration_tests.test_app import app # isort:skip
from superset import db, security_manager
from superset.connectors.connector_registry import ConnectorRegistry
from superset.connectors.druid.models import DruidDatasource

View File

@ -45,9 +45,9 @@ from superset.views.alerts import (
AlertModelView,
AlertObservationModelView,
)
from tests.base_tests import SupersetTestCase
from tests.test_app import app
from tests.utils import read_fixture
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.test_app import app
from tests.integration_tests.utils import read_fixture
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

View File

@ -22,12 +22,12 @@ import pytest
import prison
from sqlalchemy.sql import func
import tests.test_app
import tests.integration_tests.test_app
from superset import db
from superset.models.annotations import Annotation, AnnotationLayer
from tests.base_tests import SupersetTestCase
from tests.annotation_layers.fixtures import (
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.annotation_layers.fixtures import (
create_annotation_layers,
get_end_dttm,
get_start_dttm,

View File

@ -22,7 +22,7 @@ from typing import Optional
from superset import db
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

View File

@ -19,8 +19,8 @@ from typing import Optional
from unittest import mock
from superset.extensions import async_query_manager
from tests.base_tests import SupersetTestCase
from tests.test_app import app
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.test_app import app
class TestAsyncEventApi(SupersetTestCase):

View File

@ -16,13 +16,15 @@
# under the License.
# isort:skip_file
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
from flask_appbuilder.models.sqla.interface import SQLAInterface
import prison
import tests.test_app
import tests.integration_tests.test_app
from superset import db, security_manager
from superset.extensions import appbuilder
from superset.models.dashboard import Dashboard

View File

@ -32,7 +32,7 @@ from sqlalchemy.ext.declarative.api import DeclarativeMeta
from sqlalchemy.orm import Session
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 import db, security_manager
from superset.connectors.base.models import BaseDatasource

View File

@ -22,7 +22,9 @@ import pytest
from superset import app, db
from superset.extensions import cache_manager
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

View File

@ -18,11 +18,11 @@
"""Unit tests for Superset"""
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.models.cache import CacheKey
from tests.base_tests import (
from tests.integration_tests.base_tests import (
SupersetTestCase,
post_assert_metric,
test_client,

View File

@ -23,16 +23,18 @@ import string
import time
import unittest.mock as mock
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 flask
from flask import current_app
from tests.base_tests import login
from tests.conftest import CTAS_SCHEMA_NAME
from tests.test_app import app
from tests.integration_tests.base_tests import login
from tests.integration_tests.conftest import CTAS_SCHEMA_NAME
from tests.integration_tests.test_app import app
from superset import db, sql_lab
from superset.result_set import SupersetResultSet
from superset.db_engine_specs.base import BaseEngineSpec

View File

@ -23,10 +23,12 @@ from typing import Optional
from unittest import mock
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 tests.insert_chart_mixin import InsertChartMixin
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
from tests.integration_tests.insert_chart_mixin import InsertChartMixin
from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
)
import humanize
import prison
@ -35,8 +37,10 @@ import yaml
from sqlalchemy import and_, or_
from sqlalchemy.sql import func
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
from tests.test_app import app
from tests.integration_tests.fixtures.world_bank_dashboard import (
load_world_bank_dashboard_with_slices,
)
from tests.integration_tests.test_app import app
from superset.charts.commands.data import ChartDataCommand
from superset.connectors.sqla.models import SqlaTable, TableColumn
from superset.errors import SupersetErrorType
@ -55,21 +59,32 @@ from superset.utils.core import (
)
from tests.base_api_tests import ApiOwnersTestCaseMixin
from tests.base_tests import SupersetTestCase, post_assert_metric, test_client
from tests.integration_tests.base_api_tests import ApiOwnersTestCaseMixin
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_metadata_config,
database_config,
dataset_config,
dataset_metadata_config,
)
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.fixtures.query_context import get_query_context, ANNOTATION_LAYERS
from tests.fixtures.unicode_dashboard import load_unicode_dashboard_with_slice
from tests.annotation_layers.fixtures import create_annotation_layers
from tests.utils.get_dashboards import get_dashboards_ids
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
from tests.integration_tests.fixtures.query_context import (
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"
CHARTS_FIXTURE_COUNT = 10

View File

@ -31,9 +31,11 @@ from superset.commands.importers.exceptions import IncorrectVersionError
from superset.connectors.sqla.models import SqlaTable
from superset.models.core import Database
from superset.models.slice import Slice
from tests.base_tests import SupersetTestCase
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.fixtures.importexport import (
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
from tests.integration_tests.fixtures.importexport import (
chart_config,
chart_metadata_config,
database_config,

View File

@ -19,11 +19,11 @@
from typing import Any, Dict, Tuple
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.common.query_context import QueryContext
from tests.base_tests import SupersetTestCase
from tests.fixtures.query_context import get_query_context
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.query_context import get_query_context
class TestSchema(SupersetTestCase):

View File

@ -27,7 +27,9 @@ from freezegun import freeze_time
import superset.cli
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")

View File

@ -18,7 +18,7 @@
from superset.commands.exceptions import CommandInvalidError
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):

View File

@ -19,8 +19,8 @@
import unittest
from typing import Any, Dict
from tests.base_tests import SupersetTestCase
from tests.test_app import app
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.test_app import app
from superset import db
from superset.connectors.sqla.models import SqlaTable

View File

@ -22,7 +22,7 @@ import pytest
from sqlalchemy.engine import Engine
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.extensions import feature_flag_manager
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")
def setup_sample_data() -> Any:
# 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.
with app.app_context():
setup_presto_if_needed()
@ -115,7 +115,7 @@ def setup_presto_if_needed():
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:

View File

@ -25,7 +25,9 @@ import json
import logging
from typing import Dict, List
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 pytz
@ -39,9 +41,11 @@ import sqlalchemy as sqla
from sqlalchemy.exc import SQLAlchemyError
from superset.models.cache import CacheKey
from superset.utils.core import get_example_database
from tests.conftest import with_feature_flags
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.test_app import app
from tests.integration_tests.conftest import with_feature_flags
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
from tests.integration_tests.test_app import app
import superset.views.utils
from superset import (
dataframe,
@ -66,7 +70,9 @@ from superset.views import core as views
from superset.views.database.views import DatabaseView
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__)
@ -742,7 +748,9 @@ class TestCore(SupersetTestCase):
data = self.run_sql(sql, "fdaklj3ws")
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")
def test_custom_templated_sql_json(self, sql_lab_mock, mock_dt) -> None:
"""Test sqllab receives macros expanded query."""

View File

@ -21,12 +21,12 @@ import pytest
import prison
from sqlalchemy.sql import func
import tests.test_app
import tests.integration_tests.test_app
from superset import db
from superset.models.core import CssTemplate
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

View File

@ -27,12 +27,12 @@ import pandas as pd
import pytest
from superset.sql_parse import Table
from tests.conftest import ADMIN_SCHEMA_NAME
from tests.test_app import app # isort:skip
from tests.integration_tests.conftest import ADMIN_SCHEMA_NAME
from tests.integration_tests.test_app import app # isort:skip
from superset import db
from superset.models.core import Database
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__)
@ -136,7 +136,7 @@ def upload_excel(
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 upload_prefix: The S3 prefix

View File

@ -25,17 +25,25 @@ import pytest
from flask import escape, url_for
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.connectors.sqla.models import SqlaTable
from superset.models import core as models
from superset.models.dashboard import Dashboard
from superset.models.slice import Slice
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.fixtures.public_role import public_role_like_gamma
from tests.fixtures.unicode_dashboard import load_unicode_dashboard_with_position
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
)
from tests.integration_tests.fixtures.energy_dashboard import (
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

View File

@ -23,7 +23,7 @@ from typing import List, Optional
from unittest.mock import patch
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 prison
@ -40,9 +40,9 @@ from superset.models.slice import Slice
from superset.utils.core import backend
from superset.views.base import generate_download_headers
from tests.base_api_tests import ApiOwnersTestCaseMixin
from tests.base_tests import SupersetTestCase
from tests.fixtures.importexport import (
from tests.integration_tests.base_api_tests import ApiOwnersTestCaseMixin
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.importexport import (
chart_config,
database_config,
dashboard_config,
@ -51,9 +51,13 @@ from tests.fixtures.importexport import (
dataset_config,
dataset_metadata_config,
)
from tests.utils.get_dashboards import get_dashboards_ids
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
from tests.integration_tests.utils.get_dashboards import get_dashboards_ids
from tests.integration_tests.fixtures.birth_names_dashboard import (
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

View File

@ -21,10 +21,14 @@ import prison
from flask import Response
from superset import app, security_manager
from tests.base_tests import SupersetTestCase
from tests.dashboards.consts import *
from tests.dashboards.dashboard_test_utils import build_save_dash_parts
from tests.dashboards.superset_factory_util import delete_all_inserted_objects
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.dashboards.consts import *
from tests.integration_tests.dashboards.dashboard_test_utils import (
build_save_dash_parts,
)
from tests.integration_tests.dashboards.superset_factory_util import (
delete_all_inserted_objects,
)
class DashboardTestCase(SupersetTestCase):

View File

@ -38,8 +38,8 @@ from superset.dashboards.commands.importers import v0, v1
from superset.models.core import Database
from superset.models.dashboard import Dashboard
from superset.models.slice import Slice
from tests.base_tests import SupersetTestCase
from tests.fixtures.importexport import (
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.importexport import (
chart_config,
dashboard_config,
dashboard_export,
@ -48,7 +48,9 @@ from tests.fixtures.importexport import (
dataset_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):

View File

@ -21,12 +21,14 @@ import time
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.dashboards.dao import DashboardDAO
from superset.models.dashboard import Dashboard
from tests.base_tests import SupersetTestCase
from tests.fixtures.world_bank_dashboard import load_world_bank_dashboard_with_slices
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.world_bank_dashboard import (
load_world_bank_dashboard_with_slices,
)
class TestDashboardDAO(SupersetTestCase):

View File

@ -25,7 +25,7 @@ from superset import appbuilder, db, security_manager
from superset.connectors.sqla.models import SqlaTable
from superset.models.dashboard import Dashboard
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__)

View File

@ -19,7 +19,7 @@ from typing import List, Optional
from flask import escape, Response
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):

View File

@ -23,11 +23,13 @@ from flask import escape
from superset import app
from superset.models import core as models
from tests.dashboards.base_case import DashboardTestCase
from tests.dashboards.consts import *
from tests.dashboards.dashboard_test_utils import *
from tests.dashboards.superset_factory_util import *
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.integration_tests.dashboards.base_case import DashboardTestCase
from tests.integration_tests.dashboards.consts import *
from tests.integration_tests.dashboards.dashboard_test_utils import *
from tests.integration_tests.dashboards.superset_factory_util import *
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
class TestDashboardDatasetSecurity(DashboardTestCase):

View File

@ -19,17 +19,21 @@ from unittest import mock
import pytest
from tests.dashboards.dashboard_test_utils import *
from tests.dashboards.security.base_case import BaseTestDashboardSecurity
from tests.dashboards.superset_factory_util import (
from tests.integration_tests.dashboards.dashboard_test_utils import *
from tests.integration_tests.dashboards.security.base_case import (
BaseTestDashboardSecurity,
)
from tests.integration_tests.dashboards.superset_factory_util import (
create_dashboard_to_db,
create_database_to_db,
create_datasource_table_to_db,
create_slice_to_db,
)
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
from tests.fixtures.public_role import public_role_like_gamma
from tests.fixtures.query_context import get_query_context
from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
)
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"

View File

@ -30,7 +30,11 @@ from superset.models.dashboard import (
DashboardRoles,
)
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__)

View File

@ -43,19 +43,27 @@ from superset.errors import SupersetError
from superset.models.core import Database, ConfigurationMethod
from superset.models.reports import ReportSchedule, ReportScheduleType
from superset.utils.core import get_example_database, get_main_database
from tests.base_tests import SupersetTestCase
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
from tests.fixtures.certificates import ssl_certificate
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.fixtures.importexport import (
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
)
from tests.integration_tests.fixtures.certificates import ssl_certificate
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,
dataset_config,
database_metadata_config,
dataset_metadata_config,
)
from tests.fixtures.unicode_dashboard import load_unicode_dashboard_with_position
from tests.test_app import app
from tests.integration_tests.fixtures.unicode_dashboard import (
load_unicode_dashboard_with_position,
)
from tests.integration_tests.test_app import app
class TestDatabaseApi(SupersetTestCase):

View File

@ -42,10 +42,14 @@ from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
from superset.exceptions import SupersetErrorsException, SupersetSecurityException
from superset.models.core import Database
from superset.utils.core import backend, get_example_database
from tests.base_tests import SupersetTestCase
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.fixtures.importexport import (
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
)
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
from tests.integration_tests.fixtures.importexport import (
database_config,
database_metadata_config,
dataset_config,

View File

@ -18,7 +18,7 @@
import numpy as np
import pandas as pd
import tests.test_app
import tests.integration_tests.test_app
from superset.dataframe import df_to_records
from superset.db_engine_specs import BaseEngineSpec
from superset.result_set import SupersetResultSet

View File

@ -38,11 +38,15 @@ from superset.extensions import db, security_manager
from superset.models.core import Database
from superset.utils.core import backend, get_example_database, get_main_database
from superset.utils.dict_import_export import export_to_dict
from tests.base_tests import SupersetTestCase
from tests.conftest import CTAS_SCHEMA_NAME
from tests.fixtures.birth_names_dashboard import load_birth_names_dashboard_with_slices
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.fixtures.importexport import (
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.conftest import CTAS_SCHEMA_NAME
from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
)
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
from tests.integration_tests.fixtures.importexport import (
database_config,
database_metadata_config,
dataset_config,

View File

@ -33,9 +33,11 @@ from superset.datasets.commands.export import ExportDatasetsCommand
from superset.datasets.commands.importers import v0, v1
from superset.models.core import Database
from superset.utils.core import get_example_database
from tests.base_tests import SupersetTestCase
from tests.fixtures.energy_dashboard import load_energy_table_with_slice
from tests.fixtures.importexport import (
from tests.integration_tests.base_tests import SupersetTestCase
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
from tests.integration_tests.fixtures.importexport import (
database_config,
database_metadata_config,
dataset_cli_export,
@ -43,7 +45,9 @@ from tests.fixtures.importexport import (
dataset_metadata_config,
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):

View File

@ -26,7 +26,9 @@ from superset.connectors.sqla.models import SqlaTable
from superset.datasets.commands.exceptions import DatasetNotFoundError
from superset.exceptions import SupersetException, SupersetGenericDBErrorException
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 .fixtures.datasource import datasource_post

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
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):

View File

@ -16,7 +16,7 @@
# under the License.
from superset.db_engine_specs.athena import AthenaEngineSpec
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):

View File

@ -31,8 +31,8 @@ from superset.db_engine_specs.sqlite import SqliteEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
from superset.sql_parse import ParsedQuery
from superset.utils.core import get_example_database
from tests.db_engine_specs.base_tests import TestDbEngineSpec
from tests.test_app import app
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
from tests.integration_tests.test_app import app
from ..fixtures.energy_dashboard import load_energy_table_with_slice
from ..fixtures.pyodbcRow import Row

View File

@ -18,8 +18,8 @@
from datetime import datetime
from typing import Tuple, Type
from tests.test_app import app
from tests.base_tests import SupersetTestCase
from tests.integration_tests.test_app import app
from tests.integration_tests.base_tests import SupersetTestCase
from superset.db_engine_specs.base import BaseEngineSpec
from superset.models.core import Database
from superset.utils.core import GenericDataType

View File

@ -24,7 +24,7 @@ from superset.db_engine_specs.base import BaseEngineSpec
from superset.db_engine_specs.bigquery import BigQueryEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
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):

View File

@ -20,7 +20,7 @@ import pytest
from superset.db_engine_specs.clickhouse import ClickHouseEngineSpec
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):

View File

@ -17,7 +17,7 @@
from superset.connectors.sqla.models import SqlaTable, TableColumn
from superset.db_engine_specs.crate import CrateEngineSpec
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):

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
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):

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
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):

View File

@ -19,9 +19,9 @@ from unittest import mock
from sqlalchemy import column
from superset.db_engine_specs.druid import DruidEngineSpec
from tests.db_engine_specs.base_tests import TestDbEngineSpec
from tests.fixtures.certificates import ssl_certificate
from tests.fixtures.database import default_db_extra
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
from tests.integration_tests.fixtures.certificates import ssl_certificate
from tests.integration_tests.fixtures.database import default_db_extra
class TestDruidDbEngineSpec(TestDbEngineSpec):

View File

@ -22,7 +22,7 @@ from superset.db_engine_specs.elasticsearch import (
ElasticSearchEngineSpec,
OpenDistroEngineSpec,
)
from tests.db_engine_specs.base_tests import TestDbEngineSpec
from tests.integration_tests.db_engine_specs.base_tests import TestDbEngineSpec
class TestElasticSearchDbEngineSpec(TestDbEngineSpec):

View File

@ -16,7 +16,7 @@
# under the License.
from superset.db_engine_specs.gsheets import GSheetsEngineSpec
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):

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
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):

View File

@ -25,7 +25,7 @@ from sqlalchemy.sql import select
from superset.db_engine_specs.hive import HiveEngineSpec, upload_to_s3
from superset.exceptions import SupersetException
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():

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
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):

View File

@ -15,7 +15,7 @@
# specific language governing permissions and limitations
# under the License.
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):

View File

@ -27,7 +27,7 @@ from superset.db_engine_specs.base import BaseEngineSpec
from superset.db_engine_specs.mssql import MssqlEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
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):

View File

@ -22,7 +22,10 @@ from sqlalchemy.dialects.mysql import DATE, NVARCHAR, TEXT, VARCHAR
from superset.db_engine_specs.mysql import MySQLEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
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):

View File

@ -22,7 +22,7 @@ from sqlalchemy.dialects import oracle
from sqlalchemy.dialects.oracle import DATE, NVARCHAR, VARCHAR
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):

View File

@ -17,7 +17,7 @@
from sqlalchemy import column
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):

View File

@ -24,9 +24,12 @@ from superset.db_engine_specs import get_engine_specs
from superset.db_engine_specs.postgres import PostgresEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
from superset.utils.core import GenericDataType
from tests.db_engine_specs.base_tests import assert_generic_types, TestDbEngineSpec
from tests.fixtures.certificates import ssl_certificate
from tests.fixtures.database import default_db_extra
from tests.integration_tests.db_engine_specs.base_tests import (
assert_generic_types,
TestDbEngineSpec,
)
from tests.integration_tests.fixtures.certificates import ssl_certificate
from tests.integration_tests.fixtures.database import default_db_extra
class TestPostgresDbEngineSpec(TestDbEngineSpec):

View File

@ -26,7 +26,7 @@ from superset.db_engine_specs.presto import PrestoEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
from superset.sql_parse import ParsedQuery
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):

View File

@ -18,7 +18,7 @@ from textwrap import dedent
from superset.db_engine_specs.redshift import RedshiftEngineSpec
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):

View File

@ -19,7 +19,7 @@ import json
from superset.db_engine_specs.snowflake import SnowflakeEngineSpec
from superset.errors import ErrorLevel, SupersetError, SupersetErrorType
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):

View File

@ -17,7 +17,7 @@
from unittest import mock
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):

View File

@ -17,7 +17,7 @@
from sqlalchemy.engine.url import URL
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):

View File

@ -22,7 +22,7 @@ from uuid import uuid4
import yaml
from tests.test_app import app
from tests.integration_tests.test_app import app
from superset import db
from superset.connectors.druid.models import (
DruidColumn,

View File

@ -19,7 +19,7 @@ import json
import unittest
from unittest.mock import Mock
import tests.test_app
import tests.integration_tests.test_app
import superset.connectors.druid.models as models
from superset.connectors.druid.models import DruidColumn, DruidDatasource, DruidMetric
from superset.exceptions import SupersetException

View File

@ -19,7 +19,7 @@ import json
import unittest
from unittest.mock import Mock, patch
import tests.test_app
import tests.integration_tests.test_app
import superset.connectors.druid.models as models
from superset.connectors.druid.models import DruidColumn, DruidDatasource, DruidMetric
from superset.exceptions import SupersetException

View File

@ -21,7 +21,7 @@ import unittest
from datetime import datetime
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.connectors.druid.views import (

View File

@ -26,7 +26,7 @@ from unittest import mock
from superset import app
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

View File

@ -30,7 +30,7 @@ from superset.utils.log import (
DBEventLogger,
get_event_logger_from_cfg_value,
)
from tests.test_app import app
from tests.integration_tests.test_app import app
class TestEventLogger(unittest.TestCase):

View File

@ -17,7 +17,7 @@
from unittest.mock import patch
from superset import is_feature_enabled
from tests.base_tests import SupersetTestCase
from tests.integration_tests.base_tests import SupersetTestCase
class TestFeatureFlag(SupersetTestCase):

View File

@ -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,
)

View File

@ -31,8 +31,8 @@ from superset.models.core import Database
from superset.models.dashboard import Dashboard
from superset.models.slice import Slice
from superset.utils.core import get_example_database
from tests.dashboard_utils import create_table_for_dashboard
from tests.test_app import app
from tests.integration_tests.dashboard_utils import create_table_for_dashboard
from tests.integration_tests.test_app import app
@pytest.fixture()

Some files were not shown because too many files have changed in this diff Show More