Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application
Switch branches/tags
Clone or download
xtinec and williaster [refactor] Migrate from Mocha+Chai to Jest (#6079)
* [refactor] Migrate from Mocha+Chai to Jest

This change migrates all the existing unit tests
- to Jest's global expect and matchers from chai's imported expect, asserts and matchers.
- to Jest's describe/test from mocha's describe/it

The majority of the mechanical changes to tests are achieved through running jest-codemods. The only two note-worthy manual tweaks:
1. Setting a testURL of http://localhost in jest config and adjusting a few tests to leverage this value instead of relying on about:blank.
2. Re-enabling ExploreChartPanel_spec which was previously commented out as we cannot have empty tests with nothing in it with Jest. :)

This change also removes dependencies to Mocha and Chai.

* Remove the test:one command as it now does the same thing as test.

* Fixing lint errors. The diff looks large but is large done through `yarn run lint --fix`

The only noteworthy change is the one in eslintrc for tests. The env has been updated from mocha to jest.

* Adding eslint-plugin-jest and further modify tests.

- One small fix in sqllab's Timer Spec for a test that is not using the spy it created for testing.
- Deletion of a duplicated test caught by eslint-plugin-jest.

* - Make istanbul coverage work with Jest.

- Remove dependency on stand-alone istanbul and babel-istanbul as they're built-into jest. Yes!

* Attempt to fix dynamic imports in tests.

* run sequentially and log heap usage

* - tweaking maxworkers for travis and specifying coverageDirectory for codecov

- remove dynamic import in shim.js now that it is set in babelrc for tests only.
Latest commit 9029701 Oct 15, 2018
Failed to load latest commit information.
contrib/docker fix dependency issue #6086 (#6102) Oct 15, 2018
docs remove utf8 declaration (#6096) Oct 15, 2018
install/helm/superset Install superset in Kubernetes with helm chart (#4923) May 4, 2018
scripts remove utf8 declaration (#6096) Oct 15, 2018
superset [refactor] Migrate from Mocha+Chai to Jest (#6079) Oct 15, 2018
tests remove utf8 declaration (#6096) Oct 15, 2018
.gitignore Add cypress artifacts directory (videos/screenshots) to gitignore and… Sep 14, 2018
.pylintrc Increase pylint jobs (#5646) Aug 22, 2018
.travis.yml Deprecate support for Python < 3.6 (#5985) Oct 5, 2018
CHANGELOG.md CHANGELOG entry for 0.25.0 to 0.26.0 (#5334) Jul 7, 2018
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#3991) Dec 2, 2017
CONTRIBUTING.md [refactor] Migrate from Mocha+Chai to Jest (#6079) Oct 15, 2018
ISSUE_TEMPLATE.md [WiP] rename project from Caravel to Superset (#1576) Nov 10, 2016
LICENSE.txt LICENSE Jul 21, 2015
MANIFEST.in Include README in MANIFEST (#5531) Aug 1, 2018
README.md Fix link formating in README.md (#6097) Oct 14, 2018
RELEASING.md Clean up CONTRIBUTING.md: (#5911) Sep 19, 2018
UPDATING.md Fix top groups with user defined metrics (#6073) Oct 11, 2018
alembic.ini [WiP] rename project from Caravel to Superset (#1576) Nov 10, 2016
babel-node [adhoc-filters] Adding adhoc-filters to all viz types (#5206) Jun 18, 2018
gen_changelog.sh CHANGELOG for 0.20.0 (#3545) Sep 28, 2017
pypi_push.sh Make Pypi upload support markdown (#5352) Jul 16, 2018
requirements-dev.txt remove utf8 declaration (#6096) Oct 15, 2018
requirements.txt remove six dependency (#6091) Oct 13, 2018
setup.cfg [travis/tox] Restructuring configuration (#4552) Apr 10, 2018
setup.py remove utf8 declaration (#6096) Oct 15, 2018
tox.ini remove redundant mysql (#6049) Oct 6, 2018



Build Status PyPI version Coverage Status PyPI Join the chat at https://gitter.im/airbnb/superset Documentation dependencies Status


Apache Superset (incubating) is a modern, enterprise-ready business intelligence web application

[this project used to be named Caravel, and Panoramix in the past]

Screenshots & Gifs

View Dashboards

Slice & dice your data

Query and visualize your data with SQL Lab

Visualize geospatial data with deck.gl

Choose from a wide array of visualizations

Apache Superset

Apache Superset is a data exploration and visualization web application.

Superset provides:

  • An intuitive interface to explore and visualize datasets, and create interactive dashboards.
  • A wide array of beautiful visualizations to showcase your data.
  • Easy, code-free, user flows to drill down and slice and dice the data underlying exposed dashboards. The dashboards and charts acts as a starting point for deeper analysis.
  • A state of the art SQL editor/IDE exposing a rich metadata browser, and an easy workflow to create visualizations out of any result set.
  • An extensible, high granularity security model allowing intricate rules on who can access which product features and datasets. Integration with major authentication backends (database, OpenID, LDAP, OAuth, REMOTE_USER, ...)
  • A lightweight semantic layer, allowing to control how data sources are exposed to the user by defining dimensions and metrics
  • Out of the box support for most SQL-speaking databases
  • Deep integration with Druid allows for Superset to stay blazing fast while slicing and dicing large, realtime datasets
  • Fast loading dashboards with configurable caching

Database Support

Superset speaks many SQL dialects through SQLAlchemy, a Python ORM that is compatible with most common databases.

Superset can be used to visualize data out of most databases:

  • MySQL
  • Postgres
  • Vertica
  • Oracle
  • Microsoft SQL Server
  • SQLite
  • Greenplum
  • Firebird
  • MariaDB
  • Sybase
  • IBM DB2
  • Exasol
  • MonetDB
  • Snowflake
  • Redshift
  • Clickhouse
  • Apache Kylin
  • more! look for the availability of a SQLAlchemy dialect for your database to find out whether it will work with Superset


On top of having the ability to query your relational databases, Superset ships with deep integration with Druid (a real time distributed column-store). When querying Druid, Superset can query humongous amounts of data on top of real time dataset. Note that Superset does not require Druid in any way to function, it's simply another database backend that it can query.

Here's a description of Druid from the http://druid.io website:

Druid is an open-source analytics data store designed for business intelligence (OLAP) queries on event data. Druid provides low latency (real-time) data ingestion, flexible data exploration, and fast data aggregation. Existing Druid deployments have scaled to trillions of events and petabytes of data. Druid is best used to power analytic dashboards and applications.

Installation & Configuration

See in the documentation



Interested in contributing? Casual hacking? Check out Contributing.MD

Who uses Apache Superset (incubating)?

Here's a list of organizations who have taken the time to send a PR to let the world know they are using Superset. Join our growing community!