AssertionError: не вызывается при запуске утверждения для фиктивного метода - PullRequest
0 голосов
/ 23 октября 2018

Я использую модуль 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

Я много искал, но не мог понять, что я делаю неправильно?Может кто-то здесь предложить мне или указать мне правильное направление?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...