11#!/usr/bin/env python
22
33import unittest
4+ from typing import cast
5+
6+ import serial
47
58import can
69
1518
1619https://realpython.com/pypy-faster-python/#it-doesnt-work-well-with-c-extensions
1720"""
18- TIMEOUT = 0.5 if IS_PYPY else 0.001 # 0.001 is the default set in slcanBus
21+ TIMEOUT = 0.5 if IS_PYPY else 0.01 # 0.001 is the default set in slcanBus
1922
2023
2124class slcanTestCase (unittest .TestCase ):
2225 def setUp (self ):
23- self .bus = can .Bus (
24- "loop://" , interface = "slcan" , sleep_after_open = 0 , timeout = TIMEOUT
26+ self .bus = cast (
27+ can .interfaces .slcan .slcanBus ,
28+ can .Bus ("loop://" , interface = "slcan" , sleep_after_open = 0 , timeout = TIMEOUT ),
2529 )
26- self .serial = self .bus .serialPortOrig
27- self .serial .read ( self . serial . in_waiting )
30+ self .serial = cast ( serial . Serial , self .bus .serialPortOrig )
31+ self .serial .reset_input_buffer ( )
2832
2933 def tearDown (self ):
3034 self .bus .shutdown ()
@@ -44,8 +48,9 @@ def test_send_extended(self):
4448 arbitration_id = 0x12ABCDEF , is_extended_id = True , data = [0xAA , 0x55 ]
4549 )
4650 self .bus .send (msg )
47- data = self .serial .read (self .serial .in_waiting )
48- self .assertEqual (data , b"T12ABCDEF2AA55\r " )
51+ expected = b"T12ABCDEF2AA55\r "
52+ data = self .serial .read (len (expected ))
53+ self .assertEqual (data , expected )
4954
5055 def test_recv_standard (self ):
5156 self .serial .write (b"t4563112233\r " )
@@ -62,8 +67,9 @@ def test_send_standard(self):
6267 arbitration_id = 0x456 , is_extended_id = False , data = [0x11 , 0x22 , 0x33 ]
6368 )
6469 self .bus .send (msg )
65- data = self .serial .read (self .serial .in_waiting )
66- self .assertEqual (data , b"t4563112233\r " )
70+ expected = b"t4563112233\r "
71+ data = self .serial .read (len (expected ))
72+ self .assertEqual (data , expected )
6773
6874 def test_recv_standard_remote (self ):
6975 self .serial .write (b"r1238\r " )
@@ -79,8 +85,9 @@ def test_send_standard_remote(self):
7985 arbitration_id = 0x123 , is_extended_id = False , is_remote_frame = True , dlc = 8
8086 )
8187 self .bus .send (msg )
82- data = self .serial .read (self .serial .in_waiting )
83- self .assertEqual (data , b"r1238\r " )
88+ expected = b"r1238\r "
89+ data = self .serial .read (len (expected ))
90+ self .assertEqual (data , expected )
8491
8592 def test_recv_extended_remote (self ):
8693 self .serial .write (b"R12ABCDEF6\r " )
@@ -96,8 +103,9 @@ def test_send_extended_remote(self):
96103 arbitration_id = 0x12ABCDEF , is_extended_id = True , is_remote_frame = True , dlc = 6
97104 )
98105 self .bus .send (msg )
99- data = self .serial .read (self .serial .in_waiting )
100- self .assertEqual (data , b"R12ABCDEF6\r " )
106+ expected = b"R12ABCDEF6\r "
107+ data = self .serial .read (len (expected ))
108+ self .assertEqual (data , expected )
101109
102110 def test_partial_recv (self ):
103111 self .serial .write (b"T12ABCDEF" )
0 commit comments