Skip to content

Commit de31fab

Browse files
mfablueyed
authored andcommitted
doc: example for usage of rf, admin_user and class-based views (#480)
1 parent 86d5d22 commit de31fab

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

docs/helpers.rst

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ case there is no "admin" user yet).
165165
As 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
283284
mailbox. It is however more pytestic to use the ``mailoutbox`` fixture
284285
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

Comments
 (0)