Skip to main content

A Framework for Behavior Driven Development(BDD) based on stdlib's unittest

Project description

It is inspired from Ruby’s RSpec. Spec definition is based on Python decorator description.

Features

  • Python decorator based “Spec” definition

  • “Spec” definition is compatible with unittest.TestCase

  • Spec files can execute with unittest or nosetests

  • RSpec like Expectation (e.g. the[xxx].should.be[yyy])

  • Decorator based “Mock” object definition

  • All features can be used independently: e.g. use spec with nose.tools

  • Markdown document generator from spec file

  • Single code implementation for multi python version (2.5-2.7, 3.1)

Spec Example

# examples/sum_spec.py
from specfor import the, spec

empty_list = spec.of("empty list")
int_list = spec.of("int list")

@empty_list.before()
def prepare(its):
    its.list = []
    its.sum = 0

@int_list.before()
def prepare(its):
    its.list = [2, 3, 5, 7, 11]
    its.sum = 28

@empty_list.that("sum")
@int_list.that("sum")
def sum_spec(its):
    result = sum(its.list)
    the[result].should == its.sum

spec.publish(globals())

For more detail, see README.md

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

python-specfor-0.1.0.tar.gz (23.0 kB view details)

Uploaded Source

File details

Details for the file python-specfor-0.1.0.tar.gz.

File metadata

File hashes

Hashes for python-specfor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e560aea9cf7210a1832431f1421d733c1d18ac29aaffcdc99ad6555c46df5947
MD5 3f3c93752c3f087296fe973a2c40decf
BLAKE2b-256 a9cacd846a0edb7767c610f7c0c95b118fd07d63162a832e62da4a149db99745

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