mamba

The definitive testing tool for Python. Born under the banner of Behavior Driven Development (BDD).

Popularity
3.7
Stable
Activity
4.4
Stable
536
22
62

Description

mamba is the definitive BDD testing framework for Python. Born under the banner of Behavior Driven Development.

Code Quality Rank: L5
Programming language: Python
License: Mulan Permissive Software License, Version 1
Latest version: v0.11.2

mamba alternatives and similar packages

Based on the "Testing Frameworks" category.
Alternatively, view mamba alternatives based on common mentions on social networks and blogs.

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.

Do you think we are missing an alternative of mamba or a related project?

Add another 'Testing Frameworks' Package

README

mamba: the definitive test runner for Python

Build Status Latest PyPI Version Read The Docs Status PyPI pyversions

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.

Do not miss the trending, packages, news and articles with our weekly report.

Awesome Python is part of the LibHunt network. Terms. Privacy Policy.

(CC)
BY-SA
We recommend Spin The Wheel Of Names for a cryptographically secure random name picker.

AltStyle によって変換されたページ (->オリジナル) /