У меня есть приложение Python, которое скомпилировано в .exe.
В некоторых случаях, программа завершается с sys.exit(), но не закрывать окно консоли Я делаю это с кодом ниже, который работает отлично:Система («пауза») в unittest
try:
sys.exit()
except SystemExit:
raise
finally:
os.system("pause")
Проблема заключается в том, что мне нужно проверить если мой код вызывает SystemExit, но из-за финального блока тесты не могут пройти - они просто бесконечны.
Есть ли возможность, чтобы убрать пропуск os.system("pause")
?
Я могу добавить параметр по умолчанию, который предотвратит приостановку, но в моем случае это будет сложным - если есть какая-то возможность, я хотел бы сделать это в unittests.
Почему вы выполняете единичный тест на уровне приложения? –
просто патч 'os.system' для этого теста – kwarunek
@ ignacio-vazquez-abrams - я запускаю функцию' main() 'с определенными параметрами и проверяю, вызывает ли это SystemExit - как проверить это не в unittests (я не уверен, правильно ли я понимаю ваш комментарий)? @kwarunek - вы можете сказать что-то еще? – Djent