У меня есть внешние службы. Приложение Django построено поверх моих внешних API сервисов. Чтобы поговорить с моей внешней службой, я должен передать файлы cookie, которые я могу получить, прочитав User
(это cookie! = Django cookie).Как я могу получить пользователя в тесте Djano?
Использование тестовых инструментов, таких как webtests
, requests
, У меня проблемы с написанием моих тестов.
class MyTestCase(WebTest):
def test_my_view(self):
#client = Client()
#response = client.get(reverse('create')).form
form = self.app.get(reverse('create'), user='dummy').form
print form.fields.values()
form['name'] = 'omghell0'
print form
response = form.submit()
Мне нужно отправить форму, которая создает, скажем, пользователя на моей внешней службе. Но для этого я обычно проходил бы в request.user
(чтобы проверить мою привилегию на внешнюю службу). Но у меня нет request.user
.
Какие у меня варианты для такого рода вещей?
Благодаря ...
Пусть это мой tests.py
import unittest
from django.test.client import Client
from django.core.urlresolvers import reverse
from django_webtest import WebTest
from django.contrib.auth.models import User
class SimpleTest(unittest.TestCase):
def setUp(self):
self.usr = User.objects.get(username='dummy')
print self.usr
.......
я
Traceback (most recent call last):
File "/var/lib/graphyte-webclient/webclient/apps/codebundles/tests.py", line 10, in setUp
self.usr = User.objects.get(username='dummy')
File "/var/lib/graphyte-webclient/graphyte-webenv/lib/python2.6/site-packages/django/db/models/manager.py", line 132, in get
return self.get_query_set().get(*args, **kwargs)
File "/var/lib/graphyte-webclient/graphyte-webenv/lib/python2.6/site-packages/django/db/models/query.py", line 341, in get
% self.model._meta.object_name)
DoesNotExist: User matching query does not exist
Но если я испытываю User.objects
во взглядах, я в порядке ,
В дополнение к тому, что сказал todd, если у вас есть представление, использующее систему проверки подлинности djangos, вы также можете зарегистрировать своего пользователя с помощью тестового клиента! https://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs#django.test.client.Client.login – dm03514
@Todd B спасибо. Это было очень полезно! То же самое относится к dm03514 – User007