mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-16 18:59:39 +08:00
49 lines
2.3 KiB
Python
49 lines
2.3 KiB
Python
from unittest.mock import MagicMock, patch
|
|
|
|
import pytest
|
|
from src.DFFileExportAndUploadManager import DFFileExportAndUploadManager
|
|
|
|
|
|
@pytest.fixture
|
|
def upload_manager():
|
|
file_handler = MagicMock(name = "file_handler")
|
|
file_handler.getSupportedFileTypesWrite = MagicMock(return_value = [{
|
|
"id": "test",
|
|
"extension": ".3mf",
|
|
"description": "nope",
|
|
"mime_type": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml",
|
|
"mode": "binary",
|
|
"hide_in_file_dialog": True,
|
|
}])
|
|
node = MagicMock(name = "SceneNode")
|
|
application = MagicMock(name = "CuraApplication")
|
|
with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value = application)):
|
|
return DFFileExportAndUploadManager(file_handlers = {"3mf": file_handler},
|
|
nodes = [node],
|
|
library_project_id = "test_library_project_id",
|
|
library_project_name = "test_library_project_name",
|
|
file_name = "file_name",
|
|
formats = ["3mf"],
|
|
on_upload_error = MagicMock(),
|
|
on_upload_success = MagicMock(),
|
|
on_upload_finished = MagicMock(),
|
|
on_upload_progress = MagicMock())
|
|
|
|
|
|
@pytest.mark.parametrize("input,expected_result",
|
|
[("", ""),
|
|
("invalid json! {}", ""),
|
|
("{\"errors\": [{}]}", ""),
|
|
("{\"errors\": [{\"title\": \"some title\"}]}", "some title")])
|
|
def test_extractErrorTitle(upload_manager, input, expected_result):
|
|
assert upload_manager.extractErrorTitle(input) == expected_result
|
|
|
|
|
|
def test_exportJobError(upload_manager):
|
|
mocked_application = MagicMock()
|
|
with patch("UM.Application.Application.getInstance", MagicMock(return_value = mocked_application)):
|
|
upload_manager._onJobExportError("file_name.3mf")
|
|
|
|
# Ensure that message was displayed
|
|
mocked_application.showMessageSignal.emit.assert_called_once()
|