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()

→ Ссылка