Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install mamba

How to install mamba

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install mamba
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
0.5 Available View build log
 
License
MIT/X11
Lastest release
version 0.5 on Jan 9th, 2014

#mamba: the definitive testing tool for Python

[![Build Status](https://travis-ci.org/nestorsalceda/mamba.png)](https://travis-ci.org/nestorsalceda/mamba)

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

##Installation

To install mamba, just:

` sh pip install mamba `

##Overview

```python

System Message: WARNING/2 (<string>, line 17); backlink

Inline literal start-string without end-string.

System Message: WARNING/2 (<string>, line 17); backlink

Inline interpreted text or phrase reference start-string without end-string.

from mamba import describe, context, before, after, pending

with describe('mamba'):
def it_should_be_tested_with_mamba_itself():
pass
with context('when listing features'):
def it_supports_example_groups():
pass
with context('hooks'):

@before.all def run_once_before_specs():

System Message: ERROR/3 (<string>, line 32)

Unexpected indentation.
pass

@before.each def run_before_every_spec():

System Message: ERROR/3 (<string>, line 36)

Unexpected indentation.
pass

@after.each def run_after_every_spec():

System Message: ERROR/3 (<string>, line 40)

Unexpected indentation.
pass

@after.all def run_after_all_specs():

System Message: ERROR/3 (<string>, line 44)

Unexpected indentation.
pass
with context('pending tests'):
with pending(context('when running pending contexts')):
def it_should_not_run_specs_under_a_pending_context():
pass

@pending def it_should_not_run_a_spec_marked_with_pending_decorator():

System Message: ERROR/3 (<string>, line 53)

Unexpected indentation.
pass
def it_should_highlight_slow_tests():
sleep(10)
with context(ASampleClass) as _:
def it_should_have_an_instance_in_subject_property():
expect(_.subject).to.be.a(ASampleClass)
with context('when writing assertions'):
def it_should_be_usable_with_plain_assertions():
assert True
def it_should_be_usable_with_hamcrest_style_assertions():
assert_that(True, is_(True))
def it_should_be_usable_with_should_dsl_style_assertions():
True |should| be(True)
def it_should_be_usable_with_sure_style_assertions():

True.should.be.true

expect(True).to.be.true

def it_should_be_assertion_framework_agnostic():
pass
with context('when using tests doubles'):
def it_should_be_usable_with_mockito():

stub = mock() when(stub).is_usable_with_mockito().thenReturn(True)

expect(stub.is_usable_with_mockito()).to.be.true

def it_should_be_usable_with_doublex():
with Spy() as sender:
sender.is_usable_with_doublex().returns(True)

assert_that(sender.is_usable_with_doublex(), is_(True)) assert_that(sender.is_usable_with_doublex, called())

def it_should_be_usable_with_mock():

is_usable_with_mock = Mock(return_value=True)

assert mock()

def it_should_be_test_doubles_framework_agnostic():
pass

System Message: WARNING/2 (<string>, line 101)

Definition list ends without a blank line; unexpected unindent.

```

System Message: WARNING/2 (<string>, line 101); backlink

Inline literal start-string without end-string.

System Message: WARNING/2 (<string>, line 101); backlink

Inline interpreted text or phrase reference start-string without end-string.

##Contribute

If you'd like to contribute, fork [repository](http://github.com/nestorsalceda/mamba), and send a pull request.

Docutils System Messages

System Message: ERROR/3 (<string>, line 70); backlink

Undefined substitution referenced: "should".

Subscribe to package updates

Last updated Jan 9th, 2014

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.