mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-03 05:04:31 +03:00
Added test case classes
This commit is contained in:
parent
6de9b7c8ca
commit
ae63c49777
|
@ -167,6 +167,36 @@ As usual CSRF validation will only apply to any session authenticated views. Th
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Test cases
|
||||||
|
|
||||||
|
REST framework includes the following test case classes, that mirror the existing Django test case classes, but use `APIClient` instead of Django's default `Client`.
|
||||||
|
|
||||||
|
* `APISimpleTestCase`
|
||||||
|
* `APITransactionTestCase`
|
||||||
|
* `APITestCase`
|
||||||
|
* `APILiveServerTestCase`
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
You can use any of REST framework's test case classes as you would for the regular Django test case classes. The `self.client` attribute will be an `APIClient` instance.
|
||||||
|
|
||||||
|
from django.core.urlresolvers import reverse
|
||||||
|
from rest_framework import status
|
||||||
|
from rest_framework.test import APITestCase
|
||||||
|
|
||||||
|
class AccountTests(APITestCase):
|
||||||
|
def test_create_account(self):
|
||||||
|
"""
|
||||||
|
Ensure we can create a new account object.
|
||||||
|
"""
|
||||||
|
url = reverse('account-list')
|
||||||
|
data = {'name': 'DabApps'}
|
||||||
|
response = self.client.post(url, data, format='json')
|
||||||
|
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
|
||||||
|
self.assertEqual(response.data, data)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# Testing responses
|
# Testing responses
|
||||||
|
|
||||||
## Checking the response data
|
## Checking the response data
|
||||||
|
|
|
@ -6,6 +6,7 @@ from __future__ import unicode_literals
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.test.client import Client as DjangoClient
|
from django.test.client import Client as DjangoClient
|
||||||
from django.test.client import ClientHandler
|
from django.test.client import ClientHandler
|
||||||
|
from django.test import testcases
|
||||||
from rest_framework.settings import api_settings
|
from rest_framework.settings import api_settings
|
||||||
from rest_framework.compat import RequestFactory as DjangoRequestFactory
|
from rest_framework.compat import RequestFactory as DjangoRequestFactory
|
||||||
from rest_framework.compat import force_bytes_or_smart_bytes, six
|
from rest_framework.compat import force_bytes_or_smart_bytes, six
|
||||||
|
@ -137,3 +138,19 @@ class APIClient(APIRequestFactory, DjangoClient):
|
||||||
# Ensure that any credentials set get added to every request.
|
# Ensure that any credentials set get added to every request.
|
||||||
kwargs.update(self._credentials)
|
kwargs.update(self._credentials)
|
||||||
return super(APIClient, self).request(**kwargs)
|
return super(APIClient, self).request(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
class APISimpleTestCase(testcases.SimpleTestCase):
|
||||||
|
client_class = APIClient
|
||||||
|
|
||||||
|
|
||||||
|
class APITransactionTestCase(testcases.TransactionTestCase):
|
||||||
|
client_class = APIClient
|
||||||
|
|
||||||
|
|
||||||
|
class APITestCase(testcases.TestCase):
|
||||||
|
client_class = APIClient
|
||||||
|
|
||||||
|
|
||||||
|
class APILiveServerTestCase(testcases.LiveServerTestCase):
|
||||||
|
client_class = APIClient
|
||||||
|
|
Loading…
Reference in New Issue
Block a user