Google App Engine настроил пользователя при использовании тестового стенда
Я использую службу GAE testbed, и когда я запускаю users.get_current_user()
, я получаю None
i.e.
>>> import sys
>>> sys.path.append("/usr/local/google_appengine") # for Mac OS X
>>> from google.appengine.api import users
>>> from google.appengine.ext import testbed
>>> testbed = testbed.Testbed()
>>> testbed.activate()
>>> testbed.init_user_stub()
>>> users.get_current_user() == None
True
Это ожидаемый результат. Тем не менее, я хотел бы ввести поддельного пользователя при выполнении некоторых моих модульных тестов.
Если это возможно (и я ожидаю, что это будет так), как можно зарегистрировать пользователя при запуске testbed
из командной строки, чтобы get_current_user()
возвращал фактического пользователя?
Спасибо за чтение.
Ответы
Ответ 1
Чтобы смоделировать знак администратора пользователя, вы можете позвонить в любую точку тестовой функции:
self.testbed.setup_env(
USER_EMAIL = '[email protected]',
USER_ID = '123',
USER_IS_ADMIN = '1',
overwrite = True)
Обратите внимание, что вам нужно использовать параметр overwrite=True
!
Ответ 2
После некоторых экспериментов для меня работало следующее:
>>> os.environ['USER_EMAIL'] = '[email protected]'
>>> os.environ['USER_ID'] = '123'
>>> users.get_current_user()
users.User(email='[email protected]',_user_id='123')
Я надеюсь, что это хорошее решение, и этот ответ помогает следующему человеку столкнуться с этой проблемой.
EDIT: Связанные переменные
Чтобы избежать /google/appengine/api/users.py:115 - AssertionError: assert _auth_domain
>>> os.environ['AUTH_DOMAIN'] = 'testbed'
Комментарий от пользователя для Elliot de Vries для административного пользователя:
>>> os.environ['USER_IS_ADMIN'] = '1'