我正在尝试使用我的errbot测试来修补依赖项。我遇到的问题是 errbot 如何导入模块。它不是静态的,并且在我添加测试或它们以不同的顺序测试时会破坏我的补丁装饰器。
我有一个名为 EDB (edb.py) 的插件。在 edb.py 中,我使用import pyedb
. 这位于我的site-packages
.
我有我的测试文件 test_edb.py 我尝试像这样修补我的测试方法
pytest_plugins = ["errbot.backends.test"]
extra_plugin_dir = '.'
from unittest.mock import patch # noqa: E402
@patch('yapsy_loaded_plugin_EDB_1.pyedb', autospec=True)
def test_edb_testlist(pyedb_mock, testbot):
testbot.push_message('!edb testlist')
assert "Okay, let me get..." == testbot.pop_message()
assert "I don't see any..." == testbot.pop_message()
Errbotyapsy_loaded_plugin_EDB_<xx>
为模块导入添加了此路径,但 xx 取决于运行测试的顺序。这不起作用,我需要一些静态导入路径mypath.pyedb
。
我希望有一种不同的方法来解决这个问题。也许我可以更改导入模块的方式,使其不依赖于 errbot 导入?
这是Errbot 测试的链接以供参考。