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.5.tar.gz
(37.6 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.5-py3-none-any.whl
(69.7 kB
view details)
File details
Details for the file vedro-1.2.5.tar.gz.
File metadata
- Download URL: vedro-1.2.5.tar.gz
- Upload date:
- Size: 37.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30b65d1080c8864e251307e0101a9ead8ada36ef8f507d119246c4caa1ce5ca5
|
|
| MD5 |
1a578485ab0f9d23c887bd08019dacee
|
|
| BLAKE2b-256 |
d3b5d13dbcfdf12a1fdde9e5e0bc4ebc3e4ef2af6e68a033d8ab7dbcab63f52a
|
File details
Details for the file vedro-1.2.5-py3-none-any.whl.
File metadata
- Download URL: vedro-1.2.5-py3-none-any.whl
- Upload date:
- Size: 69.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b557fde7a416a379edea32a3b32f78a02c4edc4d7eca3957b6cefcd59ad720bc
|
|
| MD5 |
ffc2e45470432af3e28d65d523e7b069
|
|
| BLAKE2b-256 |
4d74dbff4821a6362211c88ec0d07b905e1e56999e3e4ae558f17be2e49635eb
|