forked from bluerobotics/BlueOS
/
test_FirmwareDownload.py
56 lines (40 loc) · 2.42 KB
/
test_FirmwareDownload.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import os
import pytest
from firmware.FirmwareDownload import FirmwareDownloader
from typedefs import Platform, Vehicle
def test_static() -> None:
downloaded_file = FirmwareDownloader._download(FirmwareDownloader._manifest_remote)
assert downloaded_file, "Failed to download file."
assert downloaded_file.exists(), "Download file does not exist."
smaller_valid_size_bytes = 180 * 1024
assert downloaded_file.stat().st_size > smaller_valid_size_bytes, "Download file size is not big enough."
def test_firmware_download() -> None:
firmware_download = FirmwareDownloader()
assert firmware_download.download_manifest(), "Failed to download/validate manifest file."
versions = firmware_download._find_version_item(
vehicletype="Sub", format="apj", mav_firmware_version_type="STABLE-4.0.1", platform=Platform.Pixhawk1
)
assert len(versions) == 1, "Failed to find a single firmware."
versions = firmware_download._find_version_item(
vehicletype="Sub", mav_firmware_version_type="STABLE-4.0.1", platform=Platform.Pixhawk1
)
# There are two versions, one for the firmware and one with the bootloader
assert len(versions) == 2, "Failed to find multiple versions."
available_versions = firmware_download.get_available_versions(Vehicle.Sub, Platform.Pixhawk1)
assert len(available_versions) == len(set(available_versions)), "Available versions are not unique."
test_available_versions = ["STABLE-4.0.1", "STABLE-4.0.0", "OFFICIAL", "DEV", "BETA"]
assert len(set(available_versions)) >= len(
set(test_available_versions)
), "Available versions are missing know versions."
assert firmware_download.download(
Vehicle.Sub, Platform.Pixhawk1, "STABLE-4.0.1"
), "Failed to download a valid firmware file."
assert firmware_download.download(Vehicle.Sub, Platform.Pixhawk1), "Failed to download latest valid firmware file."
assert firmware_download.download(Vehicle.Sub, Platform.Pixhawk4), "Failed to download latest valid firmware file."
assert firmware_download.download(Vehicle.Sub, Platform.SITL), "Failed to download SITL."
# It'll fail if running in an arch different of ARM
if "x86" in os.uname().machine:
assert firmware_download.download(Vehicle.Sub, Platform.Navigator), "Failed to download navigator binary."
else:
with pytest.raises(Exception):
firmware_download.download(Vehicle.Sub, Platform.Navigator)