好吧,我认为没有官方的方法可以做到这一点,但是我一直在阅读源代码,并且发现了一种“
hack”的方法,到目前为止效果很好。(通常我会担心使用未记录的行为,但这是一个测试套件,因此仅在开发服务器上有效时才有意义。)
开发服务器会根据以下三个环境变量确定当前登录的用户:
- USER_EMAIL:用户的电子邮件地址 和 用户的昵称。
- USER_ID:用户的唯一Google ID(字符串)。
- USER_IS_ADMIN:如果用户不是管理员,则为“ 0”;如果用户为管理员,则为“ 1”。
您可以
os.environ像设置任何其他环境变量一样使用它们来设置它们,它们会立即生效( 显然,这在生产服务器上将不起作用
)。但是您可以将它们与测试床的user_stub一起使用,并且当您停用测试床时,它们将被重置(您应该在上执行此 *** 作
tearDown,以便为每个测试用例获得全新的环境)。
由于设置环境变量有点笨拙,因此我编写了一些包装器函数来打包它们:
import osdef setCurrentUser(email, user_id, is_admin=False): os.environ['USER_EMAIL'] = email or '' os.environ['USER_ID'] = user_id or '' os.environ['USER_IS_ADMIN'] = '1' if is_admin else '0'def logoutCurrentUser(): setCurrentUser(None, None)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)