gpt4 book ai didi

python - Django 向自己发送请求

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:30 25 4
gpt4 key购买 nike

有两次尝试从“工作”django 服务器获取响应。工作版本是硬编码的,在单元测试时不工作

# working
# a = requests.post('http://localhost:8000/ImportKeys/',
# data=json.dumps({'user_id': key_obj.email,
#'key': self.restore_pubkey(key_obj.fingerprint)}))

# not working

a = requests.post('http://' + request.get_host() + reverse('import_keys'),data=json.dumps({'user_id': key_obj.email,'key': self.restore_pubkey(key_obj.fingerprint)}))

在那个版本上,我想开始工作,我有这个(结束堆栈跟踪):

File "/home/PycharmProjects/lib/python3.4/site-packages/requests/sessions.py", line 576, in send r = adapter.send(request, **kwargs) File "/home/PycharmProjects/lib/python3.4/site-packages/requests/adapters.py", line 437, in send raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPConnectionPool(host='testserver', port=80): Max retries exceeded with url: /ImportKeys/ (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -2] Name or service not known',))

是的,我看到它正在尝试连接到 80 端口,这很糟糕。

最佳答案

要在 TestCase 类中测试您的 View ,请使用 django.test.Client ,这是专门为此目的而设计的。如果您从 django.test.TestCase 继承测试用例,则它已经可以通过 self.client 属性使用。

class YourTestCase(TestCase):
def test_import_keys_posting(self):
data = {
'user_id': key_obj.email,
'key': self.restore_pubkey(key_obj.fingerprint)
}
response = self.client.post(reverse('import_keys'), data)
self.assertEqual(response.status_code, 200)
self.assertEqual(response.json(), {'result': 'ok'})

如果您使用 Django Rest Framework,请考虑使用其精彩的 APIClient ,这进一步简化了 API 测试。

关于python - Django 向自己发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com