Skip to main content

Varsnap

Project description

Varsnap Python

Build Status

Python Varsnap Client

Installation

Install from PyPI - pip install varsnap

Requirements

The client depends on three environment variables to be set:

  • VARSNAP - Should be either true or false. Varsnap will be disabled if the variable is anything other than true.
  • 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/

Usage

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'

Testing

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()

Troubleshooting

Decorators changing function names

Using decorators may change the name of functions. In order to not confuse varsnap, set the decorated function's __qualname__ and __signature__ to 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

Publishing

pip install build twine
python -m build
twine upload dist/*

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

varsnap-1.5.9.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

varsnap-1.5.9-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file varsnap-1.5.9.tar.gz.

File metadata

  • Download URL: varsnap-1.5.9.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for varsnap-1.5.9.tar.gz
Algorithm Hash digest
SHA256 bd95b7b521ba116f15508e2f00000b89b938d6a54ec5299bdc686a6c7ea1f060
MD5 08687d7575bb7cc4ded942fad24ace62
BLAKE2b-256 d31a3e73c0edbeeee019b4ad46c9f0d2b36c70cf1ce4a16c963e9eb6de8bc154

See more details on using hashes here.

File details

Details for the file varsnap-1.5.9-py3-none-any.whl.

File metadata

  • Download URL: varsnap-1.5.9-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for varsnap-1.5.9-py3-none-any.whl
Algorithm Hash digest
SHA256 8e1657a02b2a5516e309f85db022bca22c498a46999f815c1f597853cf7b1f66
MD5 79500bd2e126c5ad37c78fc479b25752
BLAKE2b-256 21c17cf5e0e389ce9db894472f975bfa76f726834d6c91dc6c11f01d7dba6308

See more details on using hashes here.

Supported by

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