1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
#!/usr/bin/env python
"""
Tests for CANtact interfaces
"""
import unittest
import can
from can.interfaces import cantact
class CantactTest(unittest.TestCase):
def test_bus_creation(self):
bus = can.Bus(channel=0, interface="cantact", _testing=True)
self.assertIsInstance(bus, cantact.CantactBus)
self.assertEqual(bus.protocol, can.CanProtocol.CAN_20)
cantact.MockInterface.set_bitrate.assert_called()
cantact.MockInterface.set_bit_timing.assert_not_called()
cantact.MockInterface.set_enabled.assert_called()
cantact.MockInterface.set_monitor.assert_called()
cantact.MockInterface.start.assert_called()
def test_bus_creation_bittiming(self):
cantact.MockInterface.set_bitrate.reset_mock()
bt = can.BitTiming(f_clock=24_000_000, brp=3, tseg1=13, tseg2=2, sjw=1)
bus = can.Bus(channel=0, interface="cantact", timing=bt, _testing=True)
self.assertIsInstance(bus, cantact.CantactBus)
self.assertEqual(bus.protocol, can.CanProtocol.CAN_20)
cantact.MockInterface.set_bitrate.assert_not_called()
cantact.MockInterface.set_bit_timing.assert_called()
cantact.MockInterface.set_enabled.assert_called()
cantact.MockInterface.set_monitor.assert_called()
cantact.MockInterface.start.assert_called()
def test_transmit(self):
bus = can.Bus(channel=0, interface="cantact", _testing=True)
msg = can.Message(
arbitration_id=0xC0FFEF, data=[1, 2, 3, 4, 5, 6, 7, 8], is_extended_id=True
)
bus.send(msg)
cantact.MockInterface.send.assert_called()
def test_recv(self):
bus = can.Bus(channel=0, interface="cantact", _testing=True)
frame = bus.recv(timeout=0.5)
cantact.MockInterface.recv.assert_called()
self.assertIsInstance(frame, can.Message)
def test_recv_timeout(self):
bus = can.Bus(channel=0, interface="cantact", _testing=True)
frame = bus.recv(timeout=0.0)
cantact.MockInterface.recv.assert_called()
self.assertIsNone(frame)
def test_shutdown(self):
bus = can.Bus(channel=0, interface="cantact", _testing=True)
bus.shutdown()
cantact.MockInterface.stop.assert_called()
|