Hou*_*man 10 python unit-testing basic-authentication flask flask-restful
这是我在Flask-RESTful中进行单元测试的一部分.
self.app = application.app.test_client()
rv = self.app.get('api/v1.0/{0}'.format(ios_sync_timestamp))
eq_(rv.status_code,200)
Run Code Online (Sandbox Code Playgroud)
在命令行中,我可以使用curl将用户名:密码发送到服务:
curl -d username:password http://localhost:5000/api/v1.0/1234567
Run Code Online (Sandbox Code Playgroud)
如何在单元测试的get()中实现相同的功能?
由于我的get/put/post需要身份验证,否则测试将失败.
zer*_*323 16
来自RFC 1945,超文本传输协议 - HTTP/1.0
...
为了接收授权,客户端在credentials.string中的base64 [5]编码字符串中发送用单个冒号(":")字符分隔的用户ID和密码.
...
如果用户代理希望发送用户ID"Aladdin"和密码打开芝麻",它将使用以下标题字段:
Run Code Online (Sandbox Code Playgroud)Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
因此,如果您真的使用http基本身份验证,您可以像下面的解决方案,虽然您的curl用法建议其他一些身份验
from base64 import b64encode
headers = {
'Authorization': 'Basic ' + b64encode("{0}:{1}".format(username, password))
}
rv = self.app.get('api/v1.0/{0}'.format(ios_sync_timestamp), headers=headers)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6782 次 |
| 最近记录: |