Aml*_*oti 5 python django unit-testing testcase
我有以下用于 Django 登录单元测试的代码。
"""This is the unit test case for form element"""
from django.test import TestCase
from django.contrib.auth.models import User
class TestForm(TestCase):
def setUp(self):
self.credentials = {
'username': 'abhishek',
'password': 'Abhishek@12345'}
User.objects.create_user(**self.credentials)
def test_login(self):
# send login data
response = self.client.post('/accounts/login', self.credentials, follow=True)
# should be logged in now
print(response.context['user'])
self.assertTrue(response.context['user'].is_authenticated)
Run Code Online (Sandbox Code Playgroud)
当我通过我的命令 python ../manage.py test accounts.tests.test_form.TestForm 执行这个单元测试时,它给出了以下错误。
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
AnonymousUser
F
======================================================================
FAIL: test_login (accounts.tests.test_form.TestForm)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Django\webapplication\accounts\tests\test_form.py", line 18, in test_login
self.assertTrue(response.context['user'].is_authenticated)
AssertionError: False is not true
----------------------------------------------------------------------
Ran 1 test in 3.391s
FAILED (failures=1)
Destroying test database for alias 'default'...
Run Code Online (Sandbox Code Playgroud)
这是我的登录views.py
from django.shortcuts import render, redirect, render_to_response
from django.contrib import auth
from accounts.forms import UserAttributeModelForm, UserModelForm
LOG = logging.getLogger(__name__)
def login(request):
"""This is the function to Login authenticated user"""
LOG.debug("Inside Login function")
message = ""
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = auth.authenticate(username=username, password=password)
if user is not None:
# correct username and password login the user
auth.login(request, user)
return redirect("/crudapplication/show")
else:
message = "Error wrong username/password"
return render(request, 'registration/login.html', {'message': message})
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗!!!!
小智 -2
self.assertTrue(response.context['user'].is_authenticated)用。。。来代替self.assertTrue(response.context['user'].is_active)
希望这会对您有所帮助,否则您可以回复我,我将分享完整的登录测试用例。
| 归档时间: |
|
| 查看次数: |
697 次 |
| 最近记录: |