Fix check config (#28393)

This commit is contained in:
Paulus Schoutsen 2019-10-31 11:39:26 -07:00 committed by GitHub
parent 70c4b4a4f0
commit 631a819bd1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 5 deletions

View file

@ -35,13 +35,21 @@ async def async_get_integration_with_requirements(
This can raise IntegrationNotFound if manifest or integration
is invalid, RequirementNotFound if there was some type of
failure to install requirements.
Does not handle circular dependencies.
"""
integration = await async_get_integration(hass, domain)
if hass.config.skip_pip or not integration.requirements:
if hass.config.skip_pip:
return integration
await async_process_requirements(hass, integration.domain, integration.requirements)
if integration.requirements:
await async_process_requirements(
hass, integration.domain, integration.requirements
)
for dependency in integration.dependencies:
await async_get_integration_with_requirements(hass, dependency)
return integration

View file

@ -112,7 +112,17 @@ async def test_install_missing_package(hass):
async def test_get_integration_with_requirements(hass):
"""Check getting an integration with loaded requirements."""
hass.config.skip_pip = False
mock_integration(hass, MockModule("test_component", requirements=["hello==1.0.0"]))
mock_integration(
hass, MockModule("test_component_dep", requirements=["test-comp-dep==1.0.0"])
)
mock_integration(
hass,
MockModule(
"test_component",
requirements=["test-comp==1.0.0"],
dependencies=["test_component_dep"],
),
)
with patch(
"homeassistant.util.package.is_installed", return_value=False
@ -126,8 +136,13 @@ async def test_get_integration_with_requirements(hass):
assert integration
assert integration.domain == "test_component"
assert len(mock_is_installed.mock_calls) == 1
assert len(mock_inst.mock_calls) == 1
assert len(mock_is_installed.mock_calls) == 2
assert mock_is_installed.mock_calls[0][1][0] == "test-comp==1.0.0"
assert mock_is_installed.mock_calls[1][1][0] == "test-comp-dep==1.0.0"
assert len(mock_inst.mock_calls) == 2
assert mock_inst.mock_calls[0][1][0] == "test-comp==1.0.0"
assert mock_inst.mock_calls[1][1][0] == "test-comp-dep==1.0.0"
async def test_install_with_wheels_index(hass):