Yet another SQL-testing framework for BigQuery provided by pytest plugin
Project description
Pytest plugin for Bigquery SQL
pytest-sql-bigquery is pytest-plugin which provides a sql-unitest-framework for BigQuery. This plugin adopts an end-to-end approch that runnning SQL test on SQL engines.
Yet anthoer approch to tst SQL code
See following SQL codes:
with dataset as (
select 1
union all select 2
)
, __check_sample as (
select 'test' as label, count(1) as actual, 2 as expected from dataset
)
select * from dataset
This code is minimal example including test case.
__check_sample
is a test case which makes sure the dataset
view has just 2 record.
Our idea is very simple: "Verify SQL code by SQL-self."
This plugin generate SQL test codes from SQL and executed them on SQL-engine such as BigQuery.
The advantages of this approch are
- SQL codes owns specification itself
- Provide portability of logic and its test codes.
- Free to hard-mocking database system
Get Started
Requirements
-
Python >= 3.7
-
sqlparse
-
google-cloud-bigquery (For BigQuery integration)
-
BigQuery (Google Cloud Project)
Install
pip install pytest-bigquery-sql
Then, set up confidist.py
for pytest settings.
import pytest
from pytest_sql_bigquery.integrations.pytest import SQLReaderForChecking
class ChainPytestFile(pytest.File):
def __init__(self, path, parent, chains, **kwargs):
super().__init__(path, parent, **kwargs)
self.chains = chains
def collect(self):
for interpreter in self.chains:
yield from interpreter.collect()
def pytest_collect_file(parent, path):
if path.ext == ".sql":
return ChainPytestFile(
path, parent,
[
SQLReaderForChecking(path, parent),
])
Run test for examples/sql
directory
pytest run -vv examples/sql
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
Built Distribution
Hashes for pytest_sql_bigquery-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37a7e99c1d00a70dd9793144c4892483031a2c5d0946630f52dee5b8faa645e2 |
|
MD5 | fb9e1d4d90da54f629c87c31e6425491 |
|
BLAKE2b-256 | 5a8e12961d1e8927c367944a612b0bbaac510f632b58b86501afc46057f05ece |
Hashes for pytest_sql_bigquery-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f65d4dfc0f1582625d3e8a95113e899287f081cd354b4a430ffa6f611f224023 |
|
MD5 | 898bdbddb15c5363ea884be97717e212 |
|
BLAKE2b-256 | 6d6fb30630efda258f0468e47c5dda275309ae38339be1f8b5527851596b880a |