This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git
The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
new ee6e4b795c Use a separated option for enabling tests on the PostgreSQL
database.
ee6e4b795c is described below
commit ee6e4b795c7786e3033a7a727f0c67506ed5f268
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Wed Feb 21 14:30:17 2024 +0100
Use a separated option for enabling tests on the PostgreSQL database.
---
.../test/org/apache/sis/metadata/sql/TestDatabase.java | 6 ++++++
.../test/org/apache/sis/test/TestCase.java | 12 +++++++++---
.../test/org/apache/sis/test/TestConfiguration.java | 10 ++++++++++
3 files changed, 25 insertions(+), 3 deletions(-)
diff --git
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/sql/TestDatabase.java
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/sql/TestDatabase.java
index 6e4a998542..2e7d712b42 100644
---
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/sql/TestDatabase.java
+++
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/sql/TestDatabase.java
@@ -35,6 +35,8 @@ import org.apache.sis.util.Debug;
// Test dependencies
import static org.junit.jupiter.api.Assumptions.assumeFalse;
+import static org.junit.jupiter.api.Assumptions.assumeTrue;
+import org.apache.sis.test.TestCase;
/**
@@ -97,6 +99,8 @@ public class TestDatabase implements AutoCloseable {
/**
* Name of the database to use for testing purpose. This is used only when
running tests on database engine
* that do not support in-memory database, like PostgreSQL.
+ *
+ * @see #createOnPostgreSQL(String, boolean)
*/
private static final String NAME = "SpatialMetadataTest";
@@ -228,6 +232,7 @@ public class TestDatabase implements AutoCloseable {
* This method returns only if all the following conditions are true:
*
* <ol>
+ * <li>{@link TestCase#USE_POSTGRESQL} is {@code true} (for reducing the
risk of messing with user installation).</li>
* <li>A PostgreSQL server is running on the local host and listening to
the default port.</li>
* <li>A database named {@value #NAME} exists.</li>
* <li>A role with Unix user name exists and can connect to the database
without password.</li>
@@ -249,6 +254,7 @@ public class TestDatabase implements AutoCloseable {
* @see <a href="https://sis.apache.org/source.html#postgres">Configuring
PostgreSQL for Apache SIS tests</a>
*/
public static TestDatabase createOnPostgreSQL(final String schema, final
boolean create) throws SQLException {
+ assumeTrue(TestCase.USE_POSTGRESQL, "Use of PostgreSQL database is not
enabled.");
final var ds = new PGSimpleDataSource();
// Server default to "localhost".
ds.setDatabaseName(NAME);
diff --git
a/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestCase.java
b/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestCase.java
index 8c60ca339f..200dae670d 100644
--- a/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestCase.java
+++ b/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestCase.java
@@ -97,6 +97,11 @@ public abstract class TestCase {
*/
public static final boolean RUN_EXTENSIVE_TESTS;
+ /**
+ * Whether the tests can use the PostgreSQL database on the local host.
+ */
+ public static final boolean USE_POSTGRESQL;
+
/**
* Whether the tests should print debugging information. This is set to
the value specified by the
* {@value org.apache.sis.test.TestConfiguration#VERBOSE_OUTPUT_KEY}
system property if defined,
@@ -138,9 +143,10 @@ public abstract class TestCase {
static {
out = new PrintWriter(buffer = new StringWriter());
final Set<String> options =
Set.of(Strings.orEmpty(System.getenv(TestConfiguration.SIS_TEST_OPTIONS)).split(","));
- RUN_EXTENSIVE_TESTS = isEnabled(options, "extensive",
TestConfiguration.EXTENSIVE_TESTS_KEY);
- SHOW_WIDGET = isEnabled(options, "widget",
TestConfiguration.SHOW_WIDGET_KEY);
- VERBOSE = isEnabled(options, "verbose",
TestConfiguration.VERBOSE_OUTPUT_KEY);
+ RUN_EXTENSIVE_TESTS = isEnabled(options, "extensive",
TestConfiguration.EXTENSIVE_TESTS_KEY);
+ USE_POSTGRESQL = isEnabled(options, "postgresql",
TestConfiguration.USE_POSTGRESQL_KEY);
+ SHOW_WIDGET = isEnabled(options, "widget",
TestConfiguration.SHOW_WIDGET_KEY);
+ VERBOSE = isEnabled(options, "verbose",
TestConfiguration.VERBOSE_OUTPUT_KEY);
if (VERBOSE) {
System.setErr(System.out); // For avoiding log records to be
interleaved with block of text.
}
diff --git
a/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestConfiguration.java
b/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestConfiguration.java
index 64dd808442..fa56ccf190 100644
---
a/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestConfiguration.java
+++
b/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/TestConfiguration.java
@@ -45,6 +45,16 @@ public final class TestConfiguration extends Static {
*/
public static final String EXTENSIVE_TESTS_KEY =
"org.apache.sis.test.extensive";
+ /**
+ * The {@systemProperty org.apache.sis.test.postgresql} system property
for enabling tests
+ * on the PostgreSQL database. If this {@linkplain System#getProperties()
system property}
+ * is set to {@code true}, then the {@code "SpatialMetadataTest"} database
will be used.
+ *
+ * @see TestCase#USE_POSTGRESQL
+ * @see org.apache.sis.metadata.sql.TestDatabase
+ */
+ public static final String USE_POSTGRESQL_KEY =
"org.apache.sis.test.postgresql";
+
/**
* The {@systemProperty org.apache.sis.test.verbose} system property for
enabling verbose outputs.
* If this {@linkplain System#getProperties() system property} is set to
{@code true},