mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 21:59:37 +08:00

One of the weirdest errors out there, and as far as I know we're the only ones suffering from it, due to having multiple packages of Python bindings created with Sip as well as having PyQt and different threads.
64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
# Copyright (c) 2020 Ultimaker B.V.
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import os
|
|
import sys
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
from UM.PluginRegistry import PluginRegistry
|
|
from UM.Resources import Resources
|
|
from UM.Trust import Trust
|
|
from ..PostProcessingPlugin import PostProcessingPlugin
|
|
|
|
# not sure if needed
|
|
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".."))
|
|
|
|
""" In this file, community refers to regular Cura for makers."""
|
|
|
|
mock_plugin_registry = MagicMock()
|
|
mock_plugin_registry.getPluginPath = MagicMock(return_value = "mocked_plugin_path")
|
|
|
|
|
|
# noinspection PyProtectedMember
|
|
@patch("cura.ApplicationMetadata.IsEnterpriseVersion", False)
|
|
def test_community_user_script_allowed():
|
|
assert PostProcessingPlugin._isScriptAllowed("blaat.py")
|
|
|
|
|
|
# noinspection PyProtectedMember
|
|
@patch("cura.ApplicationMetadata.IsEnterpriseVersion", False)
|
|
def test_community_bundled_script_allowed():
|
|
assert PostProcessingPlugin._isScriptAllowed(_bundled_file_path())
|
|
|
|
|
|
# noinspection PyProtectedMember
|
|
@patch("cura.ApplicationMetadata.IsEnterpriseVersion", True)
|
|
@patch.object(PluginRegistry, "getInstance", return_value=mock_plugin_registry)
|
|
def test_enterprise_unsigned_user_script_not_allowed(plugin_registry):
|
|
assert not PostProcessingPlugin._isScriptAllowed("blaat.py")
|
|
|
|
# noinspection PyProtectedMember
|
|
@patch("cura.ApplicationMetadata.IsEnterpriseVersion", True)
|
|
@patch.object(PluginRegistry, "getInstance", return_value=mock_plugin_registry)
|
|
def test_enterprise_signed_user_script_allowed(plugin_registry):
|
|
mocked_trust = MagicMock()
|
|
mocked_trust.signedFileCheck = MagicMock(return_value=True)
|
|
|
|
plugin_registry.getPluginPath = MagicMock(return_value="mocked_plugin_path")
|
|
|
|
with patch.object(Trust, "signatureFileExistsFor", return_value = True):
|
|
with patch("UM.Trust.Trust.getInstanceOrNone", return_value=mocked_trust):
|
|
assert PostProcessingPlugin._isScriptAllowed("mocked_plugin_path/scripts/blaat.py")
|
|
|
|
|
|
# noinspection PyProtectedMember
|
|
@patch("cura.ApplicationMetadata.IsEnterpriseVersion", False)
|
|
def test_enterprise_bundled_script_allowed():
|
|
assert PostProcessingPlugin._isScriptAllowed(_bundled_file_path())
|
|
|
|
|
|
def _bundled_file_path():
|
|
return os.path.join(
|
|
Resources.getStoragePath(Resources.Resources) + "scripts/blaat.py"
|
|
)
|