登录测试用例在Django 1.8中失败

时间:2015-10-11 07:25:01

标签: python django testing django-testing django-tests

今天我正在学习在Django中编写测试用例,并编写了一个用于检查有效用户身份验证的测试用例。

from django.test import TestCase
from django.http import HttpRequest
from aptly_dash.views import newRepo, homePage
from selenium import webdriver
from django.test import Client

class MyTestCase(TestCase):

    def setUp(self):
        self.client = Client()
        self.browser = webdriver.Firefox()
    #
    def tearDown(self):
        self.browser.quit()

    def test_redirect(self):
        response = self.client.get('/admin/')
        self.assertRedirects(response, '/admin/login/?next=/admin/')

    def test_login(self):
        # Issue a GET request.
        response = self.client.login(username='rakesh', password='ranjan')
        print response

我已经创建了username='rakesh'password='ranjan',但response将成为False。我是编写测试用例的新手,如果有人能告诉我test_login函数有什么问题,我会很感激。我还想编写一个测试用例来检查django URL是否被403禁止未经身份验证的用户,而403-禁止经过身份验证但不禁止员工用户。任何人都可以给我一个很好的文档。

1 个答案:

答案 0 :(得分:1)

尝试将用户添加到设置中:

def setUp(self):
    self.client = Client()
    user = User.objects.create_user('rakesh', 'rakesh@rakesh.com', 'ranjan')
        self.browser = webdriver.Firefox()

每次运行测试时,您都有一个新的数据库'。

如果您想登录用户,要执行某些测试,您需要在每个TestCase上创建他。

  

最后,您需要记住在您之前创建用户帐户   可以使用这种方法。如上所述,测试运行器是   使用测试数据库执行,默认情况下不包含任何用户。如   结果,在您的生产站点上有效的用户帐户将   不能在测试条件下工作。您需要创建用户作为其中一部分   测试套件 - 手动(使用Django模型API)或使用   测试夹具。请记住,如果您希望测试用户拥有   密码,您无法通过设置密码来设置用户的密码   直接属性 - 您必须使用set_password()函数进行存储   正确的哈希密码。或者,您可以使用   create_user()helper方法,用于正确创建新用户   哈希密码。

也许看到这个doc,可以提供帮助

相关问题