{"library":"pytest-assume","title":"pytest-assume","description":"pytest-assume is a pytest plugin that enhances test assertion behavior by allowing multiple failures within a single test. Instead of stopping test execution on the first failed assertion, it collects all failures reported via `pytest.assume()` and reports them at the end of the test, providing a comprehensive view of all issues. The current version is 2.4.3, with a regular release cadence addressing bug fixes and compatibility improvements.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install pytest-assume"],"cli":null},"imports":["import pytest\n# ... use pytest.assume()"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import pytest\n\ndef test_multiple_conditions():\n    # These assumptions will all be evaluated,\n    # and all failures reported at the end of the test.\n    pytest.assume(1 == 1, \"This assumption should pass\")\n    pytest.assume(2 == 3, \"Expected 2 to be 3, but it was not!\")\n    pytest.assume(\"hello\" == \"hello\", \"String comparison should pass\")\n    pytest.assume(5 > 10, \"5 is not greater than 10\")\n\n    # Using the context manager for a group of assumptions\n    with pytest.assume:\n        pytest.assume(True, \"Context manager assumption 1 (pass)\")\n        pytest.assume(False, \"Context manager assumption 2 (fail)\")\n\n    # A standard assert would halt the test here if it failed,\n    # but pytest.assume allows execution to continue.\n    assert 1 == 1 # This line is reached even if pytest.assume() calls failed","lang":"python","description":"This example demonstrates how to use `pytest.assume()` directly and with the `with pytest.assume:` context manager. All `assume` calls within a test function are executed, and any failures are reported at the end, unlike standard `assert` statements that stop execution immediately.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"2.4.3","pypi_latest":"2.4.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.7,"avg_import_s":0.44,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.44,"mem_mb":12.2,"disk_size":"30.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.31,"mem_mb":12.2,"disk_size":"31M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.56,"mem_mb":12.9,"disk_size":"33.7M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.5,"mem_mb":12.9,"disk_size":"34M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.51,"mem_mb":12.8,"disk_size":"25.3M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.5,"mem_mb":12.8,"disk_size":"26M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.46,"mem_mb":11.8,"disk_size":"25.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.44,"mem_mb":11.8,"disk_size":"26M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.35,"mem_mb":11.2,"disk_size":"30.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pytest-assume","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.1,"import_time_s":0.3,"mem_mb":11.2,"disk_size":"31M"}]}}