OpenMetadata/ingestion/tests/unit/sdk/test_test_definition_entity.py.bak

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

137 lines
5.2 KiB
Python
Raw Normal View History

"""
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()