mirror of
				https://github.com/home-assistant/core.git
				synced 2025-10-30 22:19:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """Tests for Comelit SimpleHome switch platform."""
 | |
| 
 | |
| from unittest.mock import AsyncMock, patch
 | |
| 
 | |
| import pytest
 | |
| from syrupy.assertion import SnapshotAssertion
 | |
| 
 | |
| from homeassistant.components.switch import (
 | |
|     DOMAIN as SWITCH_DOMAIN,
 | |
|     SERVICE_TOGGLE,
 | |
|     SERVICE_TURN_OFF,
 | |
|     SERVICE_TURN_ON,
 | |
| )
 | |
| from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON, Platform
 | |
| from homeassistant.core import HomeAssistant
 | |
| from homeassistant.helpers import entity_registry as er
 | |
| 
 | |
| from . import setup_integration
 | |
| 
 | |
| from tests.common import MockConfigEntry, snapshot_platform
 | |
| 
 | |
| ENTITY_ID = "switch.switch0"
 | |
| 
 | |
| 
 | |
| async def test_all_entities(
 | |
|     hass: HomeAssistant,
 | |
|     snapshot: SnapshotAssertion,
 | |
|     mock_serial_bridge: AsyncMock,
 | |
|     mock_serial_bridge_config_entry: MockConfigEntry,
 | |
|     entity_registry: er.EntityRegistry,
 | |
| ) -> None:
 | |
|     """Test all entities."""
 | |
|     with patch("homeassistant.components.comelit.BRIDGE_PLATFORMS", [Platform.SWITCH]):
 | |
|         await setup_integration(hass, mock_serial_bridge_config_entry)
 | |
| 
 | |
|     await snapshot_platform(
 | |
|         hass,
 | |
|         entity_registry,
 | |
|         snapshot,
 | |
|         mock_serial_bridge_config_entry.entry_id,
 | |
|     )
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     ("service", "status"),
 | |
|     [
 | |
|         (SERVICE_TURN_OFF, STATE_OFF),
 | |
|         (SERVICE_TURN_ON, STATE_ON),
 | |
|         (SERVICE_TOGGLE, STATE_ON),
 | |
|     ],
 | |
| )
 | |
| async def test_switch_set_state(
 | |
|     hass: HomeAssistant,
 | |
|     mock_serial_bridge: AsyncMock,
 | |
|     mock_serial_bridge_config_entry: MockConfigEntry,
 | |
|     service: str,
 | |
|     status: str,
 | |
| ) -> None:
 | |
|     """Test switch set state service."""
 | |
| 
 | |
|     await setup_integration(hass, mock_serial_bridge_config_entry)
 | |
| 
 | |
|     assert (state := hass.states.get(ENTITY_ID))
 | |
|     assert state.state == STATE_OFF
 | |
| 
 | |
|     # Test set temperature
 | |
|     await hass.services.async_call(
 | |
|         SWITCH_DOMAIN,
 | |
|         service,
 | |
|         {ATTR_ENTITY_ID: ENTITY_ID},
 | |
|         blocking=True,
 | |
|     )
 | |
|     mock_serial_bridge.set_device_status.assert_called()
 | |
| 
 | |
|     assert (state := hass.states.get(ENTITY_ID))
 | |
|     assert state.state == status
 | 
