Skip to main content
 首页 » 编程设计

python之django 测试客户端问题

2025年05月04日22sharpest

我有一个问题...我们正在使用 django 编写项目,我正在尝试将 django.test.client 与 nose 测试框架一起用于测试。

我们的代码是这样的:

from simplejson import loads 
from urlparse import urljoin 
 
from django.test.client import Client 
 
TEST_URL = "http://smakly.localhost:9090/" 
 
def test_register(): 
 
    cln = Client() 
 
    ref_data = {"email": "unique@mail.com", "name": "Василий", "website": "http://hot.bear.com", "xhr": "true"} 
 
    print urljoin(TEST_URL, "/accounts/register/") 
    response = loads(cln.post(urljoin(TEST_URL, "/accounts/register/"), ref_data)) 
 
    print response["message"] 

在 nose 输出中我捕捉到:

Traceback (most recent call last): 
  File "/home/psih/work/svn/smakly/eggs/nose-0.11.1-py2.6.egg/nose/case.py", line 183, in runTest 
    self.test(*self.arg) 
  File "/home/psih/work/svn/smakly/src/smakly.tests/smakly/tests/frontend/test_profile.py", line 25, in test_register 
    response = loads(cln.post(urljoin(TEST_URL, "/accounts/register/"), ref_data)) 
  File "/home/psih/work/svn/smakly/parts/django/django/test/client.py", line 313, in post 
    response = self.request(**r) 
  File "/home/psih/work/svn/smakly/parts/django/django/test/client.py", line 225, in request 
    response = self.handler(environ) 
  File "/home/psih/work/svn/smakly/parts/django/django/test/client.py", line 69, in __call__ 
    response = self.get_response(request) 
  File "/home/psih/work/svn/smakly/parts/django/django/core/handlers/base.py", line 78, in get_response 
    urlconf = getattr(request, "urlconf", settings.ROOT_URLCONF) 
  File "/home/psih/work/svn/smakly/parts/django/django/utils/functional.py", line 273, in __getattr__ 
    return getattr(self._wrapped, name) 
AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF' 

我的settings.py文件确实有这个属性。

如果我使用标准 urllib2.urlopen().read() 从服务器获取数据,它会以正确的方式工作。

有什么办法可以解决这个案子吗?

请您参考如下方法: