1212else : # Python 2
1313 from mock import Mock
1414
15+
1516@pytest .fixture
1617def rtu_framer ():
1718 return ModbusRtuFramer (ClientDecoder ())
1819
20+
1921@pytest .fixture
2022def ascii_framer ():
2123 return ModbusAsciiFramer (ClientDecoder ())
2224
25+
2326@pytest .fixture
2427def binary_framer ():
2528 return ModbusBinaryFramer (ClientDecoder ())
2629
30+
2731@pytest .mark .parametrize ("framer" , [ModbusRtuFramer ,
2832 ModbusAsciiFramer ,
2933 ModbusBinaryFramer ,
@@ -116,9 +120,12 @@ def test_populate_result(rtu_framer):
116120 assert result .unit_id == 255
117121
118122
119- def test_process_incoming_packet (rtu_framer ):
123+ @pytest .mark .parametrize ('framer' , [ascii_framer , rtu_framer , binary_framer ])
124+ def test_process_incoming_packet (framer ):
120125 def cb (res ):
121126 return res
127+ # data = b''
128+ # framer.processIncomingPacket(data, cb, unit=1, single=False)
122129
123130
124131def test_build_packet (rtu_framer ):
@@ -160,4 +167,22 @@ def cb(res):
160167
161168def test_get_raw_frame (rtu_framer ):
162169 rtu_framer ._buffer = b'\x00 \x01 \x00 \x01 \x00 \n \xec \x1c '
163- assert rtu_framer .getRawFrame () == rtu_framer ._buffer
170+ assert rtu_framer .getRawFrame () == rtu_framer ._buffer
171+
172+
173+ def test_validate_unit_id (rtu_framer ):
174+ rtu_framer .populateHeader ( b'\x00 \x01 \x00 \x01 \x00 \n \xec \x1c ' )
175+ assert rtu_framer ._validate_unit_id ([0 ], False )
176+ assert rtu_framer ._validate_unit_id ([1 ], True )
177+
178+
179+ @pytest .mark .parametrize ('data' , [b':010100010001FC\r \n ' ,
180+ b'' ])
181+ def test_decode_ascii_data (ascii_framer , data ):
182+ data = ascii_framer .decode_data (data )
183+ assert isinstance (data , dict )
184+ if data :
185+ assert data .get ("unit" ) == 1
186+ assert data .get ("fcode" ) == 1
187+ else :
188+ assert not data
0 commit comments