Testando o login e a autenticação do Flask?

Estou desenvolvendo um aplicativo Flask e usando o Flask-security para autenticação do usuário (que por sua vez usa o Flask-login por baixo).

Eu tenho uma rota que requer autenticação,/user. Estou tentando escrever um teste de unidade que testa que, para um usuário autenticado, isso retorna a resposta apropriada.

Na minha unittest eu estou criando um usuário e log como esse usuário assim:

from unittest import TestCase
from app import app, db
from models import User
from flask_security.utils import login_user

class UserTest(TestCase):
   def setUp(self):
       self.app = app
       self.client = self.app.test_client()
       self._ctx = self.app.test_request_context()
       self._ctx.push()

       db.create_all()

   def tearDown(self):
       if self._ctx is not None:
           self._ctx.pop()

       db.session.remove()
       db.drop_all()

   def test_user_authentication():
       # (the test case is within a test request context)
       user = User(active=True)
       db.session.add(user)
       db.session.commit()
       login_user(user)

       # current_user here is the user
       print(current_user)

       # current_user within this request is an anonymous user
       r = test_client.get('/user')

Dentro do testecurrent_user retorna o usuário correto. No entanto, a exibição solicitada sempre retorna umAnonymousUser Enquanto ocurrent_user.

o/user rota é definida como:

class CurrentUser(Resource):
    def get(self):
        return current_user  # returns an AnonymousUser

Estou bastante certo de que não estou entendendo completamente como funcionam os contextos de solicitação do Flask. Eu li este frascoSolicitar documentação de contexto um monte, mas ainda não entendo como abordar esse teste de unidade específico.

questionAnswers(3)

yourAnswerToTheQuestion