从webtest文档我了解到:
模拟的最佳方式 如果你的应用程序验证 在environ ['REMOTE_USER']中查看 如果有人通过身份验证那么你 可以简单地设置该值,如:
app.get('/secret', extra_environ=dict(REMOTE_USER='bob'))
我正在尝试做同样的事情,但是在Google App引擎环境中。我想模拟登录用户和管理员用户。
如果可能,我必须在extra_environ中设置哪些字典值才能完成此操作?
答案 0 :(得分:6)
设置用户:
os.environ['USER_EMAIL'] = 'info@example.com'
设置管理员
os.environ['USER_IS_ADMIN'] = '1'
这就是我整个测试的样子。我的例子使用webtest,nose,nosegae和gaetestbed。
class TestingRoutes(WebTestCase, unittest.TestCase):
APPLICATION = application()
def tearDown(self):
os.environ['USER_EMAIL'] = ''
os.environ['USER_IS_ADMIN'] = ''
#AdminIndex .....
def test_adminindex_no_user(self):
#No user: redirect to login form
response = app.get( url_map['adminindex'] )
self.assertRedirects(response)
def test_adminindex_user(self):
os.environ['USER_EMAIL'] = 'info@example.com'
response = app.get( url_map['adminindex'] )
self.assertForbidden(response)
def test_adminindex_admin(self):
os.environ['USER_EMAIL'] = 'info@example.com'
os.environ['USER_IS_ADMIN'] = '1'
response = app.get( url_map['adminindex'] )
self.assertOK(response)
希望它有所帮助。