Library for generating and bootstrapping mock data
Project description
Knockoff Factory
A library for generating mock data and creating database fixtures that can be used for unit testing.
Table of content
Installation
pip install knockoff
Changelog
See the changelog for a history of notable changes to knockoff.
Documentation
We are working on adding more documentation and examples!
- Knockoff SDK
- TempDatabaseService
- Knockoff CLI
- Unit Testing Example: Sample App
Unit Tests
Prerequisites
- docker
- poetry (
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
)
Some of the unit tests depend on a database instance. Knockoff will create ephemeral databases within that instance and clean
them up when tests have completed. By default it will attempt to connect to an existing
instance at postgresql://postgres@localhost:5432/postgres
and will
create and destroy databases per test. This postgres location can
be overridden with the KNOCKOFF_TEST_DB_URI
environment variable.
If no external postgres instance is available for testing, but postgresql is
installed, the TEST_USE_EXTERNAL_DB
environment variable can be set to 0
.
The fixtures will then rely on the testing.postgresql
library to create
ephemeral postgres instances per fixture.
If postgres is not available, dependent tests can be disabled with the
following: export TEST_POSTGRES_ENABLED=0
.
Create the database instance using docker:
docker run --rm --name pg-docker -e POSTGRES_HOST_AUTH_METHOD=trust -d -p 5432:5432 postgres:11.9
Install poetry:
poetry install
Run unit test:
poetry run pytest
Future work
- Further documentation and examples for SDK
- Add yaml based configuration for SDK
- Make extensible generic output for KnockffDB.insert (csv, parquet, etc)
- Enable append option for KnockoffDB.insert
- Autodiscover and populate all tables by using reflection and building dependency graph with foreign key relationships
- Parallelize execution of dag. (e.g. https://ipython.org/ipython-doc/stable/parallel/dag_dependencies.html)
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
File details
Details for the file knockoff-4.1.1.tar.gz
.
File metadata
- Download URL: knockoff-4.1.1.tar.gz
- Upload date:
- Size: 33.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.8.11 Linux/5.8.0-1036-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec88b4ec90b65dae7bd41eca667052c8a1e94fa60125ed6f3f7c481b702cee0b |
|
MD5 | f8601f7e7dfeede13e07adc220a73366 |
|
BLAKE2b-256 | 05af6956a02f15b5257ef601c9bb528e25a4eb80b9cb9c381a6f3d253d240909 |
Provenance
File details
Details for the file knockoff-4.1.1-py3-none-any.whl
.
File metadata
- Download URL: knockoff-4.1.1-py3-none-any.whl
- Upload date:
- Size: 51.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.6 CPython/3.8.11 Linux/5.8.0-1036-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3da90514da8793f4b1b1eeaefdecc8697837b88e2265fcc26c36ce92bc100bc |
|
MD5 | a1de3588040ba15cba9d9ce873b788d7 |
|
BLAKE2b-256 | d41604820d19252aaaad87d710b9ae8ed3c6880eeb03eba9ba11fda58f047cd7 |