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 feddb7e827
Author: Christopher Sherlock <chris.sherlock79@gmail.com>
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 <nroberts@libreoffice.org>
Tested-by: Jenkins
When LibreOffice is built with --without-java, the Java-based
JavaScript provider (ScriptProviderForJavaScript_2) is omitted from
the build and not registered in the service manager. Attempting to
remove it throws a com.sun.star.container.NoSuchElementException.
Additionally, in builds without any active JavaScript provider,
ScriptURIHelper or the master script provider cannot resolve .js files,
causing the test to fail its assertion.
Key changes:
- Catch NoSuchElementException when removing the Java-based JavaScript
provider.
- Safely check if JavaScript script user directories can be retrieved
via ScriptURIHelper.
- Use self.skipTest() if no active JavaScript provider is available to
process script files so the unit test passes cleanly in
--without-java environments.
Change-Id: I69abb006ececb2ca9c285f1de37057a8180d5b8f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208924
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
The build configuration on the build bots enables both script providers
for JavaScript. One of them will end up being chosen for the
provider_expandall test and that probably depends on non-deterministic
factors such as the order of files on the disk. If the Java-based one is
chosen then the test will fail because it will ignore the temporary
JavaScript macro file created for the test. We do specifically want to
test the QuickJS-based provider in this test case because we want to
make sure the singleprov code is compatible with Python. The Java-based
script provider code will already be tested because of the Beanshell
provider. This patch therefore uses the remove method of the service
manager to just disable the Java-based JavaScript provider.
Change-Id: I265f4cf2191c0c5d08894c700be346ed93d12898
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208226
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
Adds a Python unit test that just tries to retrieve all child nodes from
the master script provider in order to check that they are all
accessible from Python.
Change-Id: I97185b7f21f38a79fdda4078a69d8e88b10cbaed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207349
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>