Skip to main content

Library for generating and bootstrapping mock data

Project description

Knockoff Factory

codecov Test PyPi Release Docker Build License Python Versions Docker Image Size Python Wheel

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!

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

knockoff-4.1.1.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

knockoff-4.1.1-py3-none-any.whl (51.1 kB view details)

Uploaded Python 3

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

Hashes for knockoff-4.1.1.tar.gz
Algorithm Hash digest
SHA256 ec88b4ec90b65dae7bd41eca667052c8a1e94fa60125ed6f3f7c481b702cee0b
MD5 f8601f7e7dfeede13e07adc220a73366
BLAKE2b-256 05af6956a02f15b5257ef601c9bb528e25a4eb80b9cb9c381a6f3d253d240909

See more details on using hashes here.

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

Hashes for knockoff-4.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3da90514da8793f4b1b1eeaefdecc8697837b88e2265fcc26c36ce92bc100bc
MD5 a1de3588040ba15cba9d9ce873b788d7
BLAKE2b-256 d41604820d19252aaaad87d710b9ae8ed3c6880eeb03eba9ba11fda58f047cd7

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page