Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Python testing for humans

Project Description


[![Build Status](](

Python testing for humans, built with [Attest](

Tests shouldn't just be for computers to check your code runs correctly. They can also be used by humans to understand what your code does.

pspec tests are designed to be parsed by humans. They look a bit like this:

from pspec import describe, assert_raises
import random

with describe('random'):
with describe('shuffle'):
def it_does_not_lose_any_elements():
seq = range(10)
assert seq == range(10)

def it_raises_an_exception_for_an_immutable_sequence():
with assert_raises(TypeError):
random.shuffle((1, 2, 3))

with describe('choice'):
def it_picks_an_element_that_is_in_the_sequence():
seq = range(10)
assert random.choice(seq) in seq

(Compare with a [similar example for the built-in unittest module](

They are run with the `pspec` command:

$ pspec random_spec

Development install

$ pip install -r requirements.txt
$ python develop

Test suite

$ pspec spec


**Note:** pspec is still in its infancy. Don't expect it to be useful yet.

Here's some stuff I want it to do:

- Beautiful test reports with coloured string diffs. (Similar to [Mocha's]( diffs))
- Contexts, before/after hooks, etc.

It's going to be simple, Pythonic and use minimal magic.

Release History

This version
History Node


History Node


Download Files

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

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(5.2 kB) Copy SHA256 Hash SHA256
Source Jun 25, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting