mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Add caplog setup fixture. (#55714)
This commit is contained in:
parent
0700108278
commit
6348bf70ac
@ -25,3 +25,9 @@ async def start_ha(hass, count, domain, config, caplog):
|
|||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
await hass.async_start()
|
await hass.async_start()
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
async def caplog_setup_text(caplog):
|
||||||
|
"""Return setup log of integration."""
|
||||||
|
yield caplog.text
|
||||||
|
@ -431,13 +431,12 @@ async def test_availability_template(hass, start_ha):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_invalid_attribute_template(hass, caplog, start_ha):
|
async def test_invalid_attribute_template(hass, start_ha, caplog_setup_text):
|
||||||
"""Test that errors are logged if rendering template fails."""
|
"""Test that errors are logged if rendering template fails."""
|
||||||
hass.states.async_set("binary_sensor.test_sensor", "true")
|
hass.states.async_set("binary_sensor.test_sensor", "true")
|
||||||
assert len(hass.states.async_all()) == 2
|
assert len(hass.states.async_all()) == 2
|
||||||
text = str([x.getMessage() for x in caplog.get_records("setup")])
|
assert ("test_attribute") in caplog_setup_text
|
||||||
assert ("test_attribute") in text
|
assert ("TemplateError") in caplog_setup_text
|
||||||
assert ("TemplateError") in text
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("count,domain", [(1, binary_sensor.DOMAIN)])
|
@pytest.mark.parametrize("count,domain", [(1, binary_sensor.DOMAIN)])
|
||||||
@ -458,13 +457,12 @@ async def test_invalid_attribute_template(hass, caplog, start_ha):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_invalid_availability_template_keeps_component_available(
|
async def test_invalid_availability_template_keeps_component_available(
|
||||||
hass, caplog, start_ha
|
hass, start_ha, caplog_setup_text
|
||||||
):
|
):
|
||||||
"""Test that an invalid availability keeps the device available."""
|
"""Test that an invalid availability keeps the device available."""
|
||||||
|
|
||||||
assert hass.states.get("binary_sensor.my_sensor").state != STATE_UNAVAILABLE
|
assert hass.states.get("binary_sensor.my_sensor").state != STATE_UNAVAILABLE
|
||||||
text = str([x.getMessage() for x in caplog.get_records("setup")])
|
assert "UndefinedError: 'x' is undefined" in caplog_setup_text
|
||||||
assert ("UndefinedError: \\'x\\' is undefined") in text
|
|
||||||
|
|
||||||
|
|
||||||
async def test_no_update_template_match_all(hass, caplog):
|
async def test_no_update_template_match_all(hass, caplog):
|
||||||
|
@ -381,7 +381,7 @@ async def test_available_template_with_entities(hass, start_ha):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_invalid_attribute_template(hass, caplog, start_ha):
|
async def test_invalid_attribute_template(hass, caplog, start_ha, caplog_setup_text):
|
||||||
"""Test that errors are logged if rendering template fails."""
|
"""Test that errors are logged if rendering template fails."""
|
||||||
hass.states.async_set("sensor.test_sensor", "startup")
|
hass.states.async_set("sensor.test_sensor", "startup")
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
@ -390,9 +390,7 @@ async def test_invalid_attribute_template(hass, caplog, start_ha):
|
|||||||
hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
|
hass.bus.async_fire(EVENT_HOMEASSISTANT_START)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
await hass.helpers.entity_component.async_update_entity("sensor.invalid_template")
|
await hass.helpers.entity_component.async_update_entity("sensor.invalid_template")
|
||||||
|
assert "TemplateError" in caplog_setup_text
|
||||||
messages = str([x.message for x in caplog.get_records("setup")])
|
|
||||||
assert "TemplateError" in messages
|
|
||||||
assert "test_attribute" in caplog.text
|
assert "test_attribute" in caplog.text
|
||||||
|
|
||||||
|
|
||||||
@ -414,12 +412,11 @@ async def test_invalid_attribute_template(hass, caplog, start_ha):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_invalid_availability_template_keeps_component_available(
|
async def test_invalid_availability_template_keeps_component_available(
|
||||||
hass, caplog, start_ha
|
hass, start_ha, caplog_setup_text
|
||||||
):
|
):
|
||||||
"""Test that an invalid availability keeps the device available."""
|
"""Test that an invalid availability keeps the device available."""
|
||||||
assert hass.states.get("sensor.my_sensor").state != STATE_UNAVAILABLE
|
assert hass.states.get("sensor.my_sensor").state != STATE_UNAVAILABLE
|
||||||
messages = str([x.message for x in caplog.get_records("setup")])
|
assert "UndefinedError: 'x' is undefined" in caplog_setup_text
|
||||||
assert "UndefinedError: \\'x\\' is undefined" in messages
|
|
||||||
|
|
||||||
|
|
||||||
async def test_no_template_match_all(hass, caplog):
|
async def test_no_template_match_all(hass, caplog):
|
||||||
@ -624,14 +621,12 @@ async def test_sun_renders_once_per_sensor(hass, start_ha):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_self_referencing_sensor_loop(hass, caplog, start_ha):
|
async def test_self_referencing_sensor_loop(hass, start_ha, caplog_setup_text):
|
||||||
"""Test a self referencing sensor does not loop forever."""
|
"""Test a self referencing sensor does not loop forever."""
|
||||||
assert len(hass.states.async_all()) == 1
|
assert len(hass.states.async_all()) == 1
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
messages = str([x.message for x in caplog.get_records("setup")])
|
assert "Template loop detected" in caplog_setup_text
|
||||||
assert "Template loop detected" in messages
|
|
||||||
|
|
||||||
assert int(hass.states.get("sensor.test").state) == 2
|
assert int(hass.states.get("sensor.test").state) == 2
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert int(hass.states.get("sensor.test").state) == 2
|
assert int(hass.states.get("sensor.test").state) == 2
|
||||||
@ -654,13 +649,14 @@ async def test_self_referencing_sensor_loop(hass, caplog, start_ha):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_self_referencing_sensor_with_icon_loop(hass, caplog, start_ha):
|
async def test_self_referencing_sensor_with_icon_loop(
|
||||||
|
hass, start_ha, caplog_setup_text
|
||||||
|
):
|
||||||
"""Test a self referencing sensor loops forever with a valid self referencing icon."""
|
"""Test a self referencing sensor loops forever with a valid self referencing icon."""
|
||||||
assert len(hass.states.async_all()) == 1
|
assert len(hass.states.async_all()) == 1
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
messages = str([x.message for x in caplog.get_records("setup")])
|
assert "Template loop detected" in caplog_setup_text
|
||||||
assert "Template loop detected" in messages
|
|
||||||
|
|
||||||
state = hass.states.get("sensor.test")
|
state = hass.states.get("sensor.test")
|
||||||
assert int(state.state) == 3
|
assert int(state.state) == 3
|
||||||
@ -689,14 +685,13 @@ async def test_self_referencing_sensor_with_icon_loop(hass, caplog, start_ha):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_self_referencing_sensor_with_icon_and_picture_entity_loop(
|
async def test_self_referencing_sensor_with_icon_and_picture_entity_loop(
|
||||||
hass, caplog, start_ha
|
hass, start_ha, caplog_setup_text
|
||||||
):
|
):
|
||||||
"""Test a self referencing sensor loop forevers with a valid self referencing icon."""
|
"""Test a self referencing sensor loop forevers with a valid self referencing icon."""
|
||||||
assert len(hass.states.async_all()) == 1
|
assert len(hass.states.async_all()) == 1
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
messages = str([x.message for x in caplog.get_records("setup")])
|
assert "Template loop detected" in caplog_setup_text
|
||||||
assert "Template loop detected" in messages
|
|
||||||
|
|
||||||
state = hass.states.get("sensor.test")
|
state = hass.states.get("sensor.test")
|
||||||
assert int(state.state) == 4
|
assert int(state.state) == 4
|
||||||
@ -724,7 +719,7 @@ async def test_self_referencing_sensor_with_icon_and_picture_entity_loop(
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_self_referencing_entity_picture_loop(hass, caplog, start_ha):
|
async def test_self_referencing_entity_picture_loop(hass, start_ha, caplog_setup_text):
|
||||||
"""Test a self referencing sensor does not loop forever with a looping self referencing entity picture."""
|
"""Test a self referencing sensor does not loop forever with a looping self referencing entity picture."""
|
||||||
assert len(hass.states.async_all()) == 1
|
assert len(hass.states.async_all()) == 1
|
||||||
next_time = dt_util.utcnow() + timedelta(seconds=1.2)
|
next_time = dt_util.utcnow() + timedelta(seconds=1.2)
|
||||||
@ -735,8 +730,7 @@ async def test_self_referencing_entity_picture_loop(hass, caplog, start_ha):
|
|||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
messages = str([x.message for x in caplog.get_records("setup")])
|
assert "Template loop detected" in caplog_setup_text
|
||||||
assert "Template loop detected" in messages
|
|
||||||
|
|
||||||
state = hass.states.get("sensor.test")
|
state = hass.states.get("sensor.test")
|
||||||
assert int(state.state) == 1
|
assert int(state.state) == 1
|
||||||
@ -1006,14 +1000,13 @@ async def test_trigger_entity_render_error(hass, start_ha):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_trigger_not_allowed_platform_config(hass, caplog, start_ha):
|
async def test_trigger_not_allowed_platform_config(hass, start_ha, caplog_setup_text):
|
||||||
"""Test we throw a helpful warning if a trigger is configured in platform config."""
|
"""Test we throw a helpful warning if a trigger is configured in platform config."""
|
||||||
state = hass.states.get(TEST_NAME)
|
state = hass.states.get(TEST_NAME)
|
||||||
assert state is None
|
assert state is None
|
||||||
messages = str([x.message for x in caplog.get_records("setup")])
|
|
||||||
assert (
|
assert (
|
||||||
"You can only add triggers to template entities if they are defined under `template:`."
|
"You can only add triggers to template entities if they are defined under `template:`."
|
||||||
in messages
|
in caplog_setup_text
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,12 +207,11 @@ async def test_available_template_with_entities(hass, start_ha):
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_invalid_availability_template_keeps_component_available(
|
async def test_invalid_availability_template_keeps_component_available(
|
||||||
hass, caplog, start_ha
|
hass, start_ha, caplog_setup_text
|
||||||
):
|
):
|
||||||
"""Test that an invalid availability keeps the device available."""
|
"""Test that an invalid availability keeps the device available."""
|
||||||
assert hass.states.get("vacuum.test_template_vacuum") != STATE_UNAVAILABLE
|
assert hass.states.get("vacuum.test_template_vacuum") != STATE_UNAVAILABLE
|
||||||
text = str([x.getMessage() for x in caplog.get_records("setup")])
|
assert "UndefinedError: 'x' is undefined" in caplog_setup_text
|
||||||
assert ("UndefinedError: \\'x\\' is undefined") in text
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
@ -275,13 +274,11 @@ async def test_attribute_templates(hass, start_ha):
|
|||||||
)
|
)
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_invalid_attribute_template(hass, caplog, start_ha):
|
async def test_invalid_attribute_template(hass, start_ha, caplog_setup_text):
|
||||||
"""Test that errors are logged if rendering template fails."""
|
"""Test that errors are logged if rendering template fails."""
|
||||||
assert len(hass.states.async_all()) == 1
|
assert len(hass.states.async_all()) == 1
|
||||||
|
assert "test_attribute" in caplog_setup_text
|
||||||
text = str([x.getMessage() for x in caplog.get_records("setup")])
|
assert "TemplateError" in caplog_setup_text
|
||||||
assert "test_attribute" in text
|
|
||||||
assert "TemplateError" in text
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user