Джанго тест клиент проблемы - PullRequest
2 голосов
/ 17 февраля 2010

У меня проблема ... мы пишем проект с использованием django, и я пытаюсь использовать django.test.client с тестовым фреймворком для тестирования.

Наш код такой:

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"]

и в носовой вывод ловлю:

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.urllopen().read(), он будет работать правильно.

Есть идеи, как я могу решить это дело?

Ответы [ 2 ]

0 голосов
/ 11 мая 2011

Бесстыдная самореклама: именно по этим причинам я создал тестовую библиотеку, которая позволяет вам тестировать приложение с помощью urllib2.

Документы есть: http://readthedocs.org/docs/django-sane-testing/en/latest/

Пример того, что вы можете сделать, например: в django-http-digest-tests

0 голосов
/ 14 июля 2010

Возможно, вам нужен django-nose, если вы хотите использовать нос.

http://github.com/jbalogh/django-nose

Я бы рекомендовал использовать класс TestCase

http://docs.djangoproject.com/en/dev/topics/testing/

http://www.djangoproject.com/documentation/models/test_client/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...