Skip to main content

Runner for Python [inline-snapshot](https://github.com/15r10nk/inline-snapshot/) tests with a better interface and cleaner terminal output.

Project description

run-snapshot-tests

Runner for Python inline-snapshot tests with a better interface and cleaner terminal output.

To run pytest with async functions, install python-asyncio (uv add python-asyncio) and add this setting to the pyproject.toml:

[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function" # prevents noisy warning message for some python-asyncio plugin versions

Note: only compatible with inline-snapshot==0.8.0.

Interface

def run_snapshot_tests(
    path: Union[str, Path, None] = None, # tests path. Defaults to current file if not set
    mode: Literal[
        "assert",
        "create_missing",
        "fix_broken",
        "update_all"
    ] = "create_missing",
    python_functions: Optional[str] = None, # Space-separated globs for function name patterns to collect as tests. Default is "test_*"
) -> None:

Example

from inline_snapshot import snapshot, outsource
from run_snapshot_tests import run_snapshot_tests

def test():
    assert "value" == snapshot()
    assert 5 <= snapshot()
    assert 5 in snapshot()
    a = snapshot()
    assert a["key"] == "value"

    assert (
        outsource(
            "Long data" * 1000,
        )
        == snapshot()
    )


if __name__ == "__main__":
    run_snapshot_tests()

from inline_snapshot import snapshot, outsource, external
from run_snapshot_tests import run_snapshot_tests


def test():
    assert "value" == snapshot('value')
    assert 5 <= snapshot(5)
    assert 5 in snapshot([5])
    a = snapshot({'key': 'value'})
    assert a["key"] == "value"

    assert (
        outsource(
            "Long data" * 1000,
        )
        == snapshot(external("hash:dc9b148c966a*.txt"))
    )


if __name__ == "__main__":
    run_snapshot_tests()

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

run_snapshot_tests-0.3.3.tar.gz (52.3 kB view details)

Uploaded Source

Built Distribution

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

run_snapshot_tests-0.3.3-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file run_snapshot_tests-0.3.3.tar.gz.

File metadata

  • Download URL: run_snapshot_tests-0.3.3.tar.gz
  • Upload date:
  • Size: 52.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.2

File hashes

Hashes for run_snapshot_tests-0.3.3.tar.gz
Algorithm Hash digest
SHA256 b4b2b98d61174d86d4b27b2b7f1d00db89ee7b5080c1f4495da9c5343ccc0942
MD5 c6b7b15f25a86a88c8ad8e4c2296ba84
BLAKE2b-256 2bca8bded1d5df01678e16779bea133c81eed3523e86ad7f59a73bcb038d33b8

See more details on using hashes here.

File details

Details for the file run_snapshot_tests-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for run_snapshot_tests-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a994887121fc7da1d1c08b7cb9f794cd10ecf88ff78deaa00c74fd42577dfd8e
MD5 953261dbb25757d7e869bc15a73ea635
BLAKE2b-256 cd1774f04a8e039391579077d01371b2815b165e805b0a81bf0345665a022124

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