python登录验证程序_python – 测试Flask登录和身份验证?

我正在开发一个Flask应用程序,并使用Flask-security进行用户身份验证(其又使用Flask-login在下面).

我有一个需要身份验证的路由,/ user.我正在尝试编写一个单元测试,测试一下,对于经过身份验证的用户,这将返回相应的响应.

在我的单元测试中,我正在创建一个用户,并以该用户身份登录:

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')

在测试中,current_user返回正确的用户.但是,请求的视图总是返回一个AnonymousUser作为current_user.

/用户路由定义为:

class CurrentUser(Resource):

def get(self):

return current_user # returns an AnonymousUser

我相当确定我只是不完全了解如何测试Flask请求上下文.我读过这个Flask Request Context documentation一堆,但是我仍然不了解如何处理这个特定的单元测试.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值