|
12 | 12 | from yarl import URL |
13 | 13 |
|
14 | 14 | from wled import WLED, Device, Releases |
15 | | -from wled.const import LiveDataOverride |
| 15 | +from wled.const import DEFAULT_REPO, LiveDataOverride |
16 | 16 | from wled.exceptions import ( |
17 | 17 | WLEDConnectionClosedError, |
18 | 18 | WLEDConnectionError, |
@@ -1260,6 +1260,45 @@ async def test_upgrade_success(responses: aioresponses, wled: WLED) -> None: |
1260 | 1260 | await wled.upgrade(version="0.15.0") |
1261 | 1261 |
|
1262 | 1262 |
|
| 1263 | +@pytest.mark.parametrize( |
| 1264 | + ("repo", "download_repo"), |
| 1265 | + [ |
| 1266 | + (None, "MoonModules/WLED"), |
| 1267 | + (DEFAULT_REPO, DEFAULT_REPO), |
| 1268 | + ], |
| 1269 | + ids=["device_repo", "explicit_repo"], |
| 1270 | +) |
| 1271 | +async def test_upgrade_repo_selection( |
| 1272 | + responses: aioresponses, |
| 1273 | + wled: WLED, |
| 1274 | + repo: str | None, |
| 1275 | + download_repo: str, |
| 1276 | +) -> None: |
| 1277 | + """Test upgrade selects the expected firmware repository.""" |
| 1278 | + wled_data = load_fixture_json("wled") |
| 1279 | + wled_data["info"]["arch"] = "esp32" |
| 1280 | + wled_data["info"]["ver"] = "0.14.0" |
| 1281 | + wled_data["info"]["repo"] = "MoonModules/WLED" |
| 1282 | + mock_json_and_presets(responses, wled_data) |
| 1283 | + await wled.update() |
| 1284 | + responses.get( |
| 1285 | + f"https://github.com/{download_repo}/releases/download/v0.15.0/" |
| 1286 | + "WLED_0.15.0_ESP32.bin", |
| 1287 | + status=200, |
| 1288 | + body=b"fake firmware", |
| 1289 | + ) |
| 1290 | + responses.post( |
| 1291 | + "http://example.com/update", |
| 1292 | + status=200, |
| 1293 | + body="OK", |
| 1294 | + content_type="text/plain", |
| 1295 | + ) |
| 1296 | + if repo is None: |
| 1297 | + await wled.upgrade(version="0.15.0") |
| 1298 | + else: |
| 1299 | + await wled.upgrade(version="0.15.0", repo=repo) |
| 1300 | + |
| 1301 | + |
1263 | 1302 | async def test_upgrade_ethernet_board(responses: aioresponses, wled: WLED) -> None: |
1264 | 1303 | """Test upgrade with Ethernet board (empty bssid).""" |
1265 | 1304 | await prepare_wled_for_upgrade(responses, wled, wifi_bssid="") |
|
0 commit comments