python Завершение процесса
Есть проект.
В проекте есть папка tests, где лежат отдельные файлы тестов и run_tests, который их всех запускает функцией main:
def run_script(script):
subprocess.Popen(["python3", "-Wignore", "-m", script])
def main():
for file in os.listdir('tests'):
run_script('tests.{}'.format(file.split('.')[0]))
if __name__ == "__main__":
main()
Запускается из терминала командой python -m tests.run_tests.
Все файлы отрабатывают корректно, но в терминале процесс не завершается.
А надо так (это после ручного нажатия ctrl + c):

Добавлял в код sys.exit(), sys.exit(0), exit(), quit() (два последних плохие варианты) - не помогает.
Что делать?
update
Добавил print(script) в run_script перед subprocess.... Получилось так:

Ответы (1 шт):
Автор решения: Garp
→ Ссылка
Неправильно использовался subprocess.
Так всё работает:
def run_script(script):
script1 = 'python3 -Wignore -m tests.{}'.format(script)
subprocess.call(script1, shell=True)
def main():
for file in os.listdir('tests'):
run_script(file.split('.')[0])
if __name__ == "__main__":
main()
