From dbbac9fbfe8e6e219125c43a1d1ab76b3fdd84ba Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Mon, 3 Aug 2026 17:20:02 +0200 Subject: [PATCH] =?UTF-8?q?provider=5Fexpandall:=20Don=E2=80=99t=20skip=20?= =?UTF-8?q?test=20if=20QuickJS=20provider=20isn=E2=80=99t=20built?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The commit below changed the unit test so that if the QuickJS provider isn’t available then the entire test is skipped. Even if the provider is available, it also changed the check condition so that the test is skipped if the dummy JavaScript macro was not found. This makes creating the dummy macro a bit pointless. The idea of the test is to make sure that all of the script providers return nodes that can be handled from Python. If the QuickJS provider isn’t available then it’s still interesting to test the other providers. If it is available then we want to make sure the dummy script is found otherwise the test won’t be checking that the nodes returned by the singleprov code can be handled by Python. This patch changes the logic so that it will continue the test even if the QuickJS provider isn’t built but in that case it will skip the assert that the dummy macro is found. commit feddb7e82706b9608341b8176585f0aef5bed193 Author: Christopher Sherlock Date: Sat Jul 25 17:17:33 2026 +1000 tdf#172532 scripting: fix --without-java builds in provider_expandall.py Change-Id: I81b83e6b5504d452c7ab05754c1296ff90d364e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208991 Reviewed-by: Neil Roberts Tested-by: Jenkins --- scripting/qa/pytests/provider_expandall.py | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/scripting/qa/pytests/provider_expandall.py b/scripting/qa/pytests/provider_expandall.py index 77b3d02ba86f..9baa1625d0cd 100644 --- a/scripting/qa/pytests/provider_expandall.py +++ b/scripting/qa/pytests/provider_expandall.py @@ -16,6 +16,7 @@ from com.sun.star.uri import UriReferenceFactory from com.sun.star.container import NoSuchElementException import uno +import contextlib import os import tempfile @@ -58,17 +59,19 @@ class ProviderExpandAllTest(unittest.TestCase): except NoSuchElementException: pass - # Check if JavaScript scripting is supported in this build - try: - js_path = get_user_script_directory(self.context, "JavaScript") - except Exception: - self.skipTest("JavaScript script provider not available in this build") - - # Create a dummy JavaScript macro to make sure the JavaScript provider is triggered. - os.makedirs(js_path, exist_ok=True) - with tempfile.TemporaryDirectory(dir=js_path) as js_dir: - with open(os.path.join(js_dir, "dummy_js_script.js"), 'w'): - pass + with contextlib.ExitStack() as stack: + # If the QuickJS-based script provider is available then create a dummy JavaScript macro + # to make sure the provider is triggered. + if ("com.sun.star.script.provider.ScriptProviderForJavaScript" + in self.context.getServiceManager().getAvailableServiceNames()): + have_js_provider = True + js_path = get_user_script_directory(self.context, "JavaScript") + os.makedirs(js_path, exist_ok=True) + js_dir = stack.enter_context(tempfile.TemporaryDirectory(dir=js_path)) + with open(os.path.join(js_dir, "dummy_js_script.js"), 'w'): + pass + else: + have_js_provider = False xMasterProviderFactory = theMasterScriptProviderFactory.get(self.context) @@ -92,8 +95,8 @@ class ProviderExpandAllTest(unittest.TestCase): if node.hasChildNodes(): stack.extend(node.getChildNodes()) - if not found_js_script: - self.skipTest("No active JavaScript provider found to process .js files") + if have_js_provider: + self.assertTrue(found_js_script) # vim: set shiftwidth=4 softtabstop=4 expandtab: