Документы говорят, что вызов sys.exit() вызывает исключение SystemExit, которое может быть обнаружено на внешних уровнях. У меня есть ситуации, в которой я хочу, чтобы окончательно и бесспорно выйти из внутри теста, однако UnitTest модуль ловит SystemExit и препятствует выходу. Обычно это здорово, но конкретная ситуация, которую я пытаюсь обработать, - это та, где наша тестовая среда обнаружила, что она настроена так, чтобы указывать на нетестовую базу данных. В этом случае я хочу выйти и предотвратить запуск каких-либо дополнительных тестов. Конечно, поскольку unittest ловушки SystemExit и продолжает счастливо на своем пути, это мешает мне.Есть ли способ предотвратить появление исключения SystemExit из sys.exit()?
Единственный вариант, о котором я думал до сих пор, - это использовать ctypes или что-то подобное вызову exit (3), но это кажется довольно уродливым взломом для чего-то, что должно быть очень просто.
Это также актуально при попытке выйти из программы из встроенной оболочки IPython. – quazgar 2016-10-10 12:17:12