mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-07-23 09:22:18 +00:00
MINOR fix test case search filtering (#15785)
* fix: test case filtering from search endpoint * style: ran java linting * fix: updated test case EL in list test
This commit is contained in:
parent
205850be79
commit
dd53f45cc6
@ -46,6 +46,7 @@ import org.openmetadata.schema.type.EntityHistory;
|
||||
import org.openmetadata.schema.type.Include;
|
||||
import org.openmetadata.schema.type.MetadataOperation;
|
||||
import org.openmetadata.service.Entity;
|
||||
import org.openmetadata.service.jdbi3.Filter;
|
||||
import org.openmetadata.service.jdbi3.ListFilter;
|
||||
import org.openmetadata.service.jdbi3.TestCaseRepository;
|
||||
import org.openmetadata.service.resources.Collection;
|
||||
@ -369,7 +370,7 @@ public class TestCaseResource extends EntityResource<TestCase, TestCaseRepositor
|
||||
}
|
||||
|
||||
ResourceContextInterface resourceContextInterface =
|
||||
getResourceContext(entityLink, new ListFilter());
|
||||
getResourceContext(entityLink, searchListFilter);
|
||||
// Override OperationContext to change the entity to table and operation from VIEW_ALL to
|
||||
// VIEW_TESTS
|
||||
OperationContext operationContext =
|
||||
@ -952,7 +953,7 @@ public class TestCaseResource extends EntityResource<TestCase, TestCaseRepositor
|
||||
return repository.addTestCasesToLogicalTestSuite(testSuite, testCaseIds).toResponse();
|
||||
}
|
||||
|
||||
private ResourceContextInterface getResourceContext(String entityLink, ListFilter filter) {
|
||||
private ResourceContextInterface getResourceContext(String entityLink, Filter filter) {
|
||||
ResourceContextInterface resourceContext;
|
||||
if (entityLink != null) {
|
||||
EntityLink entityLinkParsed = EntityLink.parse(entityLink);
|
||||
|
@ -122,15 +122,17 @@ public class SearchListFilter extends Filter<SearchListFilter> {
|
||||
String status = getQueryParam("testCaseStatus");
|
||||
String testSuiteId = getQueryParam("testSuiteId");
|
||||
String type = getQueryParam("testCaseType");
|
||||
String testPlatform = getQueryParam("testPlatform");
|
||||
String testPlatform = getQueryParam("testPlatforms");
|
||||
String startTimestamp = getQueryParam("startTimestamp");
|
||||
String endTimestamp = getQueryParam("endTimestamp");
|
||||
|
||||
if (entityFQN != null) {
|
||||
conditions.add(
|
||||
includeAllTests
|
||||
? String.format("{\"regexp\": {\"entityFQN\": \"%s.*\"}}", entityFQN)
|
||||
: String.format("{\"term\": {\"entityFQN\": \"%s\"}}", entityFQN));
|
||||
? String.format(
|
||||
"{\"prefix\": {\"entityFQN\": \"%s\"}}", escapeDoubleQuotes(entityFQN))
|
||||
: String.format(
|
||||
"{\"term\": {\"entityFQN\": \"%s\"}}", escapeDoubleQuotes(entityFQN)));
|
||||
}
|
||||
|
||||
if (testSuiteId != null) {
|
||||
@ -153,7 +155,9 @@ public class SearchListFilter extends Filter<SearchListFilter> {
|
||||
}
|
||||
|
||||
if (testPlatform != null) {
|
||||
conditions.add(String.format("{\"term\": {\"testPlatforms\": \"%s\"}}", testPlatform));
|
||||
String platforms =
|
||||
Arrays.stream(testPlatform.split(",")).collect(Collectors.joining("\", \"", "\"", "\""));
|
||||
conditions.add(String.format("{\"terms\": {\"testPlatforms\": [%s]}}", platforms));
|
||||
}
|
||||
|
||||
if (startTimestamp != null && endTimestamp != null) {
|
||||
@ -165,4 +169,8 @@ public class SearchListFilter extends Filter<SearchListFilter> {
|
||||
|
||||
return addCondition(conditions);
|
||||
}
|
||||
|
||||
private String escapeDoubleQuotes(String str) {
|
||||
return str.replace("\"", "\\\"");
|
||||
}
|
||||
}
|
||||
|
@ -56,6 +56,7 @@ import org.openmetadata.schema.entity.feed.Thread;
|
||||
import org.openmetadata.schema.tests.ResultSummary;
|
||||
import org.openmetadata.schema.tests.TestCase;
|
||||
import org.openmetadata.schema.tests.TestCaseParameterValue;
|
||||
import org.openmetadata.schema.tests.TestPlatform;
|
||||
import org.openmetadata.schema.tests.TestSuite;
|
||||
import org.openmetadata.schema.tests.type.Assigned;
|
||||
import org.openmetadata.schema.tests.type.Resolved;
|
||||
@ -751,7 +752,7 @@ public class TestCaseResourceTest extends EntityResourceTest<TestCase, CreateTes
|
||||
}
|
||||
|
||||
for (int i = 0; i < testCasesNum; i++) {
|
||||
String tableFQN = tables.get(rand.nextInt(tables.size())).getFullyQualifiedName();
|
||||
String tableFQN = tables.get(i).getFullyQualifiedName();
|
||||
String testSuiteFQN = testSuites.get(tableFQN).getFullyQualifiedName();
|
||||
CreateTestCase create =
|
||||
createRequest(testInfo, i)
|
||||
@ -770,13 +771,45 @@ public class TestCaseResourceTest extends EntityResourceTest<TestCase, CreateTes
|
||||
.withTimestamp(TestUtils.dateToTimestamp(String.format("2021-09-%02d", i)));
|
||||
putTestCaseResult(testCase.getFullyQualifiedName(), testCaseResult, ADMIN_AUTH_HEADERS);
|
||||
}
|
||||
TestCase testCaseForEL = testCases.get(0);
|
||||
|
||||
HashMap queryParams = new HashMap<>();
|
||||
ResultList<TestCase> allEntities =
|
||||
listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS);
|
||||
assertEquals(testCasesNum, allEntities.getData().size());
|
||||
queryParams.put("q", "test_getSimplelistFromSearcha");
|
||||
allEntities = listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS);
|
||||
assertNotEquals(0, allEntities.getData().size());
|
||||
assertEquals(1, allEntities.getData().size());
|
||||
org.assertj.core.api.Assertions.assertThat(allEntities.getData().get(0).getName())
|
||||
.contains("test_getSimplelistFromSearcha");
|
||||
|
||||
queryParams.clear();
|
||||
queryParams.put("entityLink", testCaseForEL.getEntityLink());
|
||||
queryParams.put("includeAllTests", true);
|
||||
allEntities = listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS);
|
||||
assertEquals(1, allEntities.getData().size());
|
||||
org.assertj.core.api.Assertions.assertThat(allEntities.getData().get(0).getEntityLink())
|
||||
.contains(testCaseForEL.getEntityLink());
|
||||
|
||||
queryParams.clear();
|
||||
queryParams.put("testPlatforms", TestPlatform.DEEQU);
|
||||
allEntities = listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS);
|
||||
assertEquals(
|
||||
0, allEntities.getData().size()); // we don't have any test cases with DEEQU platform
|
||||
|
||||
queryParams.clear();
|
||||
queryParams.put("testPlatforms", TestPlatform.OPEN_METADATA);
|
||||
allEntities = listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS);
|
||||
assertEquals(
|
||||
testCasesNum,
|
||||
allEntities.getData().size()); // we have all test cases with OPEN_METADATA platform
|
||||
|
||||
queryParams.clear();
|
||||
queryParams.put(
|
||||
"testPlatforms", String.format("%s,%s", TestPlatform.OPEN_METADATA, TestPlatform.DEEQU));
|
||||
allEntities = listEntitiesFromSearch(queryParams, testCasesNum, 0, ADMIN_AUTH_HEADERS);
|
||||
assertEquals(
|
||||
testCasesNum, allEntities.getData().size()); // Should return either values matching
|
||||
}
|
||||
|
||||
public void putTestCaseResult(String fqn, TestCaseResult data, Map<String, String> authHeaders)
|
||||
|
Loading…
x
Reference in New Issue
Block a user