我有一个Google App Engine应用程序,我的请求hadnler有一个装饰器来执行身份验证。通过WebTest,我发现yesterday如何设置登录用户和管理员。WebTest:使用装饰器+数据存储区调用进行测试
今天我的身份验证装饰器变得更复杂一点了。它还会检查用户是否在数据库中有配置文件,并且他是否不会将其重定向到“新用户”页面。
def authenticated(method):
@functools.wraps(method)
def wrapper(self, *args, **kwargs):
user = users.get_current_user()
if not user:
self.redirect(users.create_login_url(self.request.uri))
return
profile = Profile.get_by_key_name(str(user.user_id))
if not profile:
self.redirect('/newuser')
return method(self, *args, **kwargs)
return wrapper
现在增加型材件打破我的单元测试来检查,如果一个用户登录并获得一个状态代码200(assertOK)。
def user_ok(self):
os.environ['USER_EMAIL'] = '[email protected]'
os.environ['USER_IS_ADMIN'] = ''
response = self.get('/appindex')
self.assertOK(response)
所以现在我需要能够以某种方式注入配置文件功能到装饰,所以我可以把它在我的测试。有人知道如何做到这一点我一直在想办法,但我一直在卡住。
我觉得这个问题不是很清楚。你想知道如何测试装饰者? “将配置文件功能注入装饰器”是什么意思? – moraes 2010-08-29 23:35:29
我的意思是说,在我的测试中,我希望能够控制从数据存储获得的配置文件。所以我可以测试,如果配置文件不存在,用户会被重定向到新的用户页面。 – Pickels 2010-08-29 23:51:33