mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-12-19 03:27:19 +00:00
fix: url encode fqn when retrieving test case results in python sdk (#23834)
This commit is contained in:
parent
7b1d687f2d
commit
93e5ee8cb1
@ -70,6 +70,7 @@ VERSIONS = {
|
|||||||
"sqlalchemy-bigquery": "sqlalchemy-bigquery>=1.2.2",
|
"sqlalchemy-bigquery": "sqlalchemy-bigquery>=1.2.2",
|
||||||
"presidio-analyzer": "presidio-analyzer==2.2.358",
|
"presidio-analyzer": "presidio-analyzer==2.2.358",
|
||||||
"asammdf": "asammdf~=7.4.5",
|
"asammdf": "asammdf~=7.4.5",
|
||||||
|
"kafka-connect": "kafka-connect-py==0.10.11",
|
||||||
}
|
}
|
||||||
|
|
||||||
COMMONS = {
|
COMMONS = {
|
||||||
@ -293,7 +294,7 @@ plugins: Dict[str, Set[str]] = {
|
|||||||
"thrift-sasl~=0.4",
|
"thrift-sasl~=0.4",
|
||||||
},
|
},
|
||||||
"kafka": {*COMMONS["kafka"]},
|
"kafka": {*COMMONS["kafka"]},
|
||||||
"kafkaconnect": {"kafka-connect-py==0.10.11"},
|
"kafkaconnect": {VERSIONS["kafka-connect"]},
|
||||||
"kinesis": {VERSIONS["boto3"]},
|
"kinesis": {VERSIONS["boto3"]},
|
||||||
"looker": {
|
"looker": {
|
||||||
VERSIONS["looker-sdk"],
|
VERSIONS["looker-sdk"],
|
||||||
@ -464,6 +465,7 @@ test = {
|
|||||||
"faker==37.1.0", # The version needs to be fixed to prevent flaky tests!
|
"faker==37.1.0", # The version needs to be fixed to prevent flaky tests!
|
||||||
*plugins["exasol"],
|
*plugins["exasol"],
|
||||||
VERSIONS["opensearch"],
|
VERSIONS["opensearch"],
|
||||||
|
VERSIONS["kafka-connect"],
|
||||||
}
|
}
|
||||||
|
|
||||||
if sys.version_info >= (3, 9):
|
if sys.version_info >= (3, 9):
|
||||||
|
|||||||
@ -253,7 +253,7 @@ class OMetaTestsMixin:
|
|||||||
}
|
}
|
||||||
|
|
||||||
resp = self.client.get(
|
resp = self.client.get(
|
||||||
f"{self.get_suffix(TestCaseResult)}/{test_case_fqn}",
|
f"{self.get_suffix(TestCaseResult)}/{quote(test_case_fqn)}",
|
||||||
params,
|
params,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -128,6 +128,29 @@ class OMetaTestSuiteTest(TestCase):
|
|||||||
test_case_fqn="sample_data.ecommerce_db.shopify.dim_address.testCaseForIntegration",
|
test_case_fqn="sample_data.ecommerce_db.shopify.dim_address.testCaseForIntegration",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Create test case with special characters in FQN to test URL encoding
|
||||||
|
cls.metadata.create_or_update(
|
||||||
|
CreateTestCaseRequest(
|
||||||
|
name=TestCaseEntityName("testCase:With/Special&Characters"),
|
||||||
|
entityLink=EntityLink(
|
||||||
|
"<#E::table::sample_data.ecommerce_db.shopify.dim_address>"
|
||||||
|
),
|
||||||
|
testDefinition=cls.test_definition.fullyQualifiedName,
|
||||||
|
parameterValues=[TestCaseParameterValue(name="foo", value="20")],
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
cls.metadata.add_test_case_results(
|
||||||
|
test_results=TestCaseResult(
|
||||||
|
timestamp=datetime_to_ts(datetime.now(timezone.utc)),
|
||||||
|
testCaseStatus=TestCaseStatus.Success,
|
||||||
|
result="Test Case with special chars Success",
|
||||||
|
sampleData=None,
|
||||||
|
testResultValue=[TestResultValue(name="foo", value="20")],
|
||||||
|
),
|
||||||
|
test_case_fqn="sample_data.ecommerce_db.shopify.dim_address.testCase:With/Special&Characters",
|
||||||
|
)
|
||||||
|
|
||||||
def test_get_or_create_test_suite(self):
|
def test_get_or_create_test_suite(self):
|
||||||
"""test we get a test suite object"""
|
"""test we get a test suite object"""
|
||||||
test_suite = self.metadata.get_or_create_test_suite(
|
test_suite = self.metadata.get_or_create_test_suite(
|
||||||
@ -187,6 +210,22 @@ class OMetaTestSuiteTest(TestCase):
|
|||||||
|
|
||||||
assert res
|
assert res
|
||||||
|
|
||||||
|
def test_get_test_case_results_with_special_characters(self):
|
||||||
|
"""test get test case results with special characters in FQN (: / &)"""
|
||||||
|
# This test validates that URL encoding works correctly for FQNs with special chars
|
||||||
|
res = self.metadata.get_test_case_results(
|
||||||
|
"sample_data.ecommerce_db.shopify.dim_address.testCase:With/Special&Characters",
|
||||||
|
get_beginning_of_day_timestamp_mill(),
|
||||||
|
get_end_of_day_timestamp_mill(),
|
||||||
|
)
|
||||||
|
|
||||||
|
assert (
|
||||||
|
res is not None
|
||||||
|
), "Should fetch results for test case with special characters"
|
||||||
|
assert len(res) > 0, "Should have at least one result"
|
||||||
|
assert res[0].result == "Test Case with special chars Success"
|
||||||
|
assert res[0].testCaseStatus == TestCaseStatus.Success
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def tearDownClass(cls) -> None:
|
def tearDownClass(cls) -> None:
|
||||||
cls.metadata.delete_executable_test_suite(
|
cls.metadata.delete_executable_test_suite(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user