Merge remote-tracking branch 'upstream/dev' into integration

This commit is contained in:
J. Nick Koston
2026-01-08 21:01:17 -10:00
10 changed files with 222 additions and 33 deletions
@@ -1,5 +0,0 @@
substitutions:
gate_pin: GPIO4
zero_cross_pin: GPIO5
<<: !include common.yaml
@@ -0,0 +1,5 @@
substitutions:
gate_pin: GPIO18
zero_cross_pin: GPIO19
<<: !include common.yaml
@@ -24,6 +24,14 @@ api:
- logger.log:
format: "Client %s disconnected from %s"
args: [client_info.c_str(), client_address.c_str()]
# Verify fix for issue #11131: api.connected should reflect true state in trigger
- if:
condition:
api.connected:
then:
- logger.log: "Other clients still connected"
else:
- logger.log: "No clients remaining"
logger:
level: DEBUG
@@ -23,12 +23,14 @@ async def test_api_conditional_memory(
# Track log messages
connected_future = loop.create_future()
disconnected_future = loop.create_future()
no_clients_future = loop.create_future()
service_simple_future = loop.create_future()
service_args_future = loop.create_future()
# Patterns to match in logs
connected_pattern = re.compile(r"Client .* connected from")
disconnected_pattern = re.compile(r"Client .* disconnected from")
no_clients_pattern = re.compile(r"No clients remaining")
service_simple_pattern = re.compile(r"Simple service called")
service_args_pattern = re.compile(
r"Service called with: test_string, 123, 1, 42\.50"
@@ -40,6 +42,8 @@ async def test_api_conditional_memory(
connected_future.set_result(True)
elif not disconnected_future.done() and disconnected_pattern.search(line):
disconnected_future.set_result(True)
elif not no_clients_future.done() and no_clients_pattern.search(line):
no_clients_future.set_result(True)
elif not service_simple_future.done() and service_simple_pattern.search(line):
service_simple_future.set_result(True)
elif not service_args_future.done() and service_args_pattern.search(line):
@@ -109,3 +113,7 @@ async def test_api_conditional_memory(
# Client disconnected here, wait for disconnect log
await asyncio.wait_for(disconnected_future, timeout=5.0)
# Verify fix for issue #11131: api.connected should be false in trigger
# when the last client disconnects
await asyncio.wait_for(no_clients_future, timeout=5.0)