The definitive testing tool for Python. Born under the banner of Behavior Driven Development.
Project description
mamba: the definitive test runner for Python
mamba is the definitive test runner for Python. Born under the banner of behavior-driven development.
Install
I recommend to use pipenv for managing your dependencies, thus you can install mamba like any other Python package.
By example:
$ pipenv install mamba
But you also can use pip:
$ pip install mamba
Getting Started
Write a very simple example that describes your code behaviour:
# tennis_spec.py
from mamba import description, context, it
from expects import expect, equal
with description('Tennis') as self:
with it('starts with 0 - 0 score'):
rafa_nadal = "Rafa Nadal"
roger_federer = "Roger Federer"
game = Game(rafa_nadal, roger_federer)
expect(game.score()).to(equal((0, 0)))
Run the example, and don't forget to watch it fail!
$ pipenv run mamba tennis_spec.py
F
1 examples failed of 1 ran in 0.0023 seconds
Failures:
1) Tennis it starts with 0 - 0 score
Failure/Error: tennis_spec.py game = Game(rafa_nadal, roger_federer)
NameError: global name 'Game' is not defined
File "tennis_spec.py", line 8, in 00000001__it starts with 0 - 0 score--
game = Game(rafa_nadal, roger_federer)
Now write as little code for making it pass.
# tennis_spec.py
from mamba import description, context, it
from expects import expect, equal
import tennis
with description('Tennis') as self:
with it('starts with 0 - 0 score'):
rafa_nadal = "Rafa Nadal"
roger_federer = "Roger Federer"
game = tennis.Game(rafa_nadal, roger_federer)
expect(game.score()).to(equal((0, 0)))
# tennis.py
class Game(object):
def __init__(self, player1, player2):
pass
def score(self):
return (0, 0)
Run the spec file and enjoy that all tests are green!
$ pipenv run mamba tennis_spec.py
.
1 examples ran in 0.0022 seconds
Settings
Mamba provides a way to configuration using spec/spec_helper.py
or specs/spec_helper.py
This module function is read after parsing arguments so configure function overrides settings
A sample config file :
def configure(settings):
# settings.slow_test_threshold = 0.075
# settings.enable_code_coverage = False
# settings.code_coverage_file = '.coverage'
settings.format = 'documentation'
# settings.no_color = False
# settings.tags = None
Official Manual
You can read more features about mamba in its official manual
Contributors
Here's a list of all the people who have contributed.
I'm really grateful to each and every of them!
If you want to be one of them, fork repository and send a pull request.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file mamba-0.11.3.tar.gz
.
File metadata
- Download URL: mamba-0.11.3.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
4dcf69e9a53e78d4aa5ec3dee0bb2c65f02ea68a6b62c4275653d7170b8f5fe2
|
|
MD5 |
def7e0d3c27904223bab9b673b314da4
|
|
BLAKE2b-256 |
4d0858d6330e23edbc2e7c0bb2b716917f4dafc9f6a508a1b297389954a10e4b
|