Skip to main content

Shared components for Proofy Python testing framework integrations

Project description

Proofy Commons

Shared components for Proofy Python testing framework integrations.

Overview

proofy-commons provides the foundational components used by all Proofy framework adapters.

Only the functions re-exported from proofy are part of the public API. Everything else is considered internal and may change without notice.

Installation

pip install proofy-python

Public API (from proofy)

These are the only supported, stable entry points:

from proofy import (
    # Metadata
    set_name, set_description, set_severity,
    add_tag, add_tags, add_attributes,
    set_run_name,

    # Run-level metadata
    set_run_attribute, add_run_attributes, get_run_attributes,

    # Attachments
    add_attachment, add_data

    # Context info
    get_current_run_id, get_current_test_id,

    # Decorators
    name, title, description, severity, tags, attributes,
)

Examples

Runtime usage

from proofy import add_attachment, set_description, add_attributes

def test_example():
    set_description("This test validates user authentication")
    add_attributes(severity="critical", component="auth")
    # ... your test ...
    add_attachment("screenshot.png", name="success_screenshot")

Decorators

from proofy import name, description, severity, tags, attributes

@name("User Authentication Test")
@description("Validates login functionality with various scenarios")
@severity("critical")
@tags("auth", "smoke")
@attributes(component="auth", area="login")
def test_user_authentication():
    pass

Run Attributes

Run attributes allow you to add metadata to the entire test run (not individual tests):

import proofy

# Set individual run attribute
proofy.set_run_attribute("environment", "production")

# Set multiple run attributes at once
proofy.add_run_attributes(
    version="1.2.3",
    build_number="456",
    branch="main",
    tested_by="CI"
)

# Get all run attributes
attrs = proofy.get_run_attributes()
print(attrs)  # {'environment': 'production', 'version': '1.2.3', ...}

Note: Run attributes should be set before or during session start (e.g., in conftest.py for pytest). The system also automatically collects system information like Python version, OS, and framework version.

Architecture

Internal structure includes clients, models, hooks, context, I/O, and export utilities that support the public API. These are subject to change and are not part of the stable surface.

Notes

  • The HTTP client, models, hooks, and other internals are intentionally undocumented here.
  • Use the framework plugins (e.g., pytest-proofy) for integration and configuration options.

Runtime API

Metadata Functions

def set_name(name: str, test_id: Optional[str] = None) -> None
def set_description(description: str, test_id: Optional[str] = None) -> None
def set_severity(severity: str, test_id: Optional[str] = None) -> None
def add_attributes(test_id: Optional[str] = None, **kwargs: Any) -> None
def add_tag(tag: str, test_id: Optional[str] = None) -> None
def add_tags(tags: List[str], test_id: Optional[str] = None) -> None

Note: set_name() does not work in live mode because the test result is created at the beginning of the test execution and the name cannot be changed dynamically afterwards. Use decorators (@name) for setting test names in live mode.

Attachment Functions

def add_attachment(
    file: Union[str, Path],
    *,
    name: str,
    mime_type: Optional[str] = None,
    test_id: Optional[str] = None,
) -> None
def add_data(
    data: str | bytes | bytearray | dict[str, Any],
    *,
    name: str,
    mime_type: Optional[str] = None,
    extension: Optional[str] = None,
    artifact_type: ArtifactType | int = ArtifactType.ATTACHMENT,
    encoding: str = "utf-8",
) -> None

Development

Setup

git clone <repository>
cd proofy-python/proofy-commons
uv venv .venv
source .venv/bin/activate
uv pip install -e '.[dev]'

Testing

# Run tests
uv run -q pytest

# Run with coverage
uv run -q pytest --cov=proofy --cov-report=html

# Type checking
uv run -q mypy proofy

# Linting and formatting
uv run -q ruff check --fix
uv run -q ruff format

License

Apache-2.0 — see LICENSE file for details.

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

proofy_python-0.1.1.tar.gz (41.7 kB view details)

Uploaded Source

Built Distribution

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

proofy_python-0.1.1-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

Details for the file proofy_python-0.1.1.tar.gz.

File metadata

  • Download URL: proofy_python-0.1.1.tar.gz
  • Upload date:
  • Size: 41.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for proofy_python-0.1.1.tar.gz
Algorithm Hash digest
SHA256 27955cf1950f5121021f52e6d450b99c9692837dff889f001c8fefcc50ff4f62
MD5 33ed303bde9f9eb48b177b230caea713
BLAKE2b-256 ba23e1d746b744579cafaac62892df39b1438e59d2f657e7b13402ca42d49000

See more details on using hashes here.

Provenance

The following attestation bundles were made for proofy_python-0.1.1.tar.gz:

Publisher: release.yml on getproofy/proofy-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file proofy_python-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: proofy_python-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 46.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for proofy_python-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e820bea49f300ddae51b24ae2920515cee8d343f011ecfbe68d7ea05830ccaeb
MD5 dd3c96a9c6b8ffe8279d98f500e5483f
BLAKE2b-256 6d4709069e8e02cfae13f7c1a57e48b094ff6405e4e52a652cb927cdd55de0a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for proofy_python-0.1.1-py3-none-any.whl:

Publisher: release.yml on getproofy/proofy-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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