Как я могу проверить, что точки входа пакета Python правильно обнаружены и загружены?Python

Программы на Python
Ответить
Anonymous
 Как я могу проверить, что точки входа пакета Python правильно обнаружены и загружены?

Сообщение Anonymous »

В настоящее время я пишу пакет, который стремится загрузить взносы ввода из других установленных пакетов с использованием importlib.metadata.entry_points , но не уверен, как я могу проверить это правильно. Я использую Pytest для тестирования моего пакета. /p>
Я не могу просто иметь примеры пакетов плагина в качестве зависимостей для разработки, так как я хочу иметь возможность проверять различные случаи с разными плагинами: < /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»