From b76ec0a18f9fd066ebe5a093e8ece7520089bb7b Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Mon, 6 Feb 2023 21:26:13 -0800 Subject: [PATCH] Parallel tests (#10064) * Staging parallel tests * Parallelize Tests * Parallelize Tests * Parallelize Tests * Parallelize Tests * Parallelize Tests * Parallelize Tests --- openmetadata-service/pom.xml | 6 +- .../service/OpenMetadataApplicationTest.java | 4 +- .../service/resources/EntityResourceTest.java | 68 ++++++++++++++++--- .../resources/charts/ChartResourceTest.java | 5 ++ .../databases/DatabaseResourceTest.java | 2 - .../databases/DatabaseSchemaResourceTest.java | 2 - .../databases/TableResourceTest.java | 16 +++-- .../dqtests/TestCaseResourceTest.java | 9 ++- .../dqtests/TestSuiteResourceTest.java | 2 +- .../resources/events/AlertResourceTest.java | 2 + .../resources/feeds/FeedResourceTest.java | 53 +++++++-------- .../glossary/GlossaryResourceTest.java | 3 +- .../lineage/LineageResourceTest.java | 26 ++++--- .../locations/LocationResourceTest.java | 4 +- .../permissions/PermissionsResourceTest.java | 2 - .../pipelines/PipelineResourceTest.java | 11 ++- .../policies/PolicyResourceTest.java | 16 +---- .../MessagingServiceResourceTest.java | 5 +- .../services/PipelineServiceResourceTest.java | 2 +- .../resources/tags/TagResourceTest.java | 2 +- .../resources/teams/TeamResourceTest.java | 7 +- .../resources/usage/UsageResourceTest.java | 28 ++++---- 22 files changed, 166 insertions(+), 109 deletions(-) diff --git a/openmetadata-service/pom.xml b/openmetadata-service/pom.xml index e1f33328c71..99cf2b8af57 100644 --- a/openmetadata-service/pom.xml +++ b/openmetadata-service/pom.xml @@ -567,7 +567,11 @@ maven-surefire-plugin ${maven-surefire.version} - false + false + classes + 1 + 2C + -Xmx1024m diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java index a3af09d8405..ccbaec88e25 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/OpenMetadataApplicationTest.java @@ -28,6 +28,7 @@ import org.glassfish.jersey.client.HttpUrlConnectorProvider; import org.glassfish.jersey.client.JerseyClientBuilder; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.TestInstance; import org.openmetadata.service.fernet.Fernet; import org.openmetadata.service.resources.CollectionRegistry; import org.openmetadata.service.resources.events.WebhookCallbackResource; @@ -37,6 +38,7 @@ import org.openmetadata.service.security.policyevaluator.SubjectCache; import org.testcontainers.containers.JdbcDatabaseContainer; @Slf4j +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public abstract class OpenMetadataApplicationTest { protected static final String CONFIG_PATH = ResourceHelpers.resourceFilePath("openmetadata-secure-test.yaml"); public static DropwizardAppExtension APP; @@ -58,7 +60,7 @@ public abstract class OpenMetadataApplicationTest { JdbcDatabaseContainer sqlContainer = (JdbcDatabaseContainer) Class.forName(jdbcContainerClassName).getConstructor(String.class).newInstance(jdbcContainerImage); - sqlContainer.withReuse(true); + sqlContainer.withReuse(false); sqlContainer.withStartupTimeoutSeconds(240); sqlContainer.withConnectTimeoutSeconds(240); sqlContainer.start(); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java index 831f0203de1..f3c697aa8c7 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/EntityResourceTest.java @@ -99,6 +99,8 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.openmetadata.common.utils.CommonUtil; import org.openmetadata.csv.CsvUtilTest; import org.openmetadata.csv.EntityCsvTest; @@ -410,6 +412,16 @@ public abstract class EntityResourceTest= 1 and <= 1000,000 assertResponse( @@ -683,6 +698,7 @@ public abstract class EntityResourceTest createEntity(createRequest(test), TEST_AUTH_HEADERS), @@ -902,6 +929,7 @@ public abstract class EntityResourceTest deleteEntity(NON_EXISTENT_ENTITY, ADMIN_AUTH_HEADERS), @@ -1483,6 +1530,7 @@ public abstract class EntityResourceTest eventHolder.hasExpectedEvent( @@ -2071,7 +2123,7 @@ public abstract class EntityResourceTest eventHolder.hasDeletedEvent(getChangeEvents(null, null, entityType, timestamp, authHeaders), id)); ChangeEvent changeEvent = eventHolder.getExpectedEvent(); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java index 133adb901e4..f5864c6ccd2 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/charts/ChartResourceTest.java @@ -28,6 +28,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.http.client.HttpResponseException; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; import org.openmetadata.schema.api.data.CreateChart; import org.openmetadata.schema.entity.data.Chart; import org.openmetadata.schema.type.ChartType; @@ -45,6 +47,7 @@ public class ChartResourceTest extends EntityResourceTest { } @Test + @Execution(ExecutionMode.CONCURRENT) void post_chartWithoutRequiredFields_4xx(TestInfo test) { // Service is required field assertResponse( @@ -54,6 +57,7 @@ public class ChartResourceTest extends EntityResourceTest { } @Test + @Execution(ExecutionMode.CONCURRENT) void post_chartWithDifferentService_200_ok(TestInfo test) throws IOException { EntityReference[] differentServices = {METABASE_REFERENCE, LOOKER_REFERENCE}; @@ -72,6 +76,7 @@ public class ChartResourceTest extends EntityResourceTest { } @Override + @Execution(ExecutionMode.CONCURRENT) public Chart validateGetWithDifferentFields(Chart chart, boolean byName) throws HttpResponseException { String fields = ""; chart = diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java index 33f4fd7a8e7..66718c698ca 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseResourceTest.java @@ -30,7 +30,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.http.client.HttpResponseException; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; -import org.junit.jupiter.api.TestInstance; import org.openmetadata.schema.api.data.CreateDatabase; import org.openmetadata.schema.api.data.CreateDatabaseSchema; import org.openmetadata.schema.entity.data.Database; @@ -44,7 +43,6 @@ import org.openmetadata.service.util.ResultList; import org.openmetadata.service.util.TestUtils; @Slf4j -@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class DatabaseResourceTest extends EntityResourceTest { public DatabaseResourceTest() { super(Entity.DATABASE, Database.class, DatabaseList.class, "databases", DatabaseResource.FIELDS); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java index adc29fdd864..3b86989b992 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/DatabaseSchemaResourceTest.java @@ -27,7 +27,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.http.client.HttpResponseException; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; -import org.junit.jupiter.api.TestInstance; import org.openmetadata.schema.api.data.CreateDatabaseSchema; import org.openmetadata.schema.api.data.CreateTable; import org.openmetadata.schema.entity.data.DatabaseSchema; @@ -39,7 +38,6 @@ import org.openmetadata.service.util.FullyQualifiedName; import org.openmetadata.service.util.TestUtils; @Slf4j -@TestInstance(TestInstance.Lifecycle.PER_CLASS) class DatabaseSchemaResourceTest extends EntityResourceTest { public DatabaseSchemaResourceTest() { super( diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java index 50e944d68fa..ceabbbe9c02 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/databases/TableResourceTest.java @@ -84,6 +84,7 @@ import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestMethodOrder; import org.openmetadata.schema.api.data.CreateDatabase; import org.openmetadata.schema.api.data.CreateDatabaseSchema; @@ -141,6 +142,7 @@ import org.openmetadata.service.util.TestUtils; @Slf4j @TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class TableResourceTest extends EntityResourceTest { private final TagResourceTest tagResourceTest = new TagResourceTest(); @@ -1449,10 +1451,10 @@ public class TableResourceTest extends EntityResourceTest { assertEquals(3, getClassificationUsageCount("User", ADMIN_AUTH_HEADERS)); // Total 1 glossary1 tags - 1 column - assertEquals(1, getGlossaryUsageCount("g1")); + assertEquals(1, getGlossaryUsageCount(GLOSSARY1.getName())); // Total 1 glossary2 tags - 1 table - assertEquals(1, getGlossaryUsageCount("g2")); + assertEquals(1, getGlossaryUsageCount(GLOSSARY2.getName())); // Total 3 USER_ADDRESS tags - 1 table tag and 2 column tags assertEquals(3, getTagUsageCount(USER_ADDRESS_TAG_LABEL.getTagFQN(), ADMIN_AUTH_HEADERS)); @@ -1638,14 +1640,18 @@ public class TableResourceTest extends EntityResourceTest { } @Test - void patch_tableColumnTags_200_ok(TestInfo test) throws IOException { + void patch_tableColumnsTags_200_ok(TestInfo test) throws IOException { Column c1 = getColumn(C1, INT, null); CreateTable create = createRequest(test).withColumns(List.of(c1)); Table table = createAndCheckEntity(create, ADMIN_AUTH_HEADERS); // Add a primary tag and derived tag both. The tag list must include derived tags only once. String json = JsonUtils.pojoToJson(table); - table.getColumns().get(0).withTags(List.of(GLOSSARY1_TERM1_LABEL, PERSONAL_DATA_TAG_LABEL, USER_ADDRESS_TAG_LABEL)); + table + .getColumns() + .get(0) + .withTags( + List.of(GLOSSARY1_TERM1_LABEL, PERSONAL_DATA_TAG_LABEL, USER_ADDRESS_TAG_LABEL, PII_SENSITIVE_TAG_LABEL)); Table updatedTable = patchEntity(table.getId(), json, table, ADMIN_AUTH_HEADERS); // Ensure only 4 tag labels are found - Manual tags PersonalData.Personal, User.Address, glossaryTerm1 @@ -1671,7 +1677,7 @@ public class TableResourceTest extends EntityResourceTest { TagLabel piiSensitive = updateTags.stream().filter(t -> tagLabelMatch.test(t, PII_SENSITIVE_TAG_LABEL)).findAny().orElse(null); assertNotNull(piiSensitive); - assertEquals(LabelType.DERIVED, piiSensitive.getLabelType()); + assertEquals(LabelType.MANUAL, piiSensitive.getLabelType()); } @Test diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java index 9326dd4e2d7..0bb377fc6bb 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/dqtests/TestCaseResourceTest.java @@ -28,7 +28,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.UUID; import javax.ws.rs.client.WebTarget; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -95,7 +94,7 @@ public class TestCaseResourceTest extends EntityResourceTest getTestSuites(Integer limit, String fields, Map authHeaders) + public ResultList getTestSuites(Integer limit, String fields, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("testSuite"); target = limit != null ? target.queryParam("limit", limit) : target; diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/AlertResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/AlertResourceTest.java index 84b0840dcb1..7d3172bed79 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/AlertResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/events/AlertResourceTest.java @@ -27,6 +27,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.http.client.HttpResponseException; import org.awaitility.Awaitility; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; @@ -53,6 +54,7 @@ import org.openmetadata.service.util.TestUtils; @Slf4j @TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@Disabled public class AlertResourceTest extends EntityResourceTest { public static final TriggerConfig ALL_EVENTS_FILTER = new TriggerConfig().withType(TriggerConfig.AlertTriggerType.ALL_DATA_ASSETS); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java index 0750d95d9b2..38032d43dc6 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/feeds/FeedResourceTest.java @@ -67,6 +67,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.MethodOrderer; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; @@ -113,6 +114,7 @@ import org.openmetadata.service.util.TestUtils; @Slf4j @TestMethodOrder(MethodOrderer.OrderAnnotation.class) +@TestInstance(TestInstance.Lifecycle.PER_CLASS) public class FeedResourceTest extends OpenMetadataApplicationTest { public static Table TABLE; public static Table TABLE2; @@ -136,7 +138,7 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { : 1; @BeforeAll - public static void setup(TestInfo test) throws IOException, URISyntaxException { + public void setup(TestInfo test) throws IOException, URISyntaxException { TABLE_RESOURCE_TEST = new TableResourceTest(); TABLE_RESOURCE_TEST.setup(test); // Initialize TableResourceTest for using helper methods @@ -1303,8 +1305,7 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { entityNotFound("Post", NON_EXISTENT_ENTITY)); } - public static Thread createAndCheck(CreateThread create, Map authHeaders) - throws HttpResponseException { + public Thread createAndCheck(CreateThread create, Map authHeaders) throws HttpResponseException { // Validate returned thread from POST Thread thread = createThread(create, authHeaders); validateThread(thread, create.getMessage(), create.getFrom(), create.getAbout()); @@ -1326,14 +1327,14 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { return returnedThread; } - private static void validateThread(Thread thread, String message, String from, String about) { + private void validateThread(Thread thread, String message, String from, String about) { assertNotNull(thread.getId()); assertEquals(message, thread.getMessage()); assertEquals(from, thread.getCreatedBy()); assertEquals(about, thread.getAbout()); } - private static void validatePost(Thread expected, Thread actual, String from, String message) { + private void validatePost(Thread expected, Thread actual, String from, String message) { // Make sure the post added is as expected Post actualPost = actual.getPosts().get(actual.getPosts().size() - 1); // Last post was newly added to the thread assertEquals(from, actualPost.getFrom()); @@ -1344,56 +1345,54 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { assertEquals(expected.getPosts().size() + 1, actual.getPosts().size()); } - public static Thread createThread(CreateThread create, Map authHeaders) throws HttpResponseException { + public Thread createThread(CreateThread create, Map authHeaders) throws HttpResponseException { return TestUtils.post(getResource("feed"), create, Thread.class, authHeaders); } - public static Thread addPost(UUID threadId, CreatePost post, Map authHeaders) - throws HttpResponseException { + public Thread addPost(UUID threadId, CreatePost post, Map authHeaders) throws HttpResponseException { return TestUtils.post(getResource("feed/" + threadId + "/posts"), post, Thread.class, authHeaders); } - public static Thread deleteThread(UUID threadId, Map authHeaders) throws HttpResponseException { + public Thread deleteThread(UUID threadId, Map authHeaders) throws HttpResponseException { return TestUtils.delete(getResource("feed/" + threadId), Thread.class, authHeaders); } - public static Post deletePost(UUID threadId, UUID postId, Map authHeaders) - throws HttpResponseException { + public Post deletePost(UUID threadId, UUID postId, Map authHeaders) throws HttpResponseException { return TestUtils.delete(getResource("feed/" + threadId + "/posts/" + postId), Post.class, authHeaders); } - public static CreateThread create() { + public CreateThread create() { String about = String.format("<#E::%s::%s>", Entity.TABLE, TABLE.getFullyQualifiedName()); return new CreateThread().withFrom(USER.getName()).withMessage("message").withAbout(about); } - public static CreatePost createPost(String message) { + public CreatePost createPost(String message) { message = StringUtils.isNotEmpty(message) ? message : "message"; return new CreatePost().withFrom(USER.getName()).withMessage(message); } - public static Thread getThread(UUID id, Map authHeaders) throws HttpResponseException { + public Thread getThread(UUID id, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("feed/" + id); return TestUtils.get(target, Thread.class, authHeaders); } - public static Thread getTask(int id, Map authHeaders) throws HttpResponseException { + public Thread getTask(int id, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("feed/tasks/" + id); return TestUtils.get(target, Thread.class, authHeaders); } - public static void resolveTask(int id, ResolveTask resolveTask, Map authHeaders) + public void resolveTask(int id, ResolveTask resolveTask, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("feed/tasks/" + id + "/resolve"); TestUtils.put(target, resolveTask, Status.OK, authHeaders); } - public static void closeTask(int id, String comment, Map authHeaders) throws HttpResponseException { + public void closeTask(int id, String comment, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("feed/tasks/" + id + "/close"); TestUtils.put(target, new CloseTask().withComment(comment), Status.OK, authHeaders); } - public static ThreadList listTasks( + public ThreadList listTasks( String entityLink, String userId, String filterType, @@ -1415,7 +1414,7 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { null); } - public static ThreadList listAnnouncements( + public ThreadList listAnnouncements( String entityLink, Integer limitPosts, Boolean activeAnnouncement, Map authHeaders) throws HttpResponseException { return listThreads( @@ -1432,7 +1431,7 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { null); } - public static ThreadList listThreads(String entityLink, Integer limitPosts, Map authHeaders) + public ThreadList listThreads(String entityLink, Integer limitPosts, Map authHeaders) throws HttpResponseException { return listThreads( entityLink, @@ -1448,7 +1447,7 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { null); } - public static ThreadList listThreads( + public ThreadList listThreads( String entityLink, Integer limitPosts, Map authHeaders, @@ -1475,13 +1474,12 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { return TestUtils.get(target, ThreadList.class, authHeaders); } - public static void followTable(UUID tableId, UUID userId, Map authHeaders) - throws HttpResponseException { + public void followTable(UUID tableId, UUID userId, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("tables/" + tableId + "/followers"); TestUtils.put(target, userId, OK, authHeaders); } - public static ThreadList listThreadsWithFilter(String userId, String filterType, Map authHeaders) + public ThreadList listThreadsWithFilter(String userId, String filterType, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("feed"); target = target.queryParam("type", ThreadType.Conversation); @@ -1490,20 +1488,19 @@ public class FeedResourceTest extends OpenMetadataApplicationTest { return TestUtils.get(target, ThreadList.class, authHeaders); } - public static PostList listPosts(String threadId, Map authHeaders) throws HttpResponseException { + public PostList listPosts(String threadId, Map authHeaders) throws HttpResponseException { WebTarget target = getResource(String.format("feed/%s/posts", threadId)); return TestUtils.get(target, PostList.class, authHeaders); } - public static ThreadCount listThreadsCount(String entityLink, Map authHeaders) - throws HttpResponseException { + public ThreadCount listThreadsCount(String entityLink, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("feed/count"); target = entityLink != null ? target.queryParam("entityLink", entityLink) : target; target = target.queryParam("type", ThreadType.Conversation); return TestUtils.get(target, ThreadCount.class, authHeaders); } - public static ThreadCount listTasksCount(String entityLink, TaskStatus taskStatus, Map authHeaders) + public ThreadCount listTasksCount(String entityLink, TaskStatus taskStatus, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("feed/count"); target = entityLink != null ? target.queryParam("entityLink", entityLink) : target; diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java index d0224393230..7c6b079436c 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/glossary/GlossaryResourceTest.java @@ -100,7 +100,6 @@ public class GlossaryResourceTest extends EntityResourceTest authHeaders) - throws HttpResponseException { + public void addLineageAndCheck(AddLineage addLineage, Map authHeaders) throws HttpResponseException { addLineage(addLineage, authHeaders); validateLineage(addLineage, authHeaders); } - public static void deleteLineageAndCheck(EntitiesEdge deleteEdge, Map authHeaders) + public void deleteLineageAndCheck(EntitiesEdge deleteEdge, Map authHeaders) throws HttpResponseException { deleteLineage(deleteEdge, authHeaders); validateLineageDeleted(deleteEdge, authHeaders); } - public static void addLineage(AddLineage addLineage, Map authHeaders) throws HttpResponseException { + public void addLineage(AddLineage addLineage, Map authHeaders) throws HttpResponseException { TestUtils.put(getResource("lineage"), addLineage, Status.OK, authHeaders); } - public static void deleteLineage(EntitiesEdge edge, Map authHeaders) throws HttpResponseException { + public void deleteLineage(EntitiesEdge edge, Map authHeaders) throws HttpResponseException { WebTarget target = getResource( String.format( @@ -350,8 +349,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { TestUtils.delete(target, authHeaders); } - private static void validateLineage(AddLineage addLineage, Map authHeaders) - throws HttpResponseException { + private void validateLineage(AddLineage addLineage, Map authHeaders) throws HttpResponseException { EntityReference from = addLineage.getEdge().getFromEntity(); EntityReference to = addLineage.getEdge().getToEntity(); Edge expectedEdge = getEdge(from.getId(), to.getId(), addLineage.getEdge().getLineageDetails()); @@ -365,7 +363,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { assertEdge(lineage, expectedEdge, false); } - private static void validateLineageDeleted(EntitiesEdge deletedEdge, Map authHeaders) + private void validateLineageDeleted(EntitiesEdge deletedEdge, Map authHeaders) throws HttpResponseException { EntityReference from = deletedEdge.getFromEntity(); EntityReference to = deletedEdge.getToEntity(); @@ -405,7 +403,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { } } - public static void assertLineage( + public void assertLineage( String entityType, UUID id, String fqn, @@ -424,7 +422,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { assertEquals(lineageById, lineageByName); } - public static EntityLineage getLineage( + public EntityLineage getLineage( String entity, UUID id, Integer upstreamDepth, Integer downStreamDepth, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("lineage/" + entity + "/" + id); @@ -435,7 +433,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { return lineage; } - public static EntityLineage getLineageByName( + public EntityLineage getLineageByName( String entity, String fqn, Integer upstreamDepth, Integer downStreamDepth, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("lineage/" + entity + "/name/" + fqn); @@ -446,7 +444,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { return lineage; } - public static void assertEdge(EntityLineage lineage, Edge expectedEdge, boolean downstream) { + public void assertEdge(EntityLineage lineage, Edge expectedEdge, boolean downstream) { if (downstream) { assertTrue(lineage.getDownstreamEdges().contains(expectedEdge)); } else { @@ -454,7 +452,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { } } - public static void assertDeleted(EntityLineage lineage, Edge expectedEdge, boolean downstream) { + public void assertDeleted(EntityLineage lineage, Edge expectedEdge, boolean downstream) { if (downstream) { assertFalse(lineage.getDownstreamEdges().contains(expectedEdge)); } else { @@ -462,7 +460,7 @@ public class LineageResourceTest extends OpenMetadataApplicationTest { } } - public static void assertEdges(EntityLineage lineage, Edge[] expectedUpstreamEdges, Edge[] expectedDownstreamEdges) { + public void assertEdges(EntityLineage lineage, Edge[] expectedUpstreamEdges, Edge[] expectedDownstreamEdges) { assertEquals(lineage.getUpstreamEdges().size(), expectedUpstreamEdges.length); for (Edge expectedUpstreamEdge : expectedUpstreamEdges) { assertTrue(lineage.getUpstreamEdges().contains(expectedUpstreamEdge)); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/locations/LocationResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/locations/LocationResourceTest.java index e84cab58455..6192ae54101 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/locations/LocationResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/locations/LocationResourceTest.java @@ -176,7 +176,7 @@ public class LocationResourceTest extends EntityResourceTest authHeaders) + public Location updateLocation(CreateLocation create, Status status, Map authHeaders) throws HttpResponseException { return TestUtils.put(getResource("locations"), create, Location.class, status, authHeaders); } @@ -201,7 +201,7 @@ public class LocationResourceTest extends EntityResourceTest authHeaders) throws HttpResponseException { String encodedFqn = URLEncoder.encode(fqn, StandardCharsets.UTF_8); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java index 4d2a3628b2f..8ac707d3048 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/permissions/PermissionsResourceTest.java @@ -51,7 +51,6 @@ import org.apache.http.client.HttpResponseException; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; -import org.junit.jupiter.api.TestInstance; import org.openmetadata.schema.api.data.CreateTable; import org.openmetadata.schema.entity.data.Table; import org.openmetadata.schema.entity.policies.Policy; @@ -78,7 +77,6 @@ import org.openmetadata.service.util.JsonUtils; import org.openmetadata.service.util.TestUtils; @Slf4j -@TestInstance(TestInstance.Lifecycle.PER_CLASS) class PermissionsResourceTest extends OpenMetadataApplicationTest { private static Rule ORG_IS_OWNER_RULE; private static Rule ORG_NO_OWNER_RULE; diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java index 8d5eac7f41c..daede8c28a4 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/pipelines/PipelineResourceTest.java @@ -547,14 +547,13 @@ public class PipelineResourceTest extends EntityResourceTest authHeaders) - throws HttpResponseException { + public Pipeline getPipeline(UUID id, String fields, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("pipelines/" + id); target = fields != null ? target.queryParam("fields", fields) : target; return TestUtils.get(target, Pipeline.class, authHeaders); } - public static Pipeline getPipelineByName(String fqn, String fields, Map authHeaders) + public Pipeline getPipelineByName(String fqn, String fields, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("pipelines/name/" + fqn); target = fields != null ? target.queryParam("fields", fields) : target; @@ -562,19 +561,19 @@ public class PipelineResourceTest extends EntityResourceTest authHeaders) + public Pipeline putPipelineStatusData(String fqn, PipelineStatus data, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("pipelines/" + fqn + "/status"); return TestUtils.put(target, data, Pipeline.class, OK, authHeaders); } - public static Pipeline deletePipelineStatus(String fqn, Long timestamp, Map authHeaders) + public Pipeline deletePipelineStatus(String fqn, Long timestamp, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("pipelines/" + fqn + "/status/" + timestamp); return TestUtils.delete(target, Pipeline.class, authHeaders); } - public static ResultList getPipelineStatues( + public ResultList getPipelineStatues( String fqn, Long startTs, Long endTs, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("pipelines/" + fqn + "/status"); target = target.queryParam("startTs", startTs).queryParam("endTs", endTs); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java index 0ca3ae354a0..743fcd59d41 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/policies/PolicyResourceTest.java @@ -34,7 +34,6 @@ import static org.openmetadata.service.util.TestUtils.assertResponseContains; import java.io.IOException; import java.net.URI; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @@ -44,7 +43,6 @@ import javax.ws.rs.client.WebTarget; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.apache.http.client.HttpResponseException; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; import org.openmetadata.schema.api.data.CreateLocation; @@ -79,8 +77,6 @@ import org.openmetadata.service.util.TestUtils; @Slf4j public class PolicyResourceTest extends EntityResourceTest { - private static final String LOCATION_NAME = "aws-s3"; - private static Location location; public PolicyResourceTest() { super( @@ -92,12 +88,6 @@ public class PolicyResourceTest extends EntityResourceTest Entity.ORGANIZATION_POLICY_NAME); } - @BeforeAll - public void setup(TestInfo test) throws IOException, URISyntaxException { - super.setup(test); - location = createLocation(); - } - public void setupPolicies() throws IOException { POLICY1 = createEntity(createRequest("policy1").withOwner(null), ADMIN_AUTH_HEADERS); POLICY2 = createEntity(createRequest("policy2").withOwner(null), ADMIN_AUTH_HEADERS); @@ -272,7 +262,7 @@ public class PolicyResourceTest extends EntityResourceTest ChangeDescription change = getChangeDescription(policy.getVersion()); fieldUpdated(change, "enabled", true, false); policy = patchEntityAndCheck(policy, origJson, ADMIN_AUTH_HEADERS, MINOR_UPDATE, change); - + Location location = createLocation(); EntityReference locationReference = location.getEntityReference(); // Add new field location @@ -420,9 +410,9 @@ public class PolicyResourceTest extends EntityResourceTest TestUtils.get(target, ADMIN_AUTH_HEADERS); } - private static Location createLocation() throws HttpResponseException { + private Location createLocation() throws HttpResponseException { LocationResourceTest locationResourceTest = new LocationResourceTest(); - CreateLocation createLocation = locationResourceTest.createRequest(LOCATION_NAME, "", "", null); + CreateLocation createLocation = locationResourceTest.createRequest("aws-s3", "", "", null); return TestUtils.post(getResource("locations"), createLocation, Location.class, ADMIN_AUTH_HEADERS); } diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/services/MessagingServiceResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/services/MessagingServiceResourceTest.java index 077aa0d067a..1776ba133fe 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/services/MessagingServiceResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/services/MessagingServiceResourceTest.java @@ -144,7 +144,10 @@ public class MessagingServiceResourceTest extends EntityResourceTest authHeaders) { diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java index 001558132b8..713f86b7d5f 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/tags/TagResourceTest.java @@ -86,7 +86,7 @@ public class TagResourceTest extends EntityResourceTest { null, PERSONAL_DATA_TAG_LABEL.getTagFQN(), PII_SENSITIVE_TAG_LABEL.getTagFQN()); - USER_ADDRESS_TAG_LABEL = getTagLabel(FullyQualifiedName.add("User", "Address")); + USER_ADDRESS_TAG_LABEL = getTagLabel(FullyQualifiedName.add(USER_TAG_CATEGORY.getName(), "Address")); } private TagLabel getTagLabel(String tagName) throws HttpResponseException { diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java index ac3a83676ac..81de9e8c7ba 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/teams/TeamResourceTest.java @@ -634,13 +634,16 @@ public class TeamResourceTest extends EntityResourceTest { Team team = createAndCheckEntity(create, ADMIN_AUTH_HEADERS); // Add policies to the team - create = createRequest(getEntityName(test)).withPolicies(List.of(POLICY1.getId(), POLICY2.getId())); + create = + createRequest(getEntityName(test)) + .withPolicies(List.of(POLICY1.getId(), POLICY2.getId())) + .withName(team.getName()); ChangeDescription change = getChangeDescription(team.getVersion()); fieldAdded(change, "policies", List.of(POLICY1.getEntityReference(), POLICY2.getEntityReference())); team = updateAndCheckEntity(create, OK, ADMIN_AUTH_HEADERS, MINOR_UPDATE, change); // Remove policies from the team - create = createRequest(getEntityName(test)); + create = createRequest(getEntityName(test)).withName(team.getName()); change = getChangeDescription(team.getVersion()); fieldDeleted(change, "policies", List.of(POLICY1.getEntityReference(), POLICY2.getEntityReference())); updateAndCheckEntity(create, OK, ADMIN_AUTH_HEADERS, MINOR_UPDATE, change); diff --git a/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java b/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java index 42b03e220e2..7027b97ab32 100644 --- a/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java +++ b/openmetadata-service/src/test/java/org/openmetadata/service/resources/usage/UsageResourceTest.java @@ -292,82 +292,82 @@ class UsageResourceTest extends OpenMetadataApplicationTest { Assertions.assertEquals(usage.getUsage().get(0), database.getUsageSummary()); } - public static DailyCount usageReport() { + public DailyCount usageReport() { Random random = new Random(); String today = RestUtil.DATE_FORMAT.format(new Date()); return new DailyCount().withCount(random.nextInt(100)).withDate(today); } - public static void reportUsageByNameAndCheckPut( + public void reportUsageByNameAndCheckPut( String entity, String fqn, DailyCount usage, int weeklyCount, int monthlyCount, Map authHeaders) throws HttpResponseException { reportUsageByNamePut(entity, fqn, usage, authHeaders); checkUsageByName(usage.getDate(), entity, fqn, usage.getCount(), weeklyCount, monthlyCount, authHeaders); } - public static void reportUsageAndCheckPut( + public void reportUsageAndCheckPut( String entity, UUID id, DailyCount usage, int weeklyCount, int monthlyCount, Map authHeaders) throws HttpResponseException { reportUsagePut(entity, id, usage, authHeaders); checkUsage(usage.getDate(), entity, id, usage.getCount(), weeklyCount, monthlyCount, authHeaders); } - public static void reportUsageByName(String entity, String name, DailyCount usage, Map authHeaders) + public void reportUsageByName(String entity, String name, DailyCount usage, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("usage/" + entity + "/name/" + name); TestUtils.post(target, usage, authHeaders); } - public static void reportUsageByNamePut(String entity, String name, DailyCount usage, Map authHeaders) + public void reportUsageByNamePut(String entity, String name, DailyCount usage, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("usage/" + entity + "/name/" + name); TestUtils.put(target, usage, Response.Status.CREATED, authHeaders); } - public static void reportUsage(String entity, UUID id, DailyCount usage, Map authHeaders) + public void reportUsage(String entity, UUID id, DailyCount usage, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("usage/" + entity + "/" + id); TestUtils.post(target, usage, authHeaders); } - public static void reportUsagePut(String entity, UUID id, DailyCount usage, Map authHeaders) + public void reportUsagePut(String entity, UUID id, DailyCount usage, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("usage/" + entity + "/" + id); TestUtils.put(target, usage, Response.Status.CREATED, authHeaders); } - public static void computePercentile(String entity, String date, Map authHeaders) + public void computePercentile(String entity, String date, Map authHeaders) throws HttpResponseException { WebTarget target = getResource("usage/compute.percentile/" + entity + "/" + date); TestUtils.post(target, authHeaders); } - public static void getAndCheckUsage( + public void getAndCheckUsage( String entity, UUID id, String date, Integer days, int expectedRecords, Map authHeaders) throws HttpResponseException { EntityUsage usage = getUsage(entity, id, date, days, authHeaders); assertEquals(expectedRecords, usage.getUsage().size()); } - public static EntityUsage getUsageByName( + public EntityUsage getUsageByName( String entity, String fqn, String date, Integer days, Map authHeaders) throws HttpResponseException { return getUsage(getResource("usage/" + entity + "/name/" + fqn), date, days, authHeaders); } - public static EntityUsage getUsage(String entity, UUID id, String date, Integer days, Map authHeaders) + public EntityUsage getUsage(String entity, UUID id, String date, Integer days, Map authHeaders) throws HttpResponseException { return getUsage(getResource("usage/" + entity + "/" + id), date, days, authHeaders); } - public static EntityUsage getUsage(WebTarget target, String date, Integer days, Map authHeaders) + public EntityUsage getUsage(WebTarget target, String date, Integer days, Map authHeaders) throws HttpResponseException { target = date != null ? target.queryParam("date", date) : target; target = days != null ? target.queryParam("days", days) : target; return TestUtils.get(target, EntityUsage.class, authHeaders); } - public static void checkUsage( + public void checkUsage( String date, String entity, UUID id, @@ -381,7 +381,7 @@ class UsageResourceTest extends OpenMetadataApplicationTest { checkUsage(usage, date, entity, dailyCount, weeklyCount, monthlyCount); } - public static void checkUsageByName( + public void checkUsageByName( String date, String entity, String name,