Уведомления

Группа в Telegram: @pythonsu

#1 Май 28, 2014 10:10:46

zlodiak
От: Россия
Зарегистрирован: 2014-01-19
Сообщения: 159
Репутация: +  0  -
Профиль   Адрес электронной почты  

проверка входа пользователя

помогите пожалуйста написать тест, который проверяет вошёл пользователь через форму или нет. вот моя попытка

test.py:

from django.test import TestCase
from django.test.client import Client
class TestTemplatePage(TestCase):	
	def set_up(self):
		self.client = Client()
		
	def test_logged_in(self):
		response = self.client.post('/accounts/login/', {'username': 'qqq', 'password': 'qqq'})	
		self.assertTemplateUsed(response, 'user_personal.html')		#загрузилась внутренняя страница сайта, с соответствующим шаблоном. значит пользователь вошёл
urls.py:
urlpatterns = patterns('app_drummersaransk',
	url(r'^accounts/login/$', 'views.login', name='login', ),					
	url(r'^(?P<id>[0-9]+)/$', 'views.user_personal', name='user_personal', ),
)	

views.py:
@login_required		
def user_personal(request, id):		
	try:
		entries_user_profile = UserProfile.objects.get(user_ptr_id=id)
	except:
		return HttpResponseRedirect('/page_error404/')
	entries_user = User.objects.get(id=id)
	
	path_pk = ''
	
	if request.method == 'POST':	
		path_pk = id
		user_id = int(request.user.pk)
		
		if request.POST.get('action', '') == 'add':					
			q = Friends.get_entry(user_id=user_id, friend_id=path_pk)		
			
			if q == False:				
				Friends.set_entry(user_id=user_id, friend_id=path_pk)	#add							
				
		if request.POST.get('action', '') == 'delete':		
			try:
				Friends.get_entry(user_id=user_id, friend_id=path_pk)	#del
			except:
				pass			
			else:			
				Friends.del_entry(user_id=user_id, friend_id=path_pk)
			
	t = loader.get_template('user_personal.html')
	c = RequestContext(request, {
		'login': entries_user.username,
		'entries_user_profile': entries_user_profile,
	}, [custom_proc])	
	return HttpResponse(t.render(c))

в результате запуска теста в консоли выводится следующее сообщение об ошибке:
c:\Python33\django_projects\drummersaransk_new>python manage.py test app_drummer
saransk
Creating test database for alias 'default'...
F
======================================================================
FAIL: test_logged_in (app_drummersaransk.tests.TestTemplatePage)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "c:\Python33\django_projects\drummersaransk_new\app_drummersaransk\tests.
py", line 26, in test_logged_in
    self.assertTemplateUsed(response, 'user_personal.html')
  File "C:\Python33\lib\site-packages\django\test\testcases.py", line 542, in as
sertTemplateUsed
    (template_name, ', '.join(template_names)))
AssertionError: False is not true : Template 'user_personal.html' was not a temp
late used to render the response. Actual template(s) used: accounts/login.html,
page_base.html
----------------------------------------------------------------------
Ran 1 test in 0.101s
FAILED (failures=1)
Destroying test database for alias 'default'...


при этом пользователь с логином qqq и паролем qqq существует

Отредактировано zlodiak (Май 28, 2014 10:27:29)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version