我是 django 的新手。在我的第一个 django 应用程序中,我正在测试我的一个视图来检查登录。这是我的看法:
from testprjct.testapp.forms import LoginForm_form
from django.contrib import auth
def check_login(request):
if request.method == 'POST':
form = LoginForm_form(request.POST)
if request.POST and form.is_valid():
username = request.POST.get('username', '')
password = request.POST.get('password', '')
# I am hard-coding the credentials here just for testing
user = auth.authenticate(username = 'test123', password = 'qwerty')
if user is not None and user.is_active:
auth.login(request, user)
.....
当我运行服务器并尝试从前端登录时,此视图工作正常。但是在执行此视图的测试用例时失败。这是我对此视图的测试代码:
from testprjct.testapp.models import loginform
class ViewTests(TestCase):
def setUp(self):
loginform.objects.create(username='test123', password='qwerty')
def test_login(self):
response = self.client.get('/login/')
self.assertEqual(response.status_code, 200)
response = self.client.post('/login/', {"username": "test123", "password": "qwerty"})
print response
self.assertEqual(response.status_code, 302)
通过给出登录详细信息无效的消息,这总是返回 200 status_code(不重定向到成功页面)。
当我在登录页面中测试忘记密码链接时,问题也是如此。当提供有效的电子邮件 ID 时,它可以在前端正常工作。但是从我的测试用例中,它总是返回错误消息,即电子邮件 ID 没有关联的用户帐户,即使我提供的电子邮件 ID 与我在前端提供的电子邮件 ID 相同。
请问有什么建议吗?我已经花了很多时间试图找出问题所在。