OpenMetadata/ingestion/tests/unit/sdk/test_test_definition_entity.py.bak
Sriharsha Chintalapani bb1395fc72
Implement Modern Fluent API Pattern for OpenMetadata Java Client (#23239)
* Implement Modern Fluent API Pattern for OpenMetadata Java Client

* Add Lineage, Bulk, Search static methods

* Add all API support for Java & Python SDKs

* Add Python SDKs and mock tests

* Add Fluent APIs for sdks

* Add Fluent APIs for sdks

* Add Fluent APIs for sdks, support async import/export

* Remove unnecessary scripts

* fix py checkstyle

* fix tests with new plural form sdks

* Fix tests

* remove examples from python sdk

* remove examples from python sdk

* Fix type check

* Fix pyformat check

* Fix pyformat check

* fix python integration tests

* fix pycheck and pytests

* fix search api pycheck

* fix pycheck

* fix pycheck

* fix pycheck

* Fix test_sdk_integration

* Improvements to SDK

* Remove SDK coverage for Python 3.9

* Remove SDK coverage for Python 3.9

* Remove SDK coverage for Python 3.9
2025-09-29 16:07:02 -07:00

137 lines
5.2 KiB
Python

"""
Comprehensive unit tests for Test Definition entity.
"""
import unittest
from unittest.mock import MagicMock
from uuid import UUID
from metadata.generated.schema.api.tests.createTestDefinition import CreateTestDefinitionRequest
from metadata.generated.schema.entity.tests.testDefinition import TestDefinition as TestDefinitionEntity
from metadata.sdk.entities.testdefinition import TestDefinition
class TestTestDefinitionEntity(unittest.TestCase):
"""Comprehensive tests for TestDefinition entity operations"""
def setUp(self):
"""Set up test fixtures"""
self.mock_ometa = MagicMock()
TestDefinition._default_client = self.mock_ometa
self.entity_id = "550e8400-e29b-41d4-a716-446655440000"
self.entity_fqn = "service.test_definition.test_test_definition"
def test_create_test_definition(self):
"""Test creating a test definition"""
create_request = MagicMock(spec=CreateTestDefinitionRequest)
create_request.name = "test_test_definition"
create_request.displayName = "Test Test Definition"
create_request.description = "Test test definition for unit tests"
expected_entity = MagicMock(spec=TestDefinitionEntity)
expected_entity.id = UUID(self.entity_id)
expected_entity.name = "test_test_definition"
self.mock_ometa.create_or_update.return_value = expected_entity
result = TestDefinition.create(create_request)
self.assertEqual(str(result.id), self.entity_id)
self.assertEqual(result.name, "test_test_definition")
self.mock_ometa.create_or_update.assert_called_once_with(create_request)
def test_retrieve_test_definition_by_id(self):
"""Test retrieving a test definition by ID"""
expected_entity = MagicMock(spec=TestDefinitionEntity)
expected_entity.id = UUID(self.entity_id)
expected_entity.name = "test_test_definition"
self.mock_ometa.get_by_id.return_value = expected_entity
result = TestDefinition.retrieve(self.entity_id)
self.assertEqual(str(result.id), self.entity_id)
self.mock_ometa.get_by_id.assert_called_once_with(
entity=TestDefinitionEntity, entity_id=self.entity_id, fields=None
)
def test_retrieve_test_definition_by_name(self):
"""Test retrieving a test definition by name"""
expected_entity = MagicMock(spec=TestDefinitionEntity)
expected_entity.fullyQualifiedName = self.entity_fqn
self.mock_ometa.get_by_name.return_value = expected_entity
result = TestDefinition.retrieve_by_name(self.entity_fqn)
self.assertEqual(result.fullyQualifiedName, self.entity_fqn)
self.mock_ometa.get_by_name.assert_called_once_with(
entity=TestDefinitionEntity, fqn=self.entity_fqn, fields=None
)
def test_update_test_definition(self):
"""Test updating a test definition"""
entity_to_update = MagicMock(spec=TestDefinitionEntity)
entity_to_update.id = UUID(self.entity_id)
entity_to_update.description = "Updated description"
self.mock_ometa.create_or_update.return_value = entity_to_update
result = TestDefinition.update(self.entity_id, entity_to_update)
self.assertEqual(result.description, "Updated description")
self.mock_ometa.create_or_update.assert_called_once_with(entity_to_update)
def test_patch_test_definition(self):
"""Test patching a test definition"""
json_patch = [
{"op": "add", "path": "/description", "value": "Patched description"},
{"op": "add", "path": "/tags/0", "value": {"tagFQN": "Important.High"}},
]
patched_entity = MagicMock(spec=TestDefinitionEntity)
patched_entity.id = UUID(self.entity_id)
patched_entity.description = "Patched description"
self.mock_ometa.patch.return_value = patched_entity
result = TestDefinition.patch(self.entity_id, json_patch)
self.assertEqual(result.description, "Patched description")
self.mock_ometa.patch.assert_called_once_with(
entity=TestDefinitionEntity, entity_id=self.entity_id, json_patch=json_patch
)
def test_delete_test_definition(self):
"""Test deleting a test definition"""
TestDefinition.delete(self.entity_id, recursive=True, hard_delete=False)
self.mock_ometa.delete.assert_called_once_with(
entity=TestDefinitionEntity,
entity_id=self.entity_id,
recursive=True,
hard_delete=False,
)
def test_list_test_definitions(self):
"""Test listing test definitions"""
mock_entity1 = MagicMock(spec=TestDefinitionEntity)
mock_entity1.name = "entity1"
mock_entity2 = MagicMock(spec=TestDefinitionEntity)
mock_entity2.name = "entity2"
mock_response = MagicMock()
mock_response.entities = [mock_entity1, mock_entity2]
self.mock_ometa.list_entities.return_value = mock_response
result = TestDefinition.list(limit=10)
self.assertEqual(len(result), 2)
self.assertEqual(result[0].name, "entity1")
self.mock_ometa.list_entities.assert_called_once()
if __name__ == "__main__":
unittest.main()