Fix Test Failures due to config not read in app tests (#22653)

This commit is contained in:
Mohit Yadav 2025-07-30 09:41:21 +05:30 committed by GitHub
parent 3a90b38a26
commit 904d7590a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -15,16 +15,26 @@ package org.openmetadata.service;
import static java.lang.String.format;
import com.fasterxml.jackson.databind.ObjectMapper;
import es.org.elasticsearch.client.RestClient;
import es.org.elasticsearch.client.RestClientBuilder;
import io.dropwizard.configuration.ConfigurationException;
import io.dropwizard.configuration.EnvironmentVariableSubstitutor;
import io.dropwizard.configuration.FileConfigurationSourceProvider;
import io.dropwizard.configuration.SubstitutingSourceProvider;
import io.dropwizard.configuration.YamlConfigurationFactory;
import io.dropwizard.db.DataSourceFactory;
import io.dropwizard.jackson.Jackson;
import io.dropwizard.jersey.jackson.JacksonFeature;
import io.dropwizard.jersey.validation.Validators;
import io.dropwizard.testing.ConfigOverride;
import io.dropwizard.testing.ResourceHelpers;
import io.dropwizard.testing.junit5.DropwizardAppExtension;
import jakarta.validation.Validator;
import jakarta.ws.rs.client.Client;
import jakarta.ws.rs.client.ClientBuilder;
import jakarta.ws.rs.client.WebTarget;
import java.io.IOException;
import java.net.URI;
import java.time.Duration;
import java.util.HashSet;
@ -55,6 +65,8 @@ import org.openmetadata.schema.type.IndexMappingLanguage;
import org.openmetadata.search.IndexMappingLoader;
import org.openmetadata.service.apps.ApplicationContext;
import org.openmetadata.service.apps.ApplicationHandler;
import org.openmetadata.service.events.AuditExcludeFilterFactory;
import org.openmetadata.service.events.AuditOnlyFilterFactory;
import org.openmetadata.service.governance.workflows.WorkflowHandler;
import org.openmetadata.service.jdbi3.CollectionDAO;
import org.openmetadata.service.jdbi3.locator.ConnectionAwareAnnotationSqlLocator;
@ -136,7 +148,7 @@ public abstract class OpenMetadataApplicationTest {
if (CommonUtil.nullOrEmpty(elasticSearchContainerImage)) {
elasticSearchContainerImage = ELASTIC_SEARCH_CONTAINER_IMAGE;
}
OpenMetadataApplicationConfig config = new OpenMetadataApplicationConfig();
OpenMetadataApplicationConfig config = readTestAppConfig(CONFIG_PATH);
// The system properties are provided by maven-surefire for testing with mysql and postgres
LOG.info(
"Using test container class {} and image {}", jdbcContainerClassName, jdbcContainerImage);
@ -273,6 +285,20 @@ public abstract class OpenMetadataApplicationTest {
Entity.cleanup();
}
protected OpenMetadataApplicationConfig readTestAppConfig(String path)
throws ConfigurationException, IOException {
ObjectMapper objectMapper = Jackson.newObjectMapper();
objectMapper.registerSubtypes(AuditExcludeFilterFactory.class, AuditOnlyFilterFactory.class);
Validator validator = Validators.newValidator();
YamlConfigurationFactory<OpenMetadataApplicationConfig> factory =
new YamlConfigurationFactory<>(
OpenMetadataApplicationConfig.class, validator, objectMapper, "dw");
return factory.build(
new SubstitutingSourceProvider(
new FileConfigurationSourceProvider(), new EnvironmentVariableSubstitutor(false)),
path);
}
protected CollectionDAO getDao(Jdbi jdbi) {
CollectionDAO originalDAO = jdbi.onDemand(CollectionDAO.class);