A Django test runner for mamba.
pip install mamba-django
Go to your Django test settings and add this line
TEST_RUNNER = 'mamba_django.MambaRunner'
and then execute the Django tests
./manage.py test --settings=project.settings.test --keepdb
or you can execute the tests passing it as parameter
./manage.py test --testrunner mamba_django.MambaRunner --settings=project.settings.test --keepdb
Also, you can pass all the mamba parameters to the Django test command.
For example:
./manage.py test --settings=project.settings.test --keepdb -f documentation -s 1
from expects import (
equal,
expect
)
from mamba_django import (
start_django_transactions,
rollback_django_transactions
)
from myapp.models import Animal
with description("Mamba with Django") as self:
with before.each:
self.transactions = start_django_transactions()
with context("Running atomic tests"):
with it("creates an animal"):
Animal.objects.create(name="lion", sound="roar")
expect(Animal.objects.all().count()).to(equal(1))
with it("creates another animal"):
Animal.objects.create(name="lion", sound="roar")
expect(Animal.objects.all().count()).to(equal(1))
with after.each:
rollback_django_transactions(self.transactions)
You can use the method load_fixtures
to load Django fixtures.
from expects import (
equal,
expect
)
from mamba_django import (
load_fixtures,
start_django_transactions,
rollback_django_transactions
)
from django.contrib.auth.models import Group
with description("Mamba with Django") as self:
with before.each:
self.transactions = start_django_transactions()
load_fixtures(['group.json'])
with context("Fixtures"):
with it("can retrieve loaded fixtures"):
expect(Group.objects.all().count()).to(equal(1))
with after.each:
rollback_django_transactions(self.transactions)