我使用python response library模拟了一个请求调用,但是我收到了这个错误:
def function_to_test():
oauth = OAuth1(
self.consumer_key,
client_secret=self.consumer_secret,
resource_owner_key=self.oauth_token,
resource_owner_secret=self.oauth_token_secret,
rsa_key=self.rsa_key,
signature_method=self._signature_method
)
return requests.post(url="https://example.com", auth=oauth, cert="/path/to/certificate")
我尝试模拟的代码如下:
@responses.activate
def test_token_expired(self):
responses.add(responses.POST, url='https://example.com/',
body='my_expected_result',
status=200)
response = function_to_test()
self.assertEqual(response.content, 'my_expected_result)
测试代码:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
db.engine.execute("NOTIFY DHCP")
测试失败并显示上面显示的错误,这是否表示响应模拟无效?它与我的requests.post中的auth / cert参数有关吗?我错过了什么吗?
答案 0 :(得分:2)
我认为您的问题与OAuth1
库无关,而与OAuth1
初始化有关。
在尝试模拟请求之前,OAuth1
失败了,因为他正在尝试访问密钥,而密钥在测试中可能未正确初始化。
您可以为此密钥提供假值,即使模拟responses
对象,responses
也可以模拟您的通话。
我们原本可能期望requests
完全模仿CIImage
调用,但似乎在此之前仍然会进行一些初始化。