Skip to main content

Readability Matters

Project description

Baby Steps

PyPI PyPI - Downloads Python Version

BDD steps for test markup. Just for readability.

Installation

pip3 install baby-steps

Usage

import httpx
from baby_steps import given, when, then

def test_status_code():
    with given:
        code = 200

    with when:
        resp = httpx.get(f"https://httpbin.org/status/{code}")

    with then:
        assert resp.status_code == code

Named Steps

import httpx
from baby_steps import given, when, then

def test_status_code():
    with given("status code"):
        code = 200

    with when("user requests a resource"):
        resp = httpx.get(f"https://httpbin.org/status/{code}")

    with then("it should return expected status code"):
        assert resp.status_code == code

Hooks

from baby_steps import given, then, when
from baby_steps.hooks import add_hook

def test():
    with given("status code"):
        pass

    with when("user requests a resource"):
        pass

    with then("it should return expected status code"):
        pass


def hook(step, name):
    print(step, name)

add_hook(hook)
test()

# <class 'baby_steps.Given'> 'status code'
# <class 'baby_steps.When'> 'user requests a resource'
# <class 'baby_steps.Then'> 'it should return expected status code'

Advanced

from baby_steps import when
from baby_steps.hooks import add_hook

def test():
    with when:
        print("when")


def hook(step, name):
    print("before", step)
    yield
    print("after", step)

add_hook(hook)
test()

# before <class 'baby_steps.When'>
# when
# after <class 'baby_steps.When'>

Custom Steps

from baby_steps import Step

class AndThen(Step):
    pass

and_then = AndThen()

with and_then("smth"):
    pass

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

baby_steps-1.3.1.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

baby_steps-1.3.1-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file baby_steps-1.3.1.tar.gz.

File metadata

  • Download URL: baby_steps-1.3.1.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for baby_steps-1.3.1.tar.gz
Algorithm Hash digest
SHA256 4312f88e8d92a7a7b9a070b32a114ea6d8c432e6a10e4c8b2163a6bcc2461036
MD5 29a2e45014284e5602dc628d2dab368d
BLAKE2b-256 d017c1bac3b57488801455ff8228f8c18107cbe5f4233c4b1e713fdb86e40f62

See more details on using hashes here.

File details

Details for the file baby_steps-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: baby_steps-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.9

File hashes

Hashes for baby_steps-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0409b453ff5dc2d0830f058b5241a06475534f32337be0a192497085347ac820
MD5 aab6a6c3938370005a279092cb970bc4
BLAKE2b-256 6b75cd931faf5df31683d1b4c12c663147b4ca7315bf6ed484b34ab362452506

See more details on using hashes here.

Supported by

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