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