hass-core/tests/test_circular_imports.py
J. Nick Koston c1750f7c3a
Fix circular imports in core integrations (#111875)
* Fix circular imports in core integrations

* fix circular import

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* fix more circular imports

* adjust

* fix

* increase timeout

* remove unused logger

* keep up to date

* make sure its reprod
2024-02-29 21:04:41 -05:00

39 lines
1 KiB
Python

"""Test to check for circular imports in core components."""
import asyncio
import sys
import pytest
from homeassistant.bootstrap import (
CORE_INTEGRATIONS,
DEBUGGER_INTEGRATIONS,
DEFAULT_INTEGRATIONS,
FRONTEND_INTEGRATIONS,
LOGGING_INTEGRATIONS,
RECORDER_INTEGRATIONS,
STAGE_1_INTEGRATIONS,
)
@pytest.mark.timeout(30) # cloud can take > 9s
@pytest.mark.parametrize(
"component",
sorted(
{
*DEBUGGER_INTEGRATIONS,
*CORE_INTEGRATIONS,
*LOGGING_INTEGRATIONS,
*FRONTEND_INTEGRATIONS,
*RECORDER_INTEGRATIONS,
*STAGE_1_INTEGRATIONS,
*DEFAULT_INTEGRATIONS,
}
),
)
async def test_circular_imports(component: str) -> None:
"""Check that components can be imported without circular imports."""
process = await asyncio.create_subprocess_exec(
sys.executable, "-c", f"import homeassistant.components.{component}"
)
await process.communicate()
assert process.returncode == 0