async def test_brightness_cover(hass): """Test brightness trait support for cover domain.""" assert trait.BrightnessTrait.supported(cover.DOMAIN, cover.SUPPORT_SET_POSITION) trt = trait.BrightnessTrait(hass, State('cover.bla', cover.STATE_OPEN, { cover.ATTR_CURRENT_POSITION: 75 }), BASIC_CONFIG) assert trt.sync_attributes() == {} assert trt.query_attributes() == { 'brightness': 75 } calls = async_mock_service( hass, cover.DOMAIN, cover.SERVICE_SET_COVER_POSITION) await trt.execute( trait.COMMAND_BRIGHTNESS_ABSOLUTE, BASIC_DATA, {'brightness': 50}) assert len(calls) == 1 assert calls[0].data == { ATTR_ENTITY_ID: 'cover.bla', cover.ATTR_POSITION: 50 }
async def test_brightness_media_player(hass): """Test brightness trait support for media player domain.""" assert trait.BrightnessTrait.supported(media_player.DOMAIN, media_player.SUPPORT_VOLUME_SET) trt = trait.BrightnessTrait(hass, State( 'media_player.bla', media_player.STATE_PLAYING, { media_player.ATTR_MEDIA_VOLUME_LEVEL: .3 }), BASIC_CONFIG) assert trt.sync_attributes() == {} assert trt.query_attributes() == { 'brightness': 30 } calls = async_mock_service( hass, media_player.DOMAIN, media_player.SERVICE_VOLUME_SET) await trt.execute( trait.COMMAND_BRIGHTNESS_ABSOLUTE, BASIC_DATA, {'brightness': 60}) assert len(calls) == 1 assert calls[0].data == { ATTR_ENTITY_ID: 'media_player.bla', media_player.ATTR_MEDIA_VOLUME_LEVEL: .6 }
async def test_brightness_light(hass): """Test brightness trait support for light domain.""" assert trait.BrightnessTrait.supported(light.DOMAIN, light.SUPPORT_BRIGHTNESS) trt = trait.BrightnessTrait( hass, State('light.bla', light.STATE_ON, {light.ATTR_BRIGHTNESS: 243}), BASIC_CONFIG) assert trt.sync_attributes() == {} assert trt.query_attributes() == {'brightness': 95} calls = async_mock_service(hass, light.DOMAIN, light.SERVICE_TURN_ON) await trt.execute(trait.COMMAND_BRIGHTNESS_ABSOLUTE, {'brightness': 50}) assert len(calls) == 1 assert calls[0].data == { ATTR_ENTITY_ID: 'light.bla', light.ATTR_BRIGHTNESS_PCT: 50 }
async def test_brightness_light(hass): """Test brightness trait support for light domain.""" assert helpers.get_google_type(light.DOMAIN, None) is not None assert trait.BrightnessTrait.supported(light.DOMAIN, light.SUPPORT_BRIGHTNESS, None) trt = trait.BrightnessTrait( hass, State("light.bla", light.STATE_ON, {light.ATTR_BRIGHTNESS: 243}), BASIC_CONFIG, ) assert trt.sync_attributes() == {} assert trt.query_attributes() == {"brightness": 95} events = [] hass.bus.async_listen(EVENT_CALL_SERVICE, events.append) calls = async_mock_service(hass, light.DOMAIN, light.SERVICE_TURN_ON) await trt.execute(trait.COMMAND_BRIGHTNESS_ABSOLUTE, BASIC_DATA, {"brightness": 50}, {}) await hass.async_block_till_done() assert len(calls) == 1 assert calls[0].data == { ATTR_ENTITY_ID: "light.bla", light.ATTR_BRIGHTNESS_PCT: 50 } assert len(events) == 1 assert events[0].data == { "domain": "light", "service": "turn_on", "service_data": { "brightness_pct": 50, "entity_id": "light.bla" }, }
async def test_brightness_light(hass): """Test brightness trait support for light domain.""" assert trait.BrightnessTrait.supported(light.DOMAIN, light.SUPPORT_BRIGHTNESS) trt = trait.BrightnessTrait(hass, State('light.bla', light.STATE_ON, { light.ATTR_BRIGHTNESS: 243 }), BASIC_CONFIG) assert trt.sync_attributes() == {} assert trt.query_attributes() == { 'brightness': 95 } events = [] hass.bus.async_listen(EVENT_CALL_SERVICE, events.append) calls = async_mock_service(hass, light.DOMAIN, light.SERVICE_TURN_ON) await trt.execute( trait.COMMAND_BRIGHTNESS_ABSOLUTE, BASIC_DATA, {'brightness': 50}) await hass.async_block_till_done() assert len(calls) == 1 assert calls[0].data == { ATTR_ENTITY_ID: 'light.bla', light.ATTR_BRIGHTNESS_PCT: 50 } assert len(events) == 1 assert events[0].data == { 'domain': 'light', 'service': 'turn_on', 'service_data': {'brightness_pct': 50, 'entity_id': 'light.bla'} }