fakesnow
Fake Snowflake Connector for Python. Run, mock and test Snowflake DB locally.
Decision gist · record as of 2026-08-14
Yes, if you write Python code against Snowflake and want fast, cost-free local testing. The package is actively maintained, has low install friction, and covers the most common Snowflake operations. Be aware that some advanced features (access control, stored procedures) are not yet implemented, and you should verify that your specific SQL patterns are supported before relying on it for comprehensive integration testing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- The patch() context manager only affects the current process; subprocesses or non-Python clients require the server mode instead.
- Low install friction with a pure Python wheel.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache License 2.0, a permissive license allowing commercial use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
last release 2026-08-14 (0 days) · last repo commit 2026-08-14 · 202 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,963,658 downloads/mo, #3,406 on PyPI
Alternatives
Verify before relying
pip install fakesnow
import fakesnow
import snowflake.connector
with fakesnow.patch():
conn = snowflake.connector.connect()
result = conn.cursor().execute("SELECT 'Hello fake world!'").fetchone()
print(result)- Whether all Snowflake SQL dialects and functions are fully compatible with the fake implementation
- Performance characteristics when handling large datasets or complex queries compared to real Snowflake
- Completeness of partially-supported features (date functions, regex, semi-structured data, tags, user management, stages, COPY INTO)
What it is and what it does
fakesnow provides a local, in-memory Snowflake database mock for development and testing. It intercepts calls to the Snowflake Connector for Python via context-manager patching, redirecting them to a fake backend built on duckdb, pyarrow, and sqlglot. This lets you write and test code that uses Snowflake without needing a real account or cloud connection.
The package offers two modes: in-process patching for Python code (including pytest integration) and a standalone HTTP server for non-Python clients or subprocesses. Databases are in-memory by default but can be persisted to disk. It supports standard SQL operations, cursors, information schema queries, parameter binding, pandas integration (including write_pandas), and result batch retrieval. Some features like access control and stored procedures are not yet implemented.
Use it for
- Unit test Python code that queries Snowflake without provisioning a test database or credentials.
- Mock Snowflake in CI/CD pipelines to run fast, isolated integration tests without cloud costs.
- Develop and debug Snowflake queries locally before deploying to production.
- Test pandas-to-Snowflake workflows (write_pandas) in isolation during development.
- Run pytest fixtures that automatically patch Snowflake Connector for test suites.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you write Python code against Snowflake and want fast, cost-free local testing.
The package is actively maintained, has low install friction, and covers the most common Snowflake operations. Be aware that some advanced features (access control, stored procedures) are not yet implemented, and you should verify that your specific SQL patterns are supported before relying on it for comprehensive integration testing.
Install
fakesnow on PyPI
Before you install
Low install friction with a pure Python wheel. Active maintenance with a recent release and 202 repository stars. Requires duckdb, pyarrow, snowflake-connector-python, and sqlglot as runtime dependencies.
Requires Python 3.10 or later. The patch() context manager only affects the current process; subprocesses or non-Python clients require the server mode instead.
License in practice
Licensed under Apache License 2.0, a permissive license allowing commercial use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
Quickstart
pip install fakesnow
import fakesnow
import snowflake.connector
with fakesnow.patch():
conn = snowflake.connector.connect()
result = conn.cursor().execute("SELECT 'Hello fake world!'").fetchone()
print(result)
Verify before relying
- Whether all Snowflake SQL dialects and functions are fully compatible with the fake implementation
- Performance characteristics when handling large datasets or complex queries compared to real Snowflake
- Completeness of partially-supported features (date functions, regex, semi-structured data, tags, user management, stages, COPY INTO)
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesduckdbpyarrowsnowflake-connector-pythonsqlglot |
| Maintenance | Actively maintained 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,963,658 / month, #3,406 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT License |
Evidence: fakesnow-0.11.13-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “snowflake mock testing”
- fakesnowRuns a fake Snowflake database locally for testing, either by…
- dbt-snowflakedbt-snowflake is the Snowflake adapter for dbt, enabling data…
- pulumi-snowflakeA Pulumi resource provider that lets you define, deploy, and manage…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also django-snowflake · snowfakery · snowflake-cli · snowflake-sqlalchemy · pyfakefs · pytest-httpbin · snowflake-labs-mcp · snowflake.core · snowflake-connector-python · cvdupdate