Improve YAML Dump times with C Dumper (#73424)
This commit is contained in:
parent
0ffeb6c304
commit
034c0c0593
4 changed files with 56 additions and 14 deletions
|
@ -5,6 +5,7 @@ from unittest.mock import Mock, patch
|
|||
import pytest
|
||||
|
||||
from homeassistant.setup import async_setup_component
|
||||
from homeassistant.util.yaml import parse_yaml
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
|
@ -130,9 +131,18 @@ async def test_save_blueprint(hass, aioclient_mock, hass_ws_client):
|
|||
assert msg["id"] == 6
|
||||
assert msg["success"]
|
||||
assert write_mock.mock_calls
|
||||
assert write_mock.call_args[0] == (
|
||||
"blueprint:\n name: Call service based on event\n domain: automation\n input:\n trigger_event:\n selector:\n text: {}\n service_to_call:\n a_number:\n selector:\n number:\n mode: box\n step: 1.0\n source_url: https://github.com/balloob/home-assistant-config/blob/main/blueprints/automation/motion_light.yaml\ntrigger:\n platform: event\n event_type: !input 'trigger_event'\naction:\n service: !input 'service_to_call'\n entity_id: light.kitchen\n",
|
||||
# There are subtle differences in the dumper quoting
|
||||
# behavior when quoting is not required as both produce
|
||||
# valid yaml
|
||||
output_yaml = write_mock.call_args[0][0]
|
||||
assert output_yaml in (
|
||||
# pure python dumper will quote the value after !input
|
||||
"blueprint:\n name: Call service based on event\n domain: automation\n input:\n trigger_event:\n selector:\n text: {}\n service_to_call:\n a_number:\n selector:\n number:\n mode: box\n step: 1.0\n source_url: https://github.com/balloob/home-assistant-config/blob/main/blueprints/automation/motion_light.yaml\ntrigger:\n platform: event\n event_type: !input 'trigger_event'\naction:\n service: !input 'service_to_call'\n entity_id: light.kitchen\n"
|
||||
# c dumper will not quote the value after !input
|
||||
"blueprint:\n name: Call service based on event\n domain: automation\n input:\n trigger_event:\n selector:\n text: {}\n service_to_call:\n a_number:\n selector:\n number:\n mode: box\n step: 1.0\n source_url: https://github.com/balloob/home-assistant-config/blob/main/blueprints/automation/motion_light.yaml\ntrigger:\n platform: event\n event_type: !input trigger_event\naction:\n service: !input service_to_call\n entity_id: light.kitchen\n"
|
||||
)
|
||||
# Make sure ita parsable and does not raise
|
||||
assert len(parse_yaml(output_yaml)) > 1
|
||||
|
||||
|
||||
async def test_save_existing_file(hass, aioclient_mock, hass_ws_client):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue