Add zero-hop impulse advert. Closes #83.

This commit is contained in:
Jack Kingsman
2026-03-18 19:59:08 -07:00
parent d8e22ef4af
commit b832239e22
13 changed files with 159 additions and 45 deletions
+39 -1
View File
@@ -13,6 +13,7 @@ from app.models import Contact
from app.radio import RadioManager, radio_manager
from app.routers.radio import (
PrivateKeyUpdate,
RadioAdvertiseRequest,
RadioConfigResponse,
RadioConfigUpdate,
RadioDiscoveryRequest,
@@ -598,14 +599,51 @@ class TestAdvertise:
assert exc.value.status_code == 500
@pytest.mark.asyncio
async def test_defaults_to_flood_mode(self):
radio_manager._meshcore = MagicMock()
with (
patch("app.routers.radio.require_connected"),
patch(
"app.routers.radio.do_send_advertisement",
new_callable=AsyncMock,
return_value=True,
) as mock_send,
):
result = await send_advertisement()
assert result == {"status": "ok"}
mock_send.assert_awaited_once()
assert mock_send.await_args.kwargs["force"] is True
assert mock_send.await_args.kwargs["mode"] == "flood"
@pytest.mark.asyncio
async def test_accepts_zero_hop_mode(self):
radio_manager._meshcore = MagicMock()
with (
patch("app.routers.radio.require_connected"),
patch(
"app.routers.radio.do_send_advertisement",
new_callable=AsyncMock,
return_value=True,
) as mock_send,
):
result = await send_advertisement(RadioAdvertiseRequest(mode="zero_hop"))
assert result == {"status": "ok"}
mock_send.assert_awaited_once()
assert mock_send.await_args.kwargs["force"] is True
assert mock_send.await_args.kwargs["mode"] == "zero_hop"
@pytest.mark.asyncio
async def test_concurrent_advertise_calls_are_serialized(self):
active = 0
max_active = 0
async def fake_send(mc, *, force: bool):
async def fake_send(mc, *, force: bool, mode: str):
nonlocal active, max_active
assert force is True
assert mode == "flood"
active += 1
max_active = max(max_active, active)
await asyncio.sleep(0.05)