mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Add simple test for extracting error title
CURA-7959
This commit is contained in:
parent
32ec72a28c
commit
cf8113608f
3 changed files with 39 additions and 1 deletions
|
@ -2,6 +2,7 @@
|
|||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
import json
|
||||
import threading
|
||||
from json import JSONDecodeError
|
||||
from typing import List, Dict, Any, Callable, Union, Optional
|
||||
|
||||
from PyQt5.QtCore import QUrl
|
||||
|
@ -271,7 +272,11 @@ class DFFileExportAndUploadManager:
|
|||
def extractErrorTitle(reply_body: Optional[str]) -> str:
|
||||
error_title = ""
|
||||
if reply_body:
|
||||
reply_dict = json.loads(reply_body)
|
||||
try:
|
||||
reply_dict = json.loads(reply_body)
|
||||
except JSONDecodeError:
|
||||
Logger.logException("w", "Unable to extract title from reply body")
|
||||
return error_title
|
||||
if "errors" in reply_dict and len(reply_dict["errors"]) >= 1 and "title" in reply_dict["errors"][0]:
|
||||
error_title = reply_dict["errors"][0]["title"]
|
||||
return error_title
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
from src.DFFileExportAndUploadManager import DFFileExportAndUploadManager
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def upload_manager():
|
||||
file_handler = MagicMock(name = "file_handler")
|
||||
node = MagicMock(name = "SceneNode")
|
||||
application = MagicMock(name = "CuraApplication")
|
||||
with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)):
|
||||
return DFFileExportAndUploadManager(file_handlers = {"test": 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
|
||||
|
|
@ -18,6 +18,7 @@ def pagination_manager():
|
|||
manager = MagicMock(name = "Mocked Pagination Manager")
|
||||
return manager
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def api_client(application, pagination_manager):
|
||||
api_client = DigitalFactoryApiClient(application, MagicMock())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue