mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Write tests for the FirmwareUpdateChecker-plugin. [UnitTests]
This commit is contained in:
parent
2b8b995422
commit
3dd355976b
1 changed files with 70 additions and 0 deletions
|
@ -0,0 +1,70 @@
|
|||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import pytest
|
||||
import json
|
||||
|
||||
import unittest.mock
|
||||
from cura.CuraApplication import CuraApplication
|
||||
|
||||
from UM.Version import Version
|
||||
|
||||
from plugins.FirmwareUpdateChecker.FirmwareUpdateCheckerJob import FirmwareUpdateCheckerJob
|
||||
from plugins.FirmwareUpdateChecker.FirmwareUpdateCheckerLookup import FirmwareUpdateCheckerLookup
|
||||
|
||||
json_data = \
|
||||
{
|
||||
"ned":
|
||||
{
|
||||
"id": 1,
|
||||
"name": "ned",
|
||||
"check_urls": ["http://urlecho.appspot.com/echo?status=200&body=5.1.2.3"],
|
||||
"update_url": "https://ultimaker.com/en/resources/20500-upgrade-firmware",
|
||||
"version_parser": "default"
|
||||
},
|
||||
"olivia":
|
||||
{
|
||||
"id": 3,
|
||||
"name": "olivia",
|
||||
"check_urls": ["http://urlecho.appspot.com/echo?status=200&body=4.3.2.1", "https://this-url-clearly-doesnt-exist.net"],
|
||||
"update_url": "https://ultimaker.com/en/resources/20500-upgrade-firmware",
|
||||
"version_parser": "default"
|
||||
},
|
||||
"emmerson":
|
||||
{
|
||||
"id": 5,
|
||||
"name": "emmerson",
|
||||
"check_urls": ["http://urlecho.appspot.com/echo?status=200&body=0.2.2.2", "http://urlecho.appspot.com/echo?status=200&body=6.7.8.1"],
|
||||
"update_url": "https://ultimaker.com/en/resources/20500-upgrade-firmware",
|
||||
"version_parser": "default"
|
||||
}
|
||||
}
|
||||
|
||||
def dummyCallback():
|
||||
pass
|
||||
|
||||
@pytest.mark.parametrize("name, id", [
|
||||
("ned" , 1),
|
||||
("olivia" , 3),
|
||||
("emmerson", 5),
|
||||
])
|
||||
def test_FirmwareUpdateCheckerLookup(id, name):
|
||||
lookup = FirmwareUpdateCheckerLookup(name, json_data.get(name))
|
||||
|
||||
assert lookup.getMachineName() == name
|
||||
assert lookup.getMachineId() == id
|
||||
assert len(lookup.getCheckUrls()) >= 1
|
||||
assert lookup.getRedirectUserUrl() is not None
|
||||
|
||||
@pytest.mark.parametrize("name, version", [
|
||||
("ned" , Version("5.1.2.3")),
|
||||
("olivia" , Version("4.3.2.1")),
|
||||
("emmerson", Version("6.7.8.1")),
|
||||
])
|
||||
def test_FirmwareUpdateCheckerJob_getCurrentVersion(name, version):
|
||||
machine_data = json_data.get(name)
|
||||
job = FirmwareUpdateCheckerJob(False, name, machine_data, dummyCallback)
|
||||
job._lookups = FirmwareUpdateCheckerLookup(name, machine_data)
|
||||
job._headers = {"User-Agent": "Cura-UnitTests 0"}
|
||||
|
||||
assert job.getCurrentVersion() == version
|
Loading…
Add table
Add a link
Reference in a new issue