помогите пожалуйста написать тест.
задача проверить при помощи ajax-запроса существование пользователя с именем qqqqqq. результат сравнить со значением true(или false)
view, который проверяет существование пользователя:
def ajax_username_check(request):
"""
ajax check username for registration form
return true - no matched
return false - matched
"""
if request.method == 'POST' and request.is_ajax():
username = request.POST.get('username', '')
result = {'result': User.objects.filter(username=username).exists()}
return HttpResponse(json.dumps(result), content_type='application/json')
test:
from django.test import TestCase, RequestFactory
from django.test.client import Client
from django.contrib.auth.models import AnonymousUser, User
from django.core.urlresolvers import reverse, resolve
import json
class TestAjaxCheckUsername(TestCase):
def setUp(self):
self.client = Client()
self.record = User.objects.create(
id=22,
username='qqqqqq',
password='pbkdf2_sha256$12000$Bm1GmmeGtnyU$v4E1UUcXWjk7pmQEkIWXvY2Hsw2ycG783R/bVpoVEWk=',
is_active=1,
is_staff=0,
is_superuser=0,
email='asasas@mail.ru'
)
def test_diary(self):
json_string = json.dumps({'username':'qqqqqq'})
self.response = self.client.post('/ajax_username_check/', json_string, "text/json", HTTP_X_REQUESTED_WITH='XMLHttpRequest')
self.assertContains(self.response, 'true')
вывод консоли:
(kinopom_env)kalinins@kalinins-Lenovo-Z580 ~/.virtualenvs/kinopom_project/kinopom $ python manage.py test
Creating test database for alias 'default'...
F
======================================================================
FAIL: test_diary (app_accounts.tests.TestAjaxCheckUsername)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/kalinins/.virtualenvs/kinopom_project/kinopom/app_accounts/tests.py", line 24, in test_diary
self.assertContains(self.response, 'true')
File "/home/kalinins/.virtualenvs/kinopom_project/kinopom_env/local/lib/python2.7/site-packages/django/test/testcases.py", line 327, in assertContains
" (expected %d)" % (response.status_code, status_code))
AssertionError: Couldn't retrieve content: Response code was 404 (expected 200)
----------------------------------------------------------------------
Ran 1 test in 0.101s
FAILED (failures=1)
Destroying test database for alias 'default'...
Updated 5 Nov. 2014, 13:00 by prozaik81-2.