# # 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. # # Remember to start celery workers to run celery tests, e.g. # celery --app=superset.tasks.celery_app:app worker -Ofair -c 2 [testenv] basepython = python3.10 ignore_basepython_conflict = true commands = superset db upgrade superset init # use -s to be able to use break pointers. # no args or tests/* can be passed as an argument to run all tests pytest -s {posargs} deps = -rrequirements/development.txt setenv = PYTHONPATH = {toxinidir} SUPERSET_TESTENV = true SUPERSET_CONFIG = tests.integration_tests.superset_test_config SUPERSET_HOME = {envtmpdir} mysql: SUPERSET__SQLALCHEMY_DATABASE_URI = mysql://mysqluser:mysqluserpassword@localhost/superset?charset=utf8 postgres: SUPERSET__SQLALCHEMY_DATABASE_URI = postgresql+psycopg2://superset:superset@localhost/test sqlite: SUPERSET__SQLALCHEMY_DATABASE_URI = sqlite:////{envtmpdir}/superset.db SUPERSET__SQLALCHEMY_EXAMPLES_URI = sqlite:////{envtmpdir}/examples.db mysql-presto: SUPERSET__SQLALCHEMY_DATABASE_URI = mysql://mysqluser:mysqluserpassword@localhost/superset?charset=utf8 # docker run -p 8080:8080 --name presto starburstdata/presto mysql-presto: SUPERSET__SQLALCHEMY_EXAMPLES_URI = presto://localhost:8080/memory/default # based on https://github.com/big-data-europe/docker-hadoop # clone the repo & run docker compose up -d to test locally mysql-hive: SUPERSET__SQLALCHEMY_DATABASE_URI = mysql://mysqluser:mysqluserpassword@localhost/superset?charset=utf8 mysql-hive: SUPERSET__SQLALCHEMY_EXAMPLES_URI = hive://localhost:10000/default # make sure that directory is accessible by docker hive: UPLOAD_FOLDER = /tmp/.superset/app/static/uploads/ usedevelop = true allowlist_externals = npm pkill [testenv:cypress] setenv = PYTHONPATH = {toxinidir} SUPERSET_TESTENV = true SUPERSET_CONFIG = tests.integration_tests.superset_test_config SUPERSET_HOME = {envtmpdir} commands = npm install -g npm@'>=6.5.0' pip install -e {toxinidir}/ {toxinidir}/superset-frontend/cypress_build.sh commands_post = pkill -if "python {envbindir}/flask" [testenv:cypress-dashboard] setenv = PYTHONPATH = {toxinidir} SUPERSET_TESTENV = true SUPERSET_CONFIG = tests.integration_tests.superset_test_config SUPERSET_HOME = {envtmpdir} commands = npm install -g npm@'>=6.5.0' pip install -e {toxinidir}/ {toxinidir}/superset-frontend/cypress_build.sh dashboard commands_post = pkill -if "python {envbindir}/flask" [testenv:cypress-explore] setenv = PYTHONPATH = {toxinidir} SUPERSET_TESTENV = true SUPERSET_CONFIG = tests.integration_tests.superset_test_config SUPERSET_HOME = {envtmpdir} commands = npm install -g npm@'>=6.5.0' pip install -e {toxinidir}/ {toxinidir}/superset-frontend/cypress_build.sh explore commands_post = pkill -if "python {envbindir}/flask" [testenv:cypress-sqllab] setenv = PYTHONPATH = {toxinidir} SUPERSET_TESTENV = true SUPERSET_CONFIG = tests.integration_tests.superset_test_config SUPERSET_HOME = {envtmpdir} commands = npm install -g npm@'>=6.5.0' pip install -e {toxinidir}/ {toxinidir}/superset-frontend/cypress_build.sh sqllab commands_post = pkill -if "python {envbindir}/flask" [testenv:cypress-sqllab-backend-persist] setenv = PYTHONPATH = {toxinidir} SUPERSET_TESTENV = true SUPERSET_CONFIG = tests.integration_tests.superset_test_config SUPERSET_HOME = {envtmpdir} commands = npm install -g npm@'>=6.5.0' pip install -e {toxinidir}/ {toxinidir}/superset-frontend/cypress_build.sh sqllab commands_post = pkill -if "python {envbindir}/flask" [testenv:eslint] changedir = {toxinidir}/superset-frontend commands = npm run lint deps = [testenv:fossa] commands = {toxinidir}/scripts/fossa.sh deps = passenv = * [testenv:javascript] commands = npm install -g npm@'>=6.5.0' {toxinidir}/superset-frontend/js_build.sh deps = [testenv:license-check] commands = {toxinidir}/scripts/check_license.sh passenv = * whitelist_externals = {toxinidir}/scripts/check_license.sh deps = [testenv:pre-commit] commands = pre-commit run --all-files deps = -rrequirements/development.txt skip_install = true [testenv:pylint] commands = pylint superset deps = -rrequirements/development.txt [testenv:thumbnails] setenv = SUPERSET_CONFIG = tests.integration_tests.superset_test_config_thumbnails deps = -rrequirements/development.txt [tox] envlist = cypress-dashboard cypress-explore cypress-sqllab cypress-sqllab-backend-persist eslint fossa javascript license-check pre-commit pylint skipsdist = true