Тест PyUnit зависает, если использовать unittest.TextTestRunner и подключиться к удаленному серверу

Я пытаюсь запустить тесты через unittest.TextTestRunner. Но я столкнулся с проблемой: выполнение теста зависает без какого-либо прогресса, если тест содержит код, который подключается к удаленному серверу через ssh с помощью paramiko. По какой-то причине он зависает при подключении к удаленному серверу в этой строке:

client.connect (имя хоста = хост)

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print("Before connect")
client.connect(hostname=host)
print("Connected to %s" % host)

Пример теста:

class Test(unittest.TestCase):
  def test_fail(self):
      connect_to_remote_server()
      self.assertEqual(1, 2, "1==2 Should fail")

suite = unittest.TestLoader().loadTestsFromTestCase(Test)
testResult = unittest.TextTestRunner(verbosity=2).run(suite)

Все работает нормально, если вы не используете unittest.TextTestRunner или не подключаетесь к удаленному серверу.

1 ответ

Кажется, что эта проблема относится к https://github.com/paramiko/paramiko/issues/104

Обходной путь: добавить код

from paramiko import py3compat
py3compat.u("dirty hack")
from cryptography.hazmat.backends import default_backend
default_backend()

до

client.connect(имя хоста = хост)

Другие вопросы по тегам