From 92f278acc87b11c117e3172e76cfc8c7a78fa56b Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Wed, 25 Mar 2020 16:51:21 +0100 Subject: [PATCH] Change trusted scripts path from resources to plugin/scripts CURA-7319 --- .../PostProcessingPlugin/PostProcessingPlugin.py | 4 +++- .../tests/TestPostProcessingPlugin.py | 15 +++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) 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