您需要创建一个包含身份验证详细信息的自定义头并将其与请求一起发送。像这样的:
from base64 import b64encode
...
headers = {'Authorization': 'Basic ' + b64encode("{0}:{1}".format(username, password))}
rv = self.app.get('/i-am-not-found', headers=headers)
...
import unittest
from app import app
class TestApp(unittest.TestCase):
def setUp(self):
self.app = app.test_client()
def test_404(self):
headers = {
'Authorization': 'Basic ' + b64encode("username:password")
}
rv = self.app.get('/i-am-not-found', headers=headers)
self.assertEqual(rv.status_code, 404)
if __name__ == '__main__':
unittest.main()
您的用户名和密码以表格形式发送
username:password
但是是base64编码的。如果对此进行扩展,有一些方法可以简化此过程,例如提取到一个函数中以始终传递头并外部化用于测试的用户名/密码。
编辑:另外,我认为你应该在这里返回401代码。401通常在凭据不正确时使用,403通常在您已成功通过身份验证但无法访问资源时使用。一个非常简单的例子是登录facebook,但被限制访问另一个人标记为私有的照片。