您如何在App Engine中模拟用户服务?

您如何在App Engine中模拟用户服务?,第1张

您如何在App Engine中模拟用户服务?

好吧,我认为没有官方的方法可以做到这一点,但是我一直在阅读源代码,并且发现了一种“
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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5645461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存