问题标签 [pytest-aiohttp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
29884 浏览

python-3.x - 带有 pytest 的异步夹具

如何定义异步设备并在异步测试中使用它们?

以下代码都在同一个文件中,失败得很惨。测试运行程序是否明确调用了夹具并且没有等待?

生产

我知道我可能会做

但我想知道是否存在更简单/最优雅的方式。我在 pytest、pytest-asyncio、pytest-aiohttp 的项目页面中都找不到清晰简单的示例/解释。

我使用 Python 3.6.3、pytest 3.4.2、pytest-asyncio 0.8.0 和 pytest-aiohttp 0.3.0

非常感谢您的帮助

0 投票
1 回答
2676 浏览

python-3.x - aiohttp api 错误处理框架

我们已经开发了一些 aiohttp 服务器端 api,从那个 api 中我们调用了一个 python 类,我已经完成了所有的业务逻辑。

现在我们想为所有 API 创建一个错误处理框架,请给出一些实现该框架的想法,我还需要进行请求参数验证,我应该一次合并并发回所有错误还是只检查一个参数发回给调用者的错误信息。

api 看起来像这样:

0 投票
1 回答
57 浏览

python-3.x - 错误的简单异步脚本(python 3.5)

我有这么简单的代码。

当我在http://0.0.0.0:8080/中打开浏览器时,我得到文本“开始”,然后在大约 10 秒后得到文本“停止”。然后我同时打开两个页面http://0.0.0.0:8080/。我希望在 10-11 秒内收到这样的短信

但我得到(在 21 秒内)

我究竟做错了什么?

0 投票
2 回答
661 浏览

async-await - AIOHTTP:TypeError: index() 接受 0 个位置参数,但给出了 1 个

这是我的意见.py

主文件

这是我的 routes.py

但是当我尝试触发 localhost:9090 的 url 时,我只会收到一个内部服务器 500 错误说

但是 ti 可以在终端中打印 json 但无法在浏览器中触发与 Web 响应相同的响应我不知道在这种情况下出了什么问题

0 投票
1 回答
2401 浏览

python - 等待 resp.prepare(request) AttributeError: 'NoneType' 对象没有属性 'prepare'

但是每当我尝试访问该网址时,我都会收到此错误

我什至无法理解问题是什么以及这个 resp.prepare 来自哪里

0 投票
0 回答
219 浏览

asynchronous - AIOHTTP: web.run_app(app,port=9090) ^ SyntaxError: 无效语法

每当我尝试在 aiohttp 中集成模板时,我都会遇到这个问题,我不知道问题出在哪里,这是我的代码

如果我删除该 aiohttp_jinja2.setup 行一切正常,
我已按照文档中提到的设置模板的所有内容进行操作,但无法解决问题

0 投票
1 回答
4931 浏览

python - Aiohttp 异步会话请求

所以我一直在使用会话来抓取一个带有请求的网站( www.cardsphere.com )受保护的页面,如下所示:

现在因为它有很多页面,我想用 Aiohttp + asyncio 来加速它......但我错过了一些东西。我已经能够或多或少地使用它来抓取不受保护的页面,如下所示:

这给出了一些结果,但是对于需要登录的页面,我该如何做呢?我尝试session.post(<login-url>,data=payload)在异步函数中添加,但显然效果不佳,它只会继续登录。有没有办法在循环函数之前“设置”一个 aiohttp ClientSession?因为我需要先登录,然后在同一个会话中,使用 asyncio + aiohttp 从一堆受保护的链接中获取数据?

对python来说还是很新的,异步更是如此,我在这里遗漏了一些关键概念。如果有人能指出我正确的方向,我将不胜感激。

0 投票
2 回答
7088 浏览

python-asyncio - 如何模拟 aiohttp.ClientSession 的响应?

我正在使用 aiohttp 发出异步请求,并且我想测试我的代码。我想模拟 aiohttp.ClientSession 发送的请求。我正在寻找类似于响应处理模拟requests库的方式的东西。

我怎样才能模拟出做出的回应aiohttp.ClientSession

  • 我已通读aiohttp 测试文档。似乎它们涵盖了模拟对您的 Web 服务器的传入请求,但我不确定这是否有助于我模拟对传出请求的响应

编辑

我在几个项目中使用了https://github.com/pnuckowski/aioresponses,它非常适合我的需求。

0 投票
1 回答
204 浏览

python - 如何在 aiohttp 或烧瓶请求中写入全局变量(或单例)

我正在尝试从烧瓶请求写入全局对象。我知道不建议在这种情况下使用全局变量,但我正在更改状态以执行一些测试。我不想使用任何缓存内存解决方案,例如 pickledb。

我尝试了多种方法,但都没有成功。我也试图理解为什么单例解决方案不起作用,例如

在某些时候,我调用 endpoint1: s = Singleton.get_instance() s.foo='bar'

现在,如果我得到 s.foo 它就不会是“不是酒吧”。相反,它不会改变!

知道为什么吗?

谢谢

0 投票
1 回答
794 浏览

aiohttp - aiohttp 模拟客户端会话响应

尝试模拟 aiohttp.ClientSession 的响应以进行测试

我的代码如下所示:

我想用我想象的像这样的东西来测试我的代码:

我怎样才能做到这一点?