Skip to main content

Enables custom hooks for Vedro, allowing actions on events like startup, scenario execution, and cleanup

Project description

Vedro Hooks

PyPI Version License

vedro-hooks is a plugin for the Vedro testing framework that allows you to attach custom hooks to various testing events, such as startup, scenario execution, and cleanup. This enables you to perform specific actions automatically at different stages of the testing lifecycle.

Installation

To install vedro-hooks, you can use the vedro plugin install command:

$ vedro plugin install vedro-hooks

Ensure you have Vedro already installed in your environment. If not, you can install it using pip:

$ pip install vedro

Usage

You can register your custom hooks anywhere in your project; however, it is recommended to register them in the vedro.cfg.py file to keep your configuration centralized and easy to locate. Below is an example setup:

from vedro.events import CleanupEvent, ScenarioRunEvent, StartupEvent
from vedro_hooks import on_cleanup, on_scenario_run, on_startup

@on_startup
def my_startup_hook(event: StartupEvent):
    print("Testing started!")

@on_scenario_run
def my_scenario_run_hook(event: ScenarioRunEvent):
    scenario = event.scenario_result.scenario
    print(f"Running scenario: {scenario.subject}")

@on_cleanup
def my_cleanup_hook(event: CleanupEvent):
    print("Testing finished!")

...

Sync and Async Hooks

vedro-hooks supports both synchronous and asynchronous hooks, allowing you to handle events in the way that best suits your needs:

  • Sync Hook Example
    @on_scenario_passed
    def my_sync_hook(event):
        scenario = event.scenario_result.scenario
        print(f"Scenario passed: {scenario.subject}")
    
  • Async Hook Example
    @on_scenario_failed
    async def my_async_hook(event):
        scenario = event.scenario_result.scenario
        print(f"Scenario failed: {scenario.subject}")
    

Available Decorators

  • @on_startup: Register a function to be executed when the testing process starts.
  • @on_scenario_run: Register a function to be executed when a scenario starts running.
  • @on_scenario_passed: Register a function to be executed when a scenario passes.
  • @on_scenario_failed: Register a function to be executed when a scenario fails.
  • @on_scenario_skipped: Register a function to be executed when a scenario is skipped.
  • @on_scenario_reported: Register a function to be executed when a scenario is reported.
  • @on_cleanup: Register a function to be executed when the testing process ends.

For more detailed information about the events these decorators can hook into, you can refer to the Vedro Plugin Guide.

Configuration

The VedroHooksPlugin can be configured using the following options in your vedro.cfg.py:

  • show_hooks: When set to True, a summary of all registered hooks will be displayed at the end of the testing process.
  • ignore_errors: When set to True, the plugin will ignore any errors that occur within the hooks and continue the test execution. Errors encountered will be logged and summarized at the end of the testing process.
import vedro
import vedro_hooks

class Config(vedro.Config):

    class Plugins(vedro.Config.Plugins):

        class VedroHooks(vedro_hooks.VedroHooks):
            ignore_errors = True
            show_hooks = True

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

vedro_hooks-0.2.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

vedro_hooks-0.2.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file vedro_hooks-0.2.0.tar.gz.

File metadata

  • Download URL: vedro_hooks-0.2.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.5 Linux/6.5.0-1025-azure

File hashes

Hashes for vedro_hooks-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f31d4e366c80f72ca6e802dcbbce926718e221706ffceef2bc3a138b53c4617c
MD5 39556b52f3e91ccd7e08951463c3e990
BLAKE2b-256 b62c360a99bd10c891ec39cec91d0692530c06d51a27163dba268c5290fce8be

See more details on using hashes here.

File details

Details for the file vedro_hooks-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: vedro_hooks-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.5 Linux/6.5.0-1025-azure

File hashes

Hashes for vedro_hooks-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 401db22fc45a8f4ab5e66a418942a0f72fa5729d95b0742c0fcdc6f986f8e5b6
MD5 8d28c3477e86a176676d18d9c10ee905
BLAKE2b-256 cc2706f8a531eaa9282473f6f7fad23ce614ad2478e41f141e0beb2aa660bb1f

See more details on using hashes here.

Supported by

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