Я использую модуль pexpect в своем коде Python для подключения к удаленному хосту и запуска некоторых команд.При написании модульных тестов для вышеуказанной программы и использовании mock для pexpect.spawn
, при запуске проверяет методы класса pexpect.spawn, я получаю AssertionError
.
Пример программы :
import pexpect
class Myclass():
def spawn_thread(self):
con = pexpect.spawn('ssh user@ip')
con.expect('$')
Пример программы Unittest :
import unittest
from unittest.mock import patch
from myclass import Myclass
class Test_Myclass(unittest.TestCase):
@patch("pexpect.spawn")
def test_spawn(self, mock):
Myclass().spawn_thread()
self.assertIsInstance(mock, unittest.mock.MagicMock)
mock.assert_called_with('ssh user@ip')
mock.expect.assert_called_with('$')
Когда я запускаю выше unittest, онане удается с ошибкой
raise AssertionError('Expected call: %s\nNot called' % (expected,))
AssertionError: Expected call: expect('$')
Not called
Я много искал, но не мог понять, что я делаю неправильно?Может кто-то здесь предложить мне или указать мне правильное направление?