|  | @@ -1,3 +1,4 @@
 | 
	
		
			
				|  |  | +import logging
 | 
	
		
			
				|  |  |  import unittest.mock
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import pytest
 | 
	
	
		
			
				|  | @@ -11,15 +12,29 @@ import switchbot_mqtt
 | 
	
		
			
				|  |  |  @pytest.mark.parametrize(
 | 
	
		
			
				|  |  |      "action", [switchbot_mqtt._SwitchbotAction.ON, switchbot_mqtt._SwitchbotAction.OFF]
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  | -def test__send_command(mac_address, action):
 | 
	
		
			
				|  |  | +@pytest.mark.parametrize("command_successful", [True, False])
 | 
	
		
			
				|  |  | +def test__send_command(caplog, mac_address, action, command_successful):
 | 
	
		
			
				|  |  |      with unittest.mock.patch("switchbot.Switchbot") as switchbot_device_mock:
 | 
	
		
			
				|  |  | -        switchbot_device_mock.turn_on = unittest.mock.MagicMock(return_value=True)
 | 
	
		
			
				|  |  | -        switchbot_device_mock.turn_off = unittest.mock.MagicMock(return_value=True)
 | 
	
		
			
				|  |  | -        switchbot_mqtt._send_command(mac_address, action)
 | 
	
		
			
				|  |  | +        switchbot_device_mock().turn_on.return_value = command_successful
 | 
	
		
			
				|  |  | +        switchbot_device_mock().turn_off.return_value = command_successful
 | 
	
		
			
				|  |  | +        switchbot_device_mock.reset_mock()
 | 
	
		
			
				|  |  | +        with caplog.at_level(logging.INFO):
 | 
	
		
			
				|  |  | +            switchbot_mqtt._send_command(mac_address, action)
 | 
	
		
			
				|  |  |      switchbot_device_mock.assert_called_once_with(mac=mac_address)
 | 
	
		
			
				|  |  | +    assert len(caplog.records) == 1
 | 
	
		
			
				|  |  | +    logger, log_level, log_message = caplog.record_tuples[0]
 | 
	
		
			
				|  |  | +    assert logger == "switchbot_mqtt"
 | 
	
		
			
				|  |  | +    if command_successful:
 | 
	
		
			
				|  |  | +        assert log_level == logging.INFO
 | 
	
		
			
				|  |  | +    else:
 | 
	
		
			
				|  |  | +        assert log_level == logging.ERROR
 | 
	
		
			
				|  |  | +        assert "failed" in log_message
 | 
	
		
			
				|  |  | +    assert mac_address in log_message
 | 
	
		
			
				|  |  |      if action == switchbot_mqtt._SwitchbotAction.ON:
 | 
	
		
			
				|  |  |          switchbot_device_mock().turn_on.assert_called_once_with()
 | 
	
		
			
				|  |  |          assert not switchbot_device_mock().turn_off.called
 | 
	
		
			
				|  |  | +        assert "on" in log_message
 | 
	
		
			
				|  |  |      else:
 | 
	
		
			
				|  |  |          switchbot_device_mock().turn_off.assert_called_once_with()
 | 
	
		
			
				|  |  |          assert not switchbot_device_mock().turn_on.called
 | 
	
		
			
				|  |  | +        assert "off" in log_message
 |