sqltest: easy testing ETL sqls
Project description
sqltest
The sqltest framework makes it easy to write test cases for testing complicated ETL processing logic.
What you need to do is prepare your source & target dataset with CSV format or Excel format, and also prepare your ETL SQL.
- We only support CSV source dataset format currently, but we plan to implement more formats. e.g Excel
- And also, we are planing to support more SQL engines, e.g. Spark, Flink.
An example of ETL sql test:
class TestExcelDataSource(TestCase):
def test_excel_data_source_demo(self):
environments = {
'env': 'dev',
'target_data_path': f'{PROJECT_PATH}/tests/data/tables'
}
reader = ExcelDatasetReader(
data_path=f'{PROJECT_PATH}/tests/data/cases/spark_etl_sql_test_excel_demo/spark_etl_demo.xlsx')
sql_file_path = f'{PROJECT_PATH}/tests/data/cases/spark_etl_sql_test_excel_demo/spark_etl_demo.sql'
engine = SparkEngine(SPARK, environments)
engine.run(reader, sql_file_path)
engine.verify_target_dataset()
@excel_reader(data_path=f'{PROJECT_PATH}/tests/data/cases/spark_etl_sql_test_excel_demo/spark_etl_demo.xlsx')
@spark_engine(spark=SPARK,
sql_path=f'{PROJECT_PATH}/tests/data/cases/spark_etl_sql_test_excel_demo/spark_etl_demo.sql',
env={'env': 'dev', 'target_data_path': f'{PROJECT_PATH}/tests/data/tables'})
def test_excel_with_decorate(self, reader: DatasetReader, engine: SqlEngine):
engine.verify_target_dataset()
@spark_engine(spark=SPARK,
sql_path=f'{PROJECT_PATH}/tests/data/cases/spark_etl_sql_test_excel_demo/spark_etl_demo.sql',
reader=ExcelDatasetReader(
f'{PROJECT_PATH}/tests/data/cases/spark_etl_sql_test_excel_demo/spark_etl_demo.xlsx'),
env={'env': 'dev', 'target_data_path': f'{PROJECT_PATH}/tests/data/tables'})
def test_excel_with_engine_decorate(self, engine: SqlEngine):
engine.verify_target_dataset()
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.
Source Distribution
sqltest-0.0.3.tar.gz
(7.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
sqltest-0.0.3-py3-none-any.whl
(11.3 kB
view details)
File details
Details for the file sqltest-0.0.3.tar.gz.
File metadata
- Download URL: sqltest-0.0.3.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c14556824f47445bdc34a24a76998a8adc75b7a2335e8e88e89b25a7eaa3d84
|
|
| MD5 |
68ae3c363078f4ed606bc402e783380e
|
|
| BLAKE2b-256 |
9a3e932e451acb59570a5bdc24feaacb1212056f748bd5823cfb94131fa49ee9
|
File details
Details for the file sqltest-0.0.3-py3-none-any.whl.
File metadata
- Download URL: sqltest-0.0.3-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00d2d7f8926aaa58ff154333020c03386f1f070fa1106258453d987e9e5fc45e
|
|
| MD5 |
1960dc8d8fcff7d2eb0f288bfdef933b
|
|
| BLAKE2b-256 |
fc64330485b11c13d23f598cc046c48908ade01b0209f10e56bf46db3d2ed3c1
|