@@ -165,6 +165,7 @@ case there is no "admin" user yet).
165165As an extra bonus this will automatically mark the database using the
166166``django_db `` mark.
167167
168+
168169``django_user_model ``
169170~~~~~~~~~~~~~~~~~~~~~
170171
@@ -282,3 +283,43 @@ Clearing of mail.outbox
282283``mail.outbox `` will be cleared for each pytest, to give tests a empty
283284mailbox. It is however more pytestic to use the ``mailoutbox `` fixture
284285to access ``mail.outbox ``.
286+
287+
288+ Examples
289+ --------
290+
291+
292+ Example with ``rf ``, ``admin_user ``, fixture and class-based views
293+ """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
294+
295+ ::
296+
297+ import pytest
298+
299+ from django.core.urlresolvers import reverse
300+ from myapp.models import Thing
301+ from myapp.views import ThingDetailView
302+
303+ @pytest.fixture
304+ def thing(admin_user):
305+ (thing_object, created) = Thing.objects.get_or_create(name="test",
306+ created_by=admin_user)
307+ return thing_object
308+
309+ def test_detail_view_logged_in(rf, admin_user, thing):
310+ # set kwargs for reverse and for view
311+ kwargs_thing = {
312+ 'pk': thing.id,
313+ }
314+
315+ url = reverse("thing_detail", kwargs=kwargs_thing)
316+
317+ # bind url to request factory
318+ request = rf.get(url)
319+
320+ # set user in request to admin_user
321+ request.user = admin_user
322+
323+ # creates response, given request and kwargs needed for view
324+ response = ThingDetailView.as_view()(request, **kwargs_thing)
325+ assert response.status_code == 200
0 commit comments