From f766ba872d32deaffefb1ffedca5694c0f0f3f4e Mon Sep 17 00:00:00 2001 From: Teddy Date: Mon, 1 Jul 2024 16:52:09 +0200 Subject: [PATCH] fix: dynamic assertion to create json (#16865) --- .../service/jdbi3/TestCaseRepository.java | 6 +++++- .../service/resources/dqtests/TestCaseResource.java | 1 + .../resources/dqtests/TestCaseResourceTest.java | 12 ++++++++++++ .../json/schema/api/tests/createTestCase.json | 5 +++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java index fcb291dd603..097e1358ffb 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java @@ -79,7 +79,7 @@ public class TestCaseRepository extends EntityRepository { private static final String UPDATE_FIELDS = "owner,entityLink,testSuite,testSuites,testDefinition"; private static final String PATCH_FIELDS = - "owner,entityLink,testSuite,testDefinition,computePassedFailedRowCount"; + "owner,entityLink,testSuite,testDefinition,computePassedFailedRowCount,useDynamicAssertion"; public static final String TESTCASE_RESULT_EXTENSION = "testCase.testCaseResult"; public static final String FAILED_ROWS_SAMPLE_EXTENSION = "testCase.failedRowsSample"; @@ -972,6 +972,10 @@ public class TestCaseRepository extends EntityRepository { "computePassedFailedRowCount", original.getComputePassedFailedRowCount(), updated.getComputePassedFailedRowCount()); + recordChange( + "useDynamicAssertion", + original.getUseDynamicAssertion(), + updated.getUseDynamicAssertion()); recordChange("testCaseResult", original.getTestCaseResult(), updated.getTestCaseResult()); } } diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java index 993f748593f..186d13d2ed5 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java @@ -1175,6 +1175,7 @@ public class TestCaseResource extends EntityResource createEntity(request3, ADMIN_AUTH_HEADERS), BAD_REQUEST, "name must match"); } + @Test + void createUpdate_DynamicAssertionTests(TestInfo testInfo) throws IOException { + CreateTestCase create = createRequest(testInfo).withUseDynamicAssertion(true); + TestCase testCase = createAndCheckEntity(create, ADMIN_AUTH_HEADERS); + testCase = getTestCase(testCase.getFullyQualifiedName(), ADMIN_AUTH_HEADERS); + assertTrue(testCase.getUseDynamicAssertion()); + CreateTestCase update = create.withUseDynamicAssertion(false); + updateEntity(update, OK, ADMIN_AUTH_HEADERS); + testCase = getTestCase(testCase.getFullyQualifiedName(), ADMIN_AUTH_HEADERS); + assertFalse(testCase.getUseDynamicAssertion()); + } + private void putInspectionQuery(TestCase testCase, String sql, Map authHeaders) throws IOException { TestCase putResponse = putInspectionQuery(testCase.getId(), sql, authHeaders); diff --git a/openmetadata-spec/src/main/resources/json/schema/api/tests/createTestCase.json b/openmetadata-spec/src/main/resources/json/schema/api/tests/createTestCase.json index 45d53f6748a..8a1ef0bd9e4 100644 --- a/openmetadata-spec/src/main/resources/json/schema/api/tests/createTestCase.json +++ b/openmetadata-spec/src/main/resources/json/schema/api/tests/createTestCase.json @@ -44,6 +44,11 @@ "description": "Compute the passed and failed row count for the test case.", "type": "boolean", "default": false + }, + "useDynamicAssertion": { + "description": "If the test definition supports it, use dynamic assertion to evaluate the test case.", + "type": "boolean", + "default": false } }, "required": ["name", "testDefinition", "entityLink", "testSuite"],