время от времени, когда я пишу код на Python, мне приходится обходиться без определенных сторонних модулей.
Например. Когда я пишу аутентификацию пользователя, это может быть сделано несколькими способами, и один из них - с использованием LDAP. Однако если пользователь не хочет использовать аутентификацию LDAP, он может выбрать другую опцию в файле конфигурации, и в этом случае ему не нужно устанавливать модуль ldap.
Обычно я решаю это следующим образом:
if config.foo:
import ldap_auth as auth
elif config.foo2:
import other_auth as auth
...
auth.do_stuff(...)
и я импортирую модуль ldap только в модуль ldap_auth. Лично я нахожу это довольно хорошим, однако, конечно, doctests вызывает ошибку ImportError при попытке выполнить ldap_auth.
Теперь я знаю, что могу поймать его, попытавшись импортировать модуль ldap в ldap_auth, но это просто немного испортило красивый код (весь смысл выполнения всего процесса импорта ldap_auth как auth избегать ImportErrors).
Есть ли более элегантный способ предотвратить возникновение ImportErrors на doctest при использовании этого "шаблона"?
Приветствия
Tom