From 25ebe5d7ea1867a8dc019a90333b2d62056f8f65 Mon Sep 17 00:00:00 2001 From: claudi Date: Thu, 12 Mar 2026 14:09:11 +0100 Subject: [PATCH] feat: Add fallback mechanism for branded download selection when manifest is unavailable --- tests/unit/test_updater.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/unit/test_updater.py b/tests/unit/test_updater.py index f3f09a4..db57ebc 100644 --- a/tests/unit/test_updater.py +++ b/tests/unit/test_updater.py @@ -315,6 +315,40 @@ class TestDownloading: assert result.name == "AgravityBridge-0.0.2-win-x64.msi" mock_download.assert_called_once() + @pytest.mark.asyncio + async def test_download_update_falls_back_to_brand_prefix_without_manifest( + self, agravity_update_manager, tmp_path + ): + """Test branded download selection still works when the manifest is unavailable.""" + release = Release( + tag_name="v0.0.2", + name="WebDropBridge v0.0.2", + version="0.0.2", + body="Release notes", + assets=[ + { + "name": "WebDropBridge-0.0.2-win-x64.msi", + "browser_download_url": "https://example.com/WebDropBridge-0.0.2-win-x64.msi", + }, + { + "name": "AgravityBridge-0.0.2-win-x64.msi", + "browser_download_url": "https://example.com/AgravityBridge-0.0.2-win-x64.msi", + }, + { + "name": "AgravityBridge-0.0.2-win-x64.msi.sha256", + "browser_download_url": "https://example.com/AgravityBridge-0.0.2-win-x64.msi.sha256", + }, + ], + published_at="2026-01-29T10:00:00Z", + ) + + with patch.object(UpdateManager, "_download_file", return_value=True) as mock_download: + result = await agravity_update_manager.download_update(release, tmp_path) + + assert result is not None + assert result.name == "AgravityBridge-0.0.2-win-x64.msi" + mock_download.assert_called_once() + @pytest.mark.asyncio async def test_verify_checksum_uses_release_manifest(self, agravity_update_manager, tmp_path): """Test branded checksum selection from a shared release manifest."""