aiohomematic-test-support 2025.12.54__tar.gz → 2026.1.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {aiohomematic_test_support-2025.12.54/aiohomematic_test_support.egg-info → aiohomematic_test_support-2026.1.8}/PKG-INFO +1 -1
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/__init__.py +4 -4
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8/aiohomematic_test_support.egg-info}/PKG-INFO +1 -1
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/const.py +1 -1
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/event_capture.py +2 -2
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/event_mock.py +2 -2
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/factory.py +3 -3
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/helper.py +2 -2
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/mock.py +7 -7
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/MANIFEST.in +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/README.md +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/aiohomematic_test_support.egg-info/SOURCES.txt +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/aiohomematic_test_support.egg-info/dependency_links.txt +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/aiohomematic_test_support.egg-info/top_level.txt +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/data/device_translation.json +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/data/full_session_randomized_ccu.zip +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/data/full_session_randomized_pydevccu.zip +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/py.typed +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/pyproject.toml +0 -0
- {aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic-test-support
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2026.1.8
|
|
4
4
|
Summary: Support-only package for AioHomematic (tests/dev). Not part of production builds.
|
|
5
5
|
Author-email: SukramJ <sukramj@icloud.com>, Daniel Perna <danielperna84@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/SukramJ/aiohomematic
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
3
3
|
"""
|
|
4
4
|
Test support infrastructure for aiohomematic.
|
|
5
5
|
|
|
@@ -40,7 +40,7 @@ Using the factory to create a test central with session playback:
|
|
|
40
40
|
Using EventCapture for behavior-focused testing:
|
|
41
41
|
|
|
42
42
|
from aiohomematic_test_support.event_capture import EventCapture
|
|
43
|
-
from aiohomematic.central.
|
|
43
|
+
from aiohomematic.central.events import CircuitBreakerTrippedEvent
|
|
44
44
|
|
|
45
45
|
capture = EventCapture()
|
|
46
46
|
capture.subscribe_to(central.event_bus, CircuitBreakerTrippedEvent)
|
|
@@ -53,7 +53,7 @@ Using EventCapture for behavior-focused testing:
|
|
|
53
53
|
Using EventDrivenMockServer for event-triggered test behavior:
|
|
54
54
|
|
|
55
55
|
from aiohomematic_test_support.event_mock import EventDrivenMockServer
|
|
56
|
-
from aiohomematic.central.
|
|
56
|
+
from aiohomematic.central.events import DataRefreshTriggeredEvent
|
|
57
57
|
|
|
58
58
|
mock_server = EventDrivenMockServer(event_bus=central.event_bus)
|
|
59
59
|
mock_server.when(DataRefreshTriggeredEvent).then_call(
|
|
@@ -76,4 +76,4 @@ test dependencies to access test support functionality.
|
|
|
76
76
|
|
|
77
77
|
from __future__ import annotations
|
|
78
78
|
|
|
79
|
-
__version__ = "
|
|
79
|
+
__version__ = "2026.1.8"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic-test-support
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2026.1.8
|
|
4
4
|
Summary: Support-only package for AioHomematic (tests/dev). Not part of production builds.
|
|
5
5
|
Author-email: SukramJ <sukramj@icloud.com>, Daniel Perna <danielperna84@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/SukramJ/aiohomematic
|
{aiohomematic_test_support-2025.12.54 → aiohomematic_test_support-2026.1.8}/event_capture.py
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
3
3
|
"""
|
|
4
4
|
Event capture utilities for test verification.
|
|
5
5
|
|
|
@@ -19,7 +19,7 @@ from dataclasses import dataclass, field
|
|
|
19
19
|
from typing import TYPE_CHECKING, Any, TypeVar
|
|
20
20
|
|
|
21
21
|
if TYPE_CHECKING:
|
|
22
|
-
from aiohomematic.central.
|
|
22
|
+
from aiohomematic.central.events import Event, EventBus
|
|
23
23
|
|
|
24
24
|
T = TypeVar("T", bound="Event")
|
|
25
25
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
3
3
|
"""
|
|
4
4
|
Event-driven mock server for test triggers.
|
|
5
5
|
|
|
@@ -27,7 +27,7 @@ from dataclasses import dataclass, field
|
|
|
27
27
|
from typing import TYPE_CHECKING, Any
|
|
28
28
|
|
|
29
29
|
if TYPE_CHECKING:
|
|
30
|
-
from aiohomematic.central.
|
|
30
|
+
from aiohomematic.central.events import Event, EventBus
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
@dataclass
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
3
3
|
"""
|
|
4
4
|
Test factories for creating CentralUnit and Client instances.
|
|
5
5
|
|
|
@@ -43,7 +43,7 @@ from unittest.mock import MagicMock, Mock, patch
|
|
|
43
43
|
from aiohttp import ClientSession
|
|
44
44
|
|
|
45
45
|
from aiohomematic.central import CentralConfig, CentralUnit
|
|
46
|
-
from aiohomematic.central.
|
|
46
|
+
from aiohomematic.central.events import (
|
|
47
47
|
DataPointsCreatedEvent,
|
|
48
48
|
DeviceLifecycleEvent,
|
|
49
49
|
DeviceLifecycleEventType,
|
|
@@ -52,7 +52,7 @@ from aiohomematic.central.integration_events import (
|
|
|
52
52
|
)
|
|
53
53
|
from aiohomematic.client import ClientConfig, InterfaceConfig
|
|
54
54
|
from aiohomematic.const import LOCAL_HOST, Interface, OptionalSettings
|
|
55
|
-
from aiohomematic.interfaces
|
|
55
|
+
from aiohomematic.interfaces import ClientProtocol
|
|
56
56
|
from aiohomematic_test_support import const
|
|
57
57
|
from aiohomematic_test_support.mock import SessionPlayer, get_client_session, get_mock, get_xml_rpc_proxy
|
|
58
58
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
3
3
|
"""Helpers for tests."""
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
@@ -13,7 +13,7 @@ import orjson
|
|
|
13
13
|
|
|
14
14
|
from aiohomematic.central import CentralUnit
|
|
15
15
|
from aiohomematic.const import UTF_8
|
|
16
|
-
from aiohomematic.interfaces
|
|
16
|
+
from aiohomematic.interfaces import CustomDataPointProtocol
|
|
17
17
|
|
|
18
18
|
_LOGGER = logging.getLogger(__name__)
|
|
19
19
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026
|
|
3
3
|
"""
|
|
4
4
|
Mock implementations for RPC clients with session playback.
|
|
5
5
|
|
|
@@ -52,14 +52,14 @@ import zipfile
|
|
|
52
52
|
from aiohttp import ClientSession
|
|
53
53
|
import orjson
|
|
54
54
|
|
|
55
|
+
from aiohomematic.async_support import Looper
|
|
55
56
|
from aiohomematic.central import CentralUnit
|
|
56
|
-
from aiohomematic.client import BaseRpcProxy
|
|
57
|
-
from aiohomematic.client.circuit_breaker import CircuitBreaker
|
|
57
|
+
from aiohomematic.client import BaseRpcProxy, CircuitBreaker
|
|
58
58
|
from aiohomematic.client.json_rpc import _JsonKey, _JsonRpcMethod
|
|
59
59
|
from aiohomematic.client.rpc_proxy import _RpcMethod
|
|
60
60
|
from aiohomematic.const import UTF_8, DataOperationResult, Parameter, ParamsetKey, RPCType
|
|
61
61
|
from aiohomematic.property_decorators import DelegatedProperty
|
|
62
|
-
from aiohomematic.store
|
|
62
|
+
from aiohomematic.store import cleanup_params_for_session, freeze_params, unfreeze_params
|
|
63
63
|
from aiohomematic_test_support import const
|
|
64
64
|
|
|
65
65
|
_LOGGER = logging.getLogger(__name__)
|
|
@@ -276,7 +276,7 @@ def get_xml_rpc_proxy( # noqa: C901
|
|
|
276
276
|
self._supported_methods: tuple[str, ...] = ()
|
|
277
277
|
self._central: CentralUnit | None = None
|
|
278
278
|
# Real CircuitBreaker to provide actual metrics for tests
|
|
279
|
-
self._circuit_breaker = CircuitBreaker(interface_id="mock-interface")
|
|
279
|
+
self._circuit_breaker = CircuitBreaker(interface_id="mock-interface", task_scheduler=Looper())
|
|
280
280
|
|
|
281
281
|
def __getattr__(self, name: str) -> Any:
|
|
282
282
|
# Start of method chain
|
|
@@ -334,11 +334,11 @@ def get_xml_rpc_proxy( # noqa: C901
|
|
|
334
334
|
|
|
335
335
|
for dd in devices:
|
|
336
336
|
if ignore_devices_on_create is not None and (
|
|
337
|
-
dd["ADDRESS"] in ignore_devices_on_create or dd
|
|
337
|
+
dd["ADDRESS"] in ignore_devices_on_create or dd.get("PARENT") in ignore_devices_on_create
|
|
338
338
|
):
|
|
339
339
|
continue
|
|
340
340
|
if address_device_translation is not None:
|
|
341
|
-
if dd["ADDRESS"] in address_device_translation or dd
|
|
341
|
+
if dd["ADDRESS"] in address_device_translation or dd.get("PARENT") in address_device_translation:
|
|
342
342
|
new_devices.append(dd)
|
|
343
343
|
else:
|
|
344
344
|
new_devices.append(dd)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|