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.3.0.tar.gz
(39.3 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.3.0-py3-none-any.whl
(72.6 kB
view details)
File details
Details for the file vedro-1.3.0.tar.gz.
File metadata
- Download URL: vedro-1.3.0.tar.gz
- Upload date:
- Size: 39.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0c1876ce620d163eb99a0c55cec36073dc980935996ae7c12093a1cc21d3a2e
|
|
| MD5 |
33d8cfa9e49ab833ff95c618584eedce
|
|
| BLAKE2b-256 |
cdc7048f966634f5d1e8035a0e9595086d4d63b17c7251ebe7444c8a6fd27b00
|
File details
Details for the file vedro-1.3.0-py3-none-any.whl.
File metadata
- Download URL: vedro-1.3.0-py3-none-any.whl
- Upload date:
- Size: 72.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
24af7da6dd6572bd46b604ffffee75fbe55e3fdba2422f9f544fd9644b760436
|
|
| MD5 |
33ccfe84c7509804dd0ee34f6f8bf59b
|
|
| BLAKE2b-256 |
0cb6f2551b8d76d0b3d7f036c25ae9a6b80cda61e1fca4c8d4df74e045eaf962
|