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


Release history Release notifications

This version

0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-specfor, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size python-specfor-0.1.0.tar.gz (23.0 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page