An easy way to mock Snowflake connections in Python!
Project description
asbestos
An easy way to mock Snowflake connections in Python!
What is this?
asbestos
is a library for Python 3.9+ to allow easy mocking of Snowflake calls during local development or testing to save on costs and time. The docs have more information, but here's a quick example:
from asbestos import asbestos_cursor, config as asbestos_config
def snowflake_cursor() -> SnowflakeCursor | AsbestosCursor:
# Use a flag to decide whether it returns the test cursor
# or the real thing
if settings.ENABLE_ASBESTOS:
return asbestos_cursor()
return snowflake_connection().cursor(DictCursor)
asbestos_config.register(
query="your sql goes %s",
data=("here",),
response={"It's a": "response!"}
)
with snowflake_cursor() as cursor:
cursor.execute("your sql goes %s", ('here',))
assert cursor.fetchall() == {"It's a": "response!"}
asbestos
is not a 1:1 mocking of the full Snowflake API, but includes synchronous and async query mocking that handle most use cases. Check out some fun things you can do with it here!
Installation:
poetry add asbestos
Docs
Check out the documentation here!
To work on the docs locally, ensure that your python3
version is up-to-date (pyenv is a great way of managing this) and run make docs
. This will create a dedicated documentation environment and serve the docs locally for testing. To remove the environment, run make docs_clean
.
Development
asbestos
uses pre-commit
to help us keep the repo clean. To get started, make sure you have poetry
installed and follow these steps:
- clone the respository:
git clone git@github.com:SpotOnInc/asbestos.git
(preferred)- OR
git clone https://github.com/SpotOnInc/asbestos
poetry install
poetry shell
pre-commit install
After that, you're ready to go!
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.