Проверка носа портит сеанс замазки - PullRequest
0 голосов
/ 25 февраля 2019

Когда я запускаю nosetests в моем сеансе putty, команда перестает работать.Например, любой вводимый мной ключ превращается в )

Единственный способ восстановления, который я нашел до сих пор, - это перезапустить сеанс.

Команда, которую я запускаю:

nosetests -v --with-xunitmp -m "(?:\b|_)[Tt]est" --xunitmp-file nosetests.xml  --processes=10 --process-timeout=600

Я использую тесты носа 1.3.7 и python 3.5.1

Редактировать:

Я немного сузил его.

  • Это происходит вне tmux (в сеансе замазки)
  • Это происходит потому, что я запускаю другие процессы из своих тестов python

Вотпример:

from unittest import TestCase
from subprocess import Popen
import time

class MyTest(TestCase):
    def test_this(self):
        self.assertTrue(True)

    def test_with_process(self):

        process = Popen(['watch', 'ls'])
        time.sleep(1)
        if process.poll() is None:
            process.kill()

Редактировать 2:

Похоже, что перенаправление подпроцесса на /dev/null устраняет проблему:

from unittest import TestCase
from subprocess import Popen, DEVNULL
import time

class MyTest(TestCase):
    def test_this(self):
        self.assertTrue(True)

    def test_with_process(self):

        process = Popen(['watch', 'ls'],
                stdout=DEVNULL,
                stderr=DEVNULL,
                stdin=DEVNULL)
        time.sleep(1)
        if process.poll() is not None:
            print("KILLING")
            process.kill()
            process.communicate()

Это решает проблему, я 'хотелось бы понять, почему это происходит ...

...