diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.py b/plugins/PostProcessingPlugin/PostProcessingPlugin.py index de9b1905b7..f206909f20 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.py +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.py @@ -348,7 +348,9 @@ class PostProcessingPlugin(QObject, Extension): # No signature needed return True - if os.path.split(file_path) == os.path.join(Resources.getStoragePath(Resources.Resources), "scripts"): + if os.path.split(file_path)[0] == os.path.join( + PluginRegistry.getInstance().getPluginPath("PostProcessingPlugin"), + "scripts"): # Bundled scripts are trusted. return True diff --git a/plugins/PostProcessingPlugin/tests/TestPostProcessingPlugin.py b/plugins/PostProcessingPlugin/tests/TestPostProcessingPlugin.py index 2c9a25fcac..360ea344ca 100644 --- a/plugins/PostProcessingPlugin/tests/TestPostProcessingPlugin.py +++ b/plugins/PostProcessingPlugin/tests/TestPostProcessingPlugin.py @@ -3,6 +3,7 @@ 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 @@ -12,6 +13,9 @@ sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")) """ In this file, commnunity 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) @@ -27,19 +31,22 @@ def test_community_bundled_script_allowed(): # noinspection PyProtectedMember @patch("cura.ApplicationMetadata.IsEnterpriseVersion", True) -def test_enterprise_unsigned_user_script_not_allowed(): +@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) -def test_enterprise_signed_user_script_allowed(): +@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("blaat.py") + assert PostProcessingPlugin._isScriptAllowed("mocked_plugin_path/scripts/blaat.py") # noinspection PyProtectedMember