Enables custom hooks for Vedro, allowing actions on events like startup, scenario execution, and cleanup
Project description
Vedro Hooks
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 toTrue
, a summary of all registered hooks will be displayed at the end of the testing process.ignore_errors
: When set toTrue
, 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | f31d4e366c80f72ca6e802dcbbce926718e221706ffceef2bc3a138b53c4617c |
|
MD5 | 39556b52f3e91ccd7e08951463c3e990 |
|
BLAKE2b-256 | b62c360a99bd10c891ec39cec91d0692530c06d51a27163dba268c5290fce8be |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 401db22fc45a8f4ab5e66a418942a0f72fa5729d95b0742c0fcdc6f986f8e5b6 |
|
MD5 | 8d28c3477e86a176676d18d9c10ee905 |
|
BLAKE2b-256 | cc2706f8a531eaa9282473f6f7fad23ce614ad2478e41f141e0beb2aa660bb1f |