No project description provided
Project description
Vedro
(!) Work in progress, breaking changes are possible until v2.0 is released
Installation
$ pip3 install vedro
Usage
# ./scenarios/decode_base64_encoded_string.py
from aiohttp import ClientSession
import vedro
class Scenario(vedro.Scenario):
subject = "decode base64 encoded string"
def given(self):
self.encoded = "YmFuYW5h"
async def when(self):
async with ClientSession() as session:
self.response = await session.get(f"https://httpbin.org/base64/{self.encoded}")
async def then(self):
assert (await self.response.text()) == "banana"
$ python3 -m vedro .
Documentation
Selecting Scenarios
Select File or Directory
$ python3 -m vedro <file_or_dir>
Skip File or Directory
$ python3 -m vedro -i (--ignore) <file_or_dir>
Select Specific Scenario
import vedro
@vedro.only
class Scenario(vedro.Scenario):
subject = "register user"
Skip Specific Scenario
import vedro
@vedro.skip
class Scenario(vedro.Scenario):
subject = "register user"
Reporters
Rich Reporter (default)
$ python3 -m vedro -r rich -vvv
Verbose Levels
| Verbose | Show Scenario | Show Steps | Show Exception | Show Scope (scenario variables) |
|---|---|---|---|---|
| ✅ | ||||
-v |
✅ | ✅ | ||
-vv |
✅ | ✅ | ✅ | |
-vvv |
✅ | ✅ | ✅ | ✅ |
Silent Reporter
$ python3 -m vedro -r silent
Parametrized Scenario
from aiohttp import ClientSession
import vedro
from vedro import params
class Scenario(vedro.Scenario):
subject = "get status ({status})"
@params(200)
@params(404)
def __init__(self, status: int):
self.status = status
def given(self):
self.url = f"https://httpbin.org/status/{self.status}"
async def when(self):
async with ClientSession() as session:
self.response = await session.get(self.url)
async def then(self):
assert self.response.status == self.status
Plugins
Register Plugin
# ./bootstrap.py
import vedro
from vedro import Dispatcher, Plugin
class DoNothing(Plugin):
def subscribe(self, dispatcher: Dispatcher) -> None:
pass
vedro.run(plugins=[DoNothing()])
$ python3 bootstrap.py
Available Plugins
Core
Reporters
External
And more
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
vedro-1.2.4.tar.gz
(37.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
vedro-1.2.4-py3-none-any.whl
(69.6 kB
view details)
File details
Details for the file vedro-1.2.4.tar.gz.
File metadata
- Download URL: vedro-1.2.4.tar.gz
- Upload date:
- Size: 37.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d72ec79f6dc80e82cd84554b38fb1230d9cb68b544bb33e04534e3343cec54e9
|
|
| MD5 |
429c809ddcf70ad233ee428b2c29fbea
|
|
| BLAKE2b-256 |
53d4b7ddd92c054f48532d1598c4785f3a9c2f3b24f48f67e78d614538c958f7
|
File details
Details for the file vedro-1.2.4-py3-none-any.whl.
File metadata
- Download URL: vedro-1.2.4-py3-none-any.whl
- Upload date:
- Size: 69.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9d42cf58b46a1a6f86f72a7d14cb665e93ca338dba9c32011138201883d112e
|
|
| MD5 |
3ac6a84fb9c17fa0b242eef0435da3ec
|
|
| BLAKE2b-256 |
2dbe66c88ad170688fea5dcb936b6b53fc7e6944ed961ac83002194fe87b22d1
|