Я не могу просто иметь примеры пакетов плагина в качестве зависимостей для разработки, так как я хочу иметь возможность проверять различные случаи с разными плагинами: < /p>
Что произойдет, если плагин не может импортировать? < /li>
Что произойдет, если плагин поднимает исключение? < /li>
Что ж, с моим приложением? Система входа Python.
Код: Выделить всё
def test_bad_plugin_class():
class MyBadPlugin(MyPluginInterface):
def do_something(self):
# This code is broken
raise RuntimeError("No.")
with importlib.metadata.add_mock_entrypoint( # function does not exist :(
'my_package.plugins',
'bad_plugin_lib:MyBadPlugin',
# Give the class that should be returned when calling EntryPoint.load
# to avoid needing to create a file to import from
MyBadPlugin,
):
# Would check for actual error handling here
with pytest.raises(ImportError):
my_library.load_plugins()
Как можно Мне это удалось?
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-and-load
Мобильная версия