问题标签 [pytest-asyncio]

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 投票
0 回答
462 浏览

python-3.x - 使用 pytest-asyncio 和 aiohttp 时“忽略异常:RuntimeError:事件循环已关闭”

我正在用 pytest 编写 python 测试并且有一些我想测试的异步代码,所以我安装了 pytest-asyncio 插件。异步代码使用 aiohttp 并运行测试我在测试成功运行后收到以下警告/错误/提示。

我正在使用python -m pytest运行以下代码

当我发帖时,测试后的警告不会发生

这是我的要求.txt

异常被忽略的警告的目的是什么,为什么它只在某些情况下出现?

0 投票
1 回答
788 浏览

python - 多个异步单元测试失败,但一个一个运行它们会通过

我有两个单元测试,如果我一个一个运行它们,它们就会通过。如果我在班级级别运行它们,则一次通过,另一次失败response = await ac.post(并显示错误消息:RuntimeError: Event loop is closed

我已经尝试了几个小时,请问我错过了什么?

0 投票
1 回答
329 浏览

python-3.x - 属性错误:“nonetype”对象没有用于异步等待的属性“空”

如何为 y() 编写测试方法?在模拟 x() 后,出现此错误:attribute error: 'nonetype' object has no attribute 'empty'

test_y.py:

x_mock()基本上是创建一个数据框

0 投票
0 回答
936 浏览

python - 如何在 fastapi 中使用 httpx AsyncClient 和 pytest?

我已经尝试了所有我能找到的东西,但我无法让异步测试工作。

我开始RuntimeError: This event loop is already running运行TestClient(根据文档这很有意义),但我开始httpx.ConnectError: [Errno 8] nodename nor servname provided, or not known使用httpx AsyncClient.

我有一个简单的测试:

在哪里 /media

my_media_ep是一个带有多个异步 api 调用的长函数。

我也按照Async Tests docs中的建议进行了尝试,但得到了同样的错误。

有什么建议或例子吗?

0 投票
0 回答
227 浏览

python - 无法在异步功能测试中引发错误

pytest-asyncio在我目前正在进行的项目中使用。

在这个项目中,我实现了存储库模式和测试,我编写了一个简单的“内存存储库”(即:dict with pk on keys 和entities on values)。此存储库是一个具有异步方法的类,并具有以下方法:

我有以下测试:

whereservice.handle是另一个在第一行有 a 而没有在里面的async函数。await repository.update(pk)try/catch

问题是这个通过(显然应该失败)即使使用assert 1==2. 出于某种原因,我什至不能pdb/ipdb.set_trace()在存储库调用之后使用。

Pytest 向我显示此警告:

如何使用 传播测试中的 de 异常pytest-asyncio

0 投票
0 回答
87 浏览

python-3.x - 如果任何任务引发异常,Python asyncio.gather() 不会返回结果

asyncio.gather的文档说

如果 return_exceptions 为 False(默认值),则第一个引发的异常会立即传播到在 gather() 上等待的任务。aws 序列中的其他等待对象不会被取消,并将继续运行。

我运行上面的代码没有任何东西绑定到results变量,因为其中一项任务引发了异常。我不明白该文档,它说如果return_exceptions=True,则异常被收集,如果是False,则第一个引发的异常被传播到任务,其他等待对象继续运行。我希望引发 excpetion 的任务不会出现在 collect 中results,但是NameError当我尝试获得成功任务的结果时,我得到了。

0 投票
0 回答
28 浏览

pytest - 如何使用 pytest-asyncio 更改或检查测试的顺序

我正在使用pytest-asyncio但找不到任何关于如何确保文件运行顺序的文档?例如,如果我有test_user.py并且test_item.pytest_user先运行,有没有办法做到这一点?

0 投票
1 回答
418 浏览

python - 从 pytest 设备运行异步服务器

我正在尝试在 pytest 夹具中使用 asyncio 运行服务器

方法start如下

而一旦尝试打开与服务器的连接,测试就会打印此错误

编辑:问题是事件循环在之后立即关闭,所以我试图用标记我所有的灯具,(scope="module")但现在我得到了

编辑2:

所以我添加了event_loop夹具

这应该覆盖每个夹具的默认循环,使用@pytest.mark.asyncio.

通过在我的测试中进行调试,event_loop等于我存储在ServerEndpoint(即asyncio.get_running_loop())内的循环,但我仍然得到ConnectionRefusedError

0 投票
1 回答
66 浏览

python-asyncio - 使用流为 asyncio 编写 pytest 测试用例

我正在尝试为 asyncio 函数编写一个 pytest 测试用例,该函数确实读取输出流(stderr/stdout)并修改行。我要测试的函数(再次被调用 inside asyncio.gather)如下所示:

我写的pytest测试用例如下:

但是,当我执行这个 pytest 时,我遇到了AttributeError: 'str' object has no attribute 'read'. 如何在处理 stdout/stderr 流时测试 asyncio 协程?

0 投票
1 回答
156 浏览

python-asyncio - Pytest 一个调用异步协程的函数

我正在尝试使用 mock 和 pytest-asyncio 编写一个单元测试用例。我有一个正常的功能,使用asyncio.run. 【使用python3.7】

我能够为 asyncio 函数编写单元测试,sample_async但不能为launcher. 这是我尝试过的:

当我尝试运行 pytest 时,由于该函数不是 asyncio 协程,因此我一直RuntimeError: There is no current event loop in thread 'MainThread'.无法@pytest.mark.asyncio用于此测试。launcher我在这里做错了什么?