Django 1.0测试:如何在测试代码和正在测试的视图之间保持会话持续存在?

时间:2009-10-04 02:31:59

标签: python django testing

我正在尝试测试会话中存储某些数据时视图的行为方式。为此,我在测试方法中创建了会话,并在视图的最开头调用了一个交互式shell:

测试方法:

def test_user_with_unused_tests(self):
    "User is given a test and sent to test start"
    # todo: insure that the user is given a test that he hasn't done

    #login
    login = self.client.login(username='xxx', password='xxx')
    self.failUnless(login)

    # build the screener
    user = User(username='xxx', password='xxx')
    user_screener = UserScreener(user=user)

    # put the screener in session
    self.client.session['user_screener'] = user_screener

查看已测试:

@login_required
def screener_start(request):

    import code
    code.interact(local=locals())

但显然会话在我的测试方法和对视图的调用之间不会持续存在:

非持久性证据:

>>> request.session.values()
[1, 'django.contrib.auth.backends.ModelBackend']

有什么方法可以解决这个问题吗?我错过了必不可少的东西吗?

我正在使用Django 1.0。

提前感谢您的想法。

1 个答案:

答案 0 :(得分:0)

看起来您需要setUp方法,请查找setUp tearDownsetUp方法文档。 setUp将在所有测试中运行,每次测试的代码将在每次测试结束时销毁。

基本上,您需要将您的登录逻辑放在{{1}}和测试方法中的实际测试逻辑中。

希望这有帮助