Тест 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(имя хоста = хост)