установка возвращаемого значения и проверка method_calls для MagickMock - PullRequest
0 голосов
/ 01 ноября 2019

Мне нужно смоделировать метод записи pyserial, используя Magick mock.

class UnderTest ():
def __init__(self):

    self.serialport = serial.Serial(port='dev/ttyACM0')

def write(self, some_bytes):

    l = self.serialport.write(some_bytes)
    return l

MagickMock работает для создания, но я не могу узнать, как смоделировать метод write, чтобы установить возвращаемое значение и проверить вызовы ввызовы методов. вот что итрид /

class Test(unittest.TestCase):
""" tests for init LockControler with no LC connected"""

def setUp(self):
    # no serial port so mock all functions of serial port
    self.serialmock = unittest.mock.MagicMock(spec=serial.Serial, name='serialmock')
    patcher1 = unittest.mock.patch('serial.Serial', new=self.serialmock)
    serialm = patcher1.start()
    self.undertest = UnderTest()

def test_write(self):

    writemock = self.serialmock().write()(return_value=2)
    a = unittest.mock.patch.object(self.undertest.serialport, 'write', new=writemock)
    self.undertest.write(b'\x50\x61\x73\x73')
    # I want to check here method_calls
...