Skip to main content

No project description provided

Project description

Vedro

Codecov PyPI PyPI - Downloads Python Version

(!) 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


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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vedro-1.2.4-py3-none-any.whl (69.6 kB view details)

Uploaded Python 3

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

Hashes for vedro-1.2.4.tar.gz
Algorithm Hash digest
SHA256 d72ec79f6dc80e82cd84554b38fb1230d9cb68b544bb33e04534e3343cec54e9
MD5 429c809ddcf70ad233ee428b2c29fbea
BLAKE2b-256 53d4b7ddd92c054f48532d1598c4785f3a9c2f3b24f48f67e78d614538c958f7

See more details on using hashes here.

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

Hashes for vedro-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e9d42cf58b46a1a6f86f72a7d14cb665e93ca338dba9c32011138201883d112e
MD5 3ac6a84fb9c17fa0b242eef0435da3ec
BLAKE2b-256 2dbe66c88ad170688fea5dcb936b6b53fc7e6944ed961ac83002194fe87b22d1

See more details on using hashes here.

Supported by

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