Python中的单元测试装饰器

时间:2012-04-13 22:21:08

标签: python django unit-testing decorator

我编写了以下装饰器,用于某些Django视图,我不希望用户登录(例如 register forgot-password ):

def not_logged_in(view, redirect_url=None):
    def _wrapper(request, *args, **kwargs):
        if request.user.is_authenticated():
            return HttpResponseRedirect(
                redirect_url or '/'
            )
        return view(*args, **kwargs)

    return _wrapper

有了它,我可以轻松地写出来:

@not_logged_in
def register(request):
    ...

我已经为正在使用它的视图编写了单元测试,并且它没有问题,但我想知道单独测试not_logged_in函数的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

我想您可以轻松地模拟request对象,然后用装饰器装饰一个简单的函数,并将该请求传递给参数。

我还假设您的_wrapper实际上没有未使用的request参数?

相关问题