Install from PyPI -
pip install varsnap
The client depends on three environment variables to be set:
VARSNAP- Should be either
false. Varsnap will be disabled if the variable is anything other than
ENV- If set to
development, the client will receive events from production. If set to
production, the client will emit events.
VARSNAP_PRODUCER_TOKEN- Only clients with this token may emit production snapshots. Copied from https://www.varsnap.com/user/
VARSNAP_CONSUMER_TOKEN- Only clients with this token may emit development snapshots. Copied from https://www.varsnap.com/user/
Add the varsnap decorator in front of any function you'd like to make better:
from varsnap import varsnap @varsnap def example(args, **kwargs): return 'output'
With the proper environment variables set, in a test file, add:
import unittest from varsnap import test class TestIntegration(unittest.TestCase): def test_varsnap(self): matches, logs = test() if matches is None: raise unittest.case.SkipTest('No Snaps found') self.assertTrue(matches, logs)
If you're testing a Flask application, set up a test request context when testing:
# app = Flask() with app.test_request_context(): matches, logs = test()
Decorators changing function names
Using decorators may change the name of functions. In order to not confuse
varsnap, set the decorated function's
match the original function:
import inspect def decorator(func): def decorated(*args, **kwargs): func(*args, **kwargs) decorated.__qualname__ = func.__qualname__ wrapper.__signature__ = inspect.signature(func) return decorated
pip install twine python setup.py sdist bdist_wheel twine upload dist/*
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.