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
-v
-vv
-vvv

Silent Reporter

$ python3 -m vedro -r silent

Plugins

Register Plugin

# ./bootstrap.py
import vedro
from vedro import Dispatcher
from vedro.plugins import Plugin


class DoNothing(Plugin):
    def subscribe(self, dispatcher: Dispatcher) -> None:
        pass


vedro.run(plugins=[DoNothing()])
$ python3 bootstrap.py

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

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.1.tar.gz (32.2 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.1-py3-none-any.whl (54.0 kB view details)

Uploaded Python 3

File details

Details for the file vedro-1.2.1.tar.gz.

File metadata

  • Download URL: vedro-1.2.1.tar.gz
  • Upload date:
  • Size: 32.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10

File hashes

Hashes for vedro-1.2.1.tar.gz
Algorithm Hash digest
SHA256 f8747daa173d399ca3229e298ac670300a457fba00c2bfbc8ae3392617f87072
MD5 a4ccef752e2b91d324c234d49352298e
BLAKE2b-256 1eeee64058f174314798bbba95d5ca8ea8f7a7a26a2c7c8eb6bd5dbc2fd2e885

See more details on using hashes here.

File details

Details for the file vedro-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: vedro-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 54.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10

File hashes

Hashes for vedro-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c5d1a9b0feb5060a4c7e67a3e46fa0201bc0519eee91cbae8311f4a940148fa
MD5 9c688352419f50fa036cf6ce8b2487c4
BLAKE2b-256 ce265637bc72abd895835694d154c20fc3310a52ef3fc02af58850c26a0a4dbc

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