Conduct quality assurance testing on database tables
Project description
The SQL Test module assists in testing of data between SQL database tables. This is the development version of the module.
Use examples include comparing data in a view to those in a table derived from a star schema, or comparing results from a table derived from an external source to a table built via ETL.
Main Features
-
Class: SQLTest
- Creates and runs SQL database queries based on attributes provided with class instantiation or custom SQL query string.
- Completes five built in tests based on field-type categorizations of
count
,low_distinct
,high_distinct
,numeric
,id_check
. - Flags fields above a specified difference threshold for "priority review".
- Displays a summary of results.
- Saves results and summary as specified.
-
Function: compare_tables
- Auto-detects the type of test to be run.
- Utilizes methods of SQLUnitTest to complete a full comparison of table values.
-
Function: sql_query
- Conducts basic database queries
Functionality Overview
The concept behind the testing is that database information can often be segmented by a field, such as dates. Testing can be done by comparing field values across these groupings. For a more detailed description of the available functionality, check out the development page.
Basic Query
Run Test Battery
Setup Code
A summarized version of results (as a DataFrame or image), indicating the percentage difference between table fields (and the test type used), is available via the test battery.
Visual Summary
Setup
First Installation
The files sql_secrets.py
and sql_config.py
provide examples of how the SQLAlchemy engines can be configured. These files should be customized for personal use. You can find these files in your Python/environment directory under Lib/site-packages/sql_test/.
When updating these files, do not change the name or location of the files. Doing so will cause errors in the future if updating.
Dependencies
All dependencies are downloaded on installation if not already present. This module utilizes:
- Python v 3.5+
- SQLAlchemy
- pandas
- NumPy
- Matplotlib
- Seaborn
- cx_Oracle
- Psycopg
Acknowledgements
Testing is completed using the PostgreSQL DVD Rental sample database.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.