Fix command line sensors removing quotes with template (#35559)

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
Xiaonan Shen
2020-06-10 18:31:59 +02:00
committed by GitHub
co-authored by Martin Hjelmare
parent e13f206a06
commit c65e72886c
2 changed files with 18 additions and 2 deletions
@@ -70,6 +70,23 @@ class TestCommandSensorSensor(unittest.TestCase):
assert data.value == "Works"
def test_template_render_with_quote(self):
"""Ensure command with templates and quotes get rendered properly."""
self.hass.states.set("sensor.test_state", "Works 2")
with patch(
"homeassistant.components.command_line.sensor.subprocess.check_output",
return_value=b"Works\n",
) as check_output:
data = command_line.CommandSensorData(
self.hass, 'echo "{{ states.sensor.test_state.state }}" "3 4"', 15,
)
data.update()
assert data.value == "Works"
check_output.assert_called_once_with(
'echo "Works 2" "3 4"', shell=True, timeout=15 # nosec # shell by design
)
def test_bad_command(self):
"""Test bad command."""
data = command_line.CommandSensorData(self.hass, "asdfasdf", 15)