【发布时间】:2012-03-27 22:20:08
【问题描述】:
我有一些外部服务。我的 Django 应用程序构建在我的外部服务 API 之上。为了与我的外部服务通信,我必须传入一个身份验证 cookie,我可以通过阅读 User(那个 cookie != django cookie)来获得它。
使用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,我就没事了。
【问题讨论】:
标签: django webtest django-testing