Я не могу просто иметь примеры пакетов плагина в качестве зависимостей для разработки, так как я хочу иметь возможность проверять различные случаи с разными плагинами: < /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()
< /code>
Я мог бы просто издеваться над всей системой въездных точек, но это кажется чрезмерным и утомительным, и поэтому я ищу лучшее решение. < /p>
Как может Я выполняю это?
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-and-load
Мобильная версия