embedded-database-spring-test
embedded-database-spring-test copied to clipboard
Ability to disable autocommit
It is a requirement of DBUnit to make DB cleanup works. Setting this in test properties:
zonky.test.database.postgres.client.properties.autocommit=false
crashed embedded database creation with:
Caused by: io.zonky.test.db.provider.ProviderException: Unexpected error when prefetching a database; nested exception is java.lang.RuntimeException: org.postgresql.util.PSQLException: Unsupported property name: autocommitio.zonky.test.db.provider.common.PrefetchingDatabaseProvider$PreparedResult.get(PrefetchingDatabaseProvider.java:312)
at io.zonky.test.db.provider.common.PrefetchingDatabaseProvider.createDatabase(PrefetchingDatabaseProvider.java:127)
at io.zonky.test.db.provider.common.OptimizingDatabaseProvider.createDatabase(OptimizingDatabaseProvider.java:106)
at io.zonky.test.db.provider.common.OptimizingDatabaseProvider.createDatabase(OptimizingDatabaseProvider.java:89)
at io.zonky.test.db.context.DefaultDatabaseContext.lambda$refreshDatabase$0(DefaultDatabaseContext.java:266)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
... 1 more
Caused by: java.lang.RuntimeException: org.postgresql.util.PSQLException: Unsupported property name: autocommit
at io.zonky.test.db.postgres.embedded.EmbeddedPostgres.lambda$getDatabase$0(EmbeddedPostgres.java:201)
at com.google.common.collect.SingletonImmutableBiMap.forEach(SingletonImmutableBiMap.java:66)
at io.zonky.test.db.postgres.embedded.EmbeddedPostgres.getDatabase(EmbeddedPostgres.java:197)
at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider$DatabaseInstance.getDatabase(ZonkyPostgresDatabaseProvider.java:190)
at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider$DatabaseInstance.executeStatement(ZonkyPostgresDatabaseProvider.java:183)
at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider$DatabaseInstance.createDatabase(ZonkyPostgresDatabaseProvider.java:153)
at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider.createDatabase(ZonkyPostgresDatabaseProvider.java:103)
at io.zonky.test.db.provider.postgres.ZonkyPostgresDatabaseProvider.createTemplate(ZonkyPostgresDatabaseProvider.java:91)
at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createTemplate(TemplatingDatabaseProvider.java:129)
at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.lambda$createTemplateIfPossible$1(TemplatingDatabaseProvider.java:168)
at io.zonky.test.db.provider.common.TemplatingDatabaseProvider$TemplateWrapper.loadTemplate(TemplatingDatabaseProvider.java:291)
at io.zonky.test.db.provider.common.TemplatingDatabaseProvider$TemplateWrapper.access$200(TemplatingDatabaseProvider.java:221)
at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createTemplateIfPossible(TemplatingDatabaseProvider.java:168)
at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createDatabase(TemplatingDatabaseProvider.java:112)
at io.zonky.test.db.provider.common.TemplatingDatabaseProvider.createDatabase(TemplatingDatabaseProvider.java:104)
at io.zonky.test.db.provider.common.PrefetchingDatabaseProvider$PrefetchingTask.lambda$forPreparer$0(PrefetchingDatabaseProvider.java:333)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at io.zonky.test.db.provider.common.PrefetchingDatabaseProvider$PrefetchingTask.run(PrefetchingDatabaseProvider.java:358)
... 3 more
Caused by: org.postgresql.util.PSQLException: Unsupported property name: autocommit
at org.postgresql.ds.common.BaseDataSource.setProperty(BaseDataSource.java:1307)
at io.zonky.test.db.postgres.embedded.EmbeddedPostgres.lambda$getDatabase$0(EmbeddedPostgres.java:199)
... 20 more
I can provide small PR that treats autocommit
property specialty.
@vladimirfx Any progress on this?
I guess that using server properties instead of the client ones could be the trick to fix the error.
zonky.test.database.postgres.server.properties.autocommit=false