@@ -165,6 +165,7 @@ case there is no "admin" user yet).
165
165
As an extra bonus this will automatically mark the database using the
166
166
``django_db `` mark.
167
167
168
+
168
169
``django_user_model ``
169
170
~~~~~~~~~~~~~~~~~~~~~
170
171
@@ -282,3 +283,43 @@ Clearing of mail.outbox
282
283
``mail.outbox `` will be cleared for each pytest, to give tests a empty
283
284
mailbox. It is however more pytestic to use the ``mailoutbox `` fixture
284
285
to 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