@@ -21,25 +21,29 @@ async def test_message_init(self, entry, dummy_message):
2121 )
2222 assert msg .msg_handle
2323
24- async def test_message_callback_data ( self , dummy_message ):
25- """Test message type."""
26- msg = dummy_message ( MessageType . RAW ,
27- CommParams (),
28- False ,
29- [ 1 ],
30- )
31- msg . msg_handle . decode = mock . MagicMock ( return_value = ( 5 , 0 , 0 , b'' ))
32- assert msg . callback_data ( b'' ) == 5
33-
34- async def test_message_callback_data_decode (self , dummy_message ):
24+ @ pytest . mark . parametrize (( "data" , "res_len" , "cx" , "rc" ), [
25+ ( b'12345' , 5 , 1 , [( 5 , 0 , 0 , b'12345' )]), # full frame
26+ ( b'12345' , 0 , 0 , [( 0 , 0 , 0 , b'' )]), # not full frame, need more data
27+ ( b'12345' , 5 , 0 , [( 5 , 0 , 0 , b'' )]), # faulty frame, skipped
28+ ( b'1234512345' , 10 , 2 , [( 5 , 0 , 0 , b'12345' ), ( 5 , 0 , 0 , b'12345' )]), # 2 full frames
29+ ( b'12345678' , 5 , 1 , [( 5 , 0 , 0 , b'12345' ), ( 0 , 0 , 0 , b'' )]), # full frame, not full frame
30+ ( b'67812345' , 8 , 1 , [( 3 , 0 , 0 , b'' ), ( 5 , 0 , 0 , b'12345' )]), # garble first, full frame next
31+ ( b'12345678' , 5 , 0 , [( 5 , 0 , 0 , b'' ), ( 0 , 0 , 0 , b'' )]), # garble first, not full frame
32+ ( b'12345678' , 8 , 0 , [( 5 , 0 , 0 , b'' ), ( 3 , 0 , 0 , b'' )]), # garble first, faulty frame
33+ ])
34+ async def test_message_callback (self , dummy_message , data , res_len , cx , rc ):
3535 """Test message type."""
3636 msg = dummy_message (MessageType .RAW ,
3737 CommParams (),
3838 False ,
3939 [1 ],
4040 )
41- msg .msg_handle .decode = mock .MagicMock (return_value = (17 ,0 ,1 ,b'decode' ))
42- assert msg .callback_data (b'' ) == 17
41+ msg .callback_request_response = mock .Mock ()
42+ msg .msg_handle .decode = mock .MagicMock (side_effect = iter (rc ))
43+ assert msg .callback_data (data ) == res_len
44+ assert msg .callback_request_response .call_count == cx
45+ if cx :
46+ msg .callback_request_response .assert_called_with (b'12345' , 0 , 0 )
4347
4448 async def test_message_build_send (self , dummy_message ):
4549 """Test message type."""
0 commit comments