У меня есть приложение Google App Engine, и у моего запроса есть декоратор, который выполняет аутентификацию. С помощью 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'] = 'info@example.com'
os.environ['USER_IS_ADMIN'] = ''
response = self.get( '/appindex' )
self.assertOK(response)
Так что теперь мне нужно каким-то образом внедрить функциональность профиля в декоратор, чтобы я мог установить его в своих тестах. У кого-нибудь есть идеи, как это сделать? Я пытался придумать способ, но я продолжаю застрять.