Integration with DRFΒΆ

Below there is an example of Django REST Framework authentication mocking. Pay attention to djet.restframework.APIViewTestCase base class and user parameter in request factory call.

from django.contrib.auth import get_user_model
from djet import assertions, utils, restframework
import views

class SetUsernameViewTest(restframework.APIViewTestCase,
                          assertions.StatusCodeAssertionsMixin):
    view_class = views.SetUsernameView

    def test_post_should_set_new_username(self):
        password = 'secret'
        user = get_user_model().objects.create_user(username='john', password=password)
        data = {
            'new_username': 'ringo',
            'current_password': password,
        }
        request = self.factory.post(user=user, data=data)

        response = self.view(request)

        self.assert_status_equal(response, status.HTTP_200_OK)
        user.refresh_from_db()
        self.assertEqual(data['new_username'], user.username)

For more comprehensive examples we recommend to check out how djoser library tests are crafted.