Django REST Assured instantly test-covers your Django REST Framework based API.
Project description
Instantly test-cover your Django REST Framework based API.
Django-REST-Assured adds another layer on top of Django REST Framework’s APITestCase which allows covering a set of RESTful resource’s endpoints with a single class declaration.
This gives both a quick coverage of sanity tests to your API and a more DRY and more friendly platform for writing additional, more comprehensive tests.
As easy as
class CategoryTestCase(ReadWriteRESTAPITestCaseMixin, BaseRESTAPITestCase):
base_name = 'category'
factory_class = CategoryFactory
create_data = {'name': 'comedy'}
update_data = {'name': 'horror'}
Django-REST-Assured is designed to work with factory_boy for mocking objects to test against. However, you can easily extend the BaseRESTAPITestCase to work directly with Django Models or any other factory.
Main features
Class-based declarative API for creating tests.
Covers the stack through: route > view > serializer > model.
Uses Django REST Framework’s conventions to minimize configuration.
All tests return the response object for more extensive assertions.
Automatic mocking of authentication if a user factory is provided.
Usage
The basic form of usage is simply to create a class that extends any mixin from rest_assured.testcases, according to the endpoints you wish to cover, and the BaseRESTAPITestCase class.
Then just set the required attributes, and continue extending it from there.
If your API requires authentication and/or authorization just add a user factory class. Assuming you use factory_boy:
Supports
Tests run against:
Django 1.6 & 1.7
Django REST Framework 2.4.3, 2.4.4 & 3.0
Python 2.7, 3.2, 3.3 & 3.4.
Installation
PyPI: https://pypi.python.org/pypi/django-rest-assured
$ pip install django-rest-assured
Source: https://github.com/ydaniv/django-rest-assured
$ git clone https://github.com/ydaniv/django-rest-assured
$ python setup.py install
Contributing
Issues are tracked in the github repository.
Pull requests are welcome!
Running tests
$ python runtests.py
License
Django-REST-Assured is distributed under the BSD license.
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.