Skip to main content

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

Project description

#mamba: the definitive testing tool for Python

[![Build Status](https://travis-ci.org/nestorsalceda/mamba.svg)](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


with description('mamba'):
with it('is tested with mamba itself'):
pass

with it('supports python 3'):
pass

with context('when listing features'):
with it('supports example groups'):
pass

with context('hooks'):
with before.all:
print 'This code will be run once, before all examples'

with before.each:
print 'This code will be run before each example'

with after.each:
print 'This code will be run after each example'

with after.all:
print 'This code will be run once, after all examples'

with context('pending tests'):
with _context('when running pending contexts (marked with a underscore)'):
with it('will not run any spec under a pending context'):
pass

with _it('will not run pending specs (marked with underscore)'):
pass

with it('highlights slow tests'):
sleep(10)

with context(ASampleClass):
with it('has an instance in subject property'):
expect(self.subject).to.be.a(ASampleClass)

with context('when writing assertions'):
with it('can be used with plain assertions'):
assert True

with it('can be used with hamcrest style assertions'):
assert_that(True, is_(True))

with it('can be used with should_dsl style assertions'):
True |should| be(True)

with it('can be used with sure style assertions'):
True.should.be.true

expect(True).to.be.true

with it('is assertion framework agnostic'):
pass

with context('when using tests doubles'):
with it('can be used with mockito'):
stub = mock()
when(stub).is_usable_with_mockito().thenReturn(True)

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

with it('can be used 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())

with it('can be used with mock'):
is_usable_with_mock = Mock(return_value=True)

assert mock()

with it('is test doubles framework agnostic'):
pass

```


##Contribute

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

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

mamba-0.8.tar.gz (13.2 kB view details)

Uploaded Source

File details

Details for the file mamba-0.8.tar.gz.

File metadata

  • Download URL: mamba-0.8.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mamba-0.8.tar.gz
Algorithm Hash digest
SHA256 7e6488e41acecc08c8d729c18ef881a94119f575b1c7d365cc4ea3c3442aca63
MD5 1ddfb465a801537cd3c70f971c77cbf2
BLAKE2b-256 9318a60e825dc705f8d46d28576660a3f4ed8ad587416cbf6995198c2a73c229

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