Fix zeroconf tests with cython 3 (#97054)
parent
9a5774a95d
commit
f36930f165
|
@ -1104,23 +1104,34 @@ def mock_get_source_ip() -> Generator[None, None, None]:
|
|||
@pytest.fixture
|
||||
def mock_zeroconf() -> Generator[None, None, None]:
|
||||
"""Mock zeroconf."""
|
||||
from zeroconf import DNSCache # pylint: disable=import-outside-toplevel
|
||||
|
||||
with patch(
|
||||
"homeassistant.components.zeroconf.HaZeroconf", autospec=True
|
||||
) as mock_zc, patch(
|
||||
"homeassistant.components.zeroconf.HaAsyncServiceBrowser", autospec=True
|
||||
):
|
||||
zc = mock_zc.return_value
|
||||
# DNSCache has strong Cython type checks, and MagicMock does not work
|
||||
# so we must mock the class directly
|
||||
zc.cache = DNSCache()
|
||||
yield mock_zc
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_async_zeroconf(mock_zeroconf: None) -> Generator[None, None, None]:
|
||||
"""Mock AsyncZeroconf."""
|
||||
from zeroconf import DNSCache # pylint: disable=import-outside-toplevel
|
||||
|
||||
with patch("homeassistant.components.zeroconf.HaAsyncZeroconf") as mock_aiozc:
|
||||
zc = mock_aiozc.return_value
|
||||
zc.async_unregister_service = AsyncMock()
|
||||
zc.async_register_service = AsyncMock()
|
||||
zc.async_update_service = AsyncMock()
|
||||
zc.zeroconf.async_wait_for_start = AsyncMock()
|
||||
# DNSCache has strong Cython type checks, and MagicMock does not work
|
||||
# so we must mock the class directly
|
||||
zc.zeroconf.cache = DNSCache()
|
||||
zc.zeroconf.done = False
|
||||
zc.async_close = AsyncMock()
|
||||
zc.ha_async_close = AsyncMock()
|
||||
|
|
Loading…
Reference in New Issue