Skip to main content

Behavior-oriented, expressive, developer-friendly assertions library

Project description

grappa logo

Build Status PyPI Coverage Status Documentation Status Stability Code Climate Python Versions

About

grappa is a behavior-oriented, self-declarative, expressive and developer-friendly lightweight assertion library for Python.

grappa comes with two declarative assertion styles: expect and should.

It also comes with a detailed, human-friendly error reporting system that aims to reduce friction and improve human agility while testing and fixing software.

To get started, take a look to the documentation and tutorial.

Status

grappa is currently beta quality software and under active development and improvements.

API is not stable yet and still prone to introduce breaking changes.

Why grappa?

grappa aims to assist humans while doing a very recurrent and not very fun task in software development: testing things.

The core idea behind grappa comes from the fact that human time is considerably more expensive than machine time, and therefore any machine assistance to optimize processes and close the gap is beneficial.

With grappa you can express almost in plain English what the test contract actually is, but in a way that’s fun and easy to write but also more easy and pleasant to read or maintain by other developers.

The Zen of grappa

  • Frictionless testing: introducing self-declarative behavior testing patterns can make testing more fun for test writers and more enjoyable for test readers.

  • Expressivity is paramount: humans should easily understand what the code is doing.

  • Human time is expensive: any modern software should assist people to identify and understand errors easily.

  • Make error reporting great again: feedback during testing is key, let’s make it more handy and less frustrating.

  • Testing patterns consolidation: software expectations are limited to the boundaries of language data types and structures.

  • Do not hurt feelings: seeing errors is not a nice thing, but it can be painless if details are showed you in a more gentle way.

Features

  • Behavior-oriented expressive Pythonic fluent API.

  • Provides both expect and should assertion styles.

  • Full-featured built-in assertions.

  • Human-friendly and frustration-less error reporting.

  • Composable assertions chaining.

  • Extensible assertions based on third-party plugins.

  • Testing framework agnostic. Works with unittest, nosetests, pytest

  • Lightweight and (almost) dependency-free.

  • Works with Python 2.6+, 3+ and PyPy.

Installation

Using pip package manager:

pip install --upgrade grappa

Or install the latest sources from Github:

pip install -e git+git://github.com/grappa-python/grappa.git#egg=grappa

History

0.1.0 (2017-03-05)

  • First version (beta)

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

grappa-0.1.0.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

grappa-0.1.0-py2.py3-none-any.whl (50.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file grappa-0.1.0.tar.gz.

File metadata

  • Download URL: grappa-0.1.0.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for grappa-0.1.0.tar.gz
Algorithm Hash digest
SHA256 39df3b24ffb31de27ba31075c906629e7cb5d552142a819df075214be3647154
MD5 b141aa1461dab923cf9271372de5872a
BLAKE2b-256 f65890549d95360973ca1a14a475495c6d0782ab56d8e3f63847f2fa3aec2194

See more details on using hashes here.

File details

Details for the file grappa-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for grappa-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4f9f829323a46fdd2108940d18762deecb83a8eb3eaacbed48bac48fec1be8d4
MD5 e0f66cff229c7687198c98c147bffd7e
BLAKE2b-256 7aa1bcbf6dccef21892112ae14790cba431b4ebe6f578301e388a84612223736

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