'How can I mock a python object that is initialized with a non-existing serial port?
I am trying to unit test a python module that interacts with an object which is initialized with a serial port. At the moment the test passes just if there is something connected to that serial port on the host computer.
class TestParse(unittest.TestCase):
cmd_mock = mock.Mock() # for mocking '_cmd' method in 'vp'
loop_mock = mock.Mock() # for mocking '_loop_cmd' method in 'vp'
def test_unpack_loop_data(self):
LoopStruct.unpack(codecs.decode(loop_data, 'hex'))
@mock.patch.object(VantagePro, '_cmd', cmd_mock)
@mock.patch.object(VantagePro, '_loop_cmd', loop_mock)
def test_fields(self):
self.loop_mock.return_value = codecs.decode(loop_data, 'hex')
# this is working just if there is an actual device attached.
vp = VantagePro('/dev/ttyUSB0')
fields = vp._get_loop_fields()
..... do something to test ..........
The object is VantagePro. How can I mock its initialization?
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
