@@ -77,15 +77,16 @@ def test_client_shutdown(mocker: MockerFixture, mock_connection: Mock, mock_hand
7777 mock_connection .shutdown .assert_called_once ()
7878
7979
80+ @pytest .mark .parametrize ("payload" , [b"test_payload" , bytearray (b"test_payload" ), "test_payload" ])
8081@pytest .mark .parametrize ("qos" , [0 , 1 , 2 , MQTTQoS .Q0 , MQTTQoS .Q1 , MQTTQoS .Q2 ])
81- def test_client_publish (qos : int | MQTTQoS , mocker : MockerFixture , mock_connection : Mock , mock_handlers : MagicMock ,
82- mock_session : Mock , mock_subscriptions : Mock ) -> None :
82+ def test_client_publish (payload : bytes | bytearray | str , qos : int | MQTTQoS , mocker : MockerFixture ,
83+ mock_connection : Mock , mock_handlers : MagicMock , mock_session : Mock , mock_subscriptions : Mock ) -> None :
8384 client = Client ()
8485
8586 mock_session .publish .return_value = mocker .Mock ()
8687 publish_handle = client .publish (
8788 "test/topic" ,
88- b"test_payload" ,
89+ payload ,
8990 qos = qos ,
9091 retain = True ,
9192 properties = MQTTPublishProps (
@@ -98,9 +99,10 @@ def test_client_publish(qos: int | MQTTQoS, mocker: MockerFixture, mock_connecti
9899 )
99100 assert publish_handle == mock_session .publish .return_value
100101 expected_qos = MQTTQoS (qos ) if not isinstance (qos , MQTTQoS ) else qos
102+ expected_payload = payload .encode ("utf-8" ) if isinstance (payload , str ) else bytes (payload )
101103 mock_session .publish .assert_called_once_with (
102104 "test/topic" ,
103- b"test_payload" ,
105+ expected_payload ,
104106 qos = expected_qos ,
105107 retain = True ,
106108 properties = MQTTPublishProps (
0 commit comments