"""Test ows-abacus-state models.""" from pydantic import ValidationError import pytest from src.models.ows_abacus_state import ( AbacusStateGetResponseItemModel, AbacusStatePutResponseModel, ) def test_abacus_state_get_response_item_model_success() -> None: """Test AbacusStateGetResponseItemModel.""" data = { 'abacus_state_id': 123, 'action_name': 'tst_action', 'action_status': 'tst_status', 'message': None, } response_data = data | { 'created_at': 'onceuponatime', 'created_by': 'usr1', 'last_modified': 'never', 'last_modified_by': 'usr2', } assert dict(AbacusStateGetResponseItemModel.model_validate(response_data)) == data def test_abacus_state_get_response_item_model_failure() -> None: """Test AbacusStateGetResponseItemModel validation failure.""" with pytest.raises(ValidationError) as exc_info: AbacusStateGetResponseItemModel.model_validate({'abacus_state_id': 'abc'}) assert [e['loc'] for e in exc_info.value.errors()] == [ ('abacus_state_id',), ('action_name',), ('action_status',), ] def test_abacus_state_put_response_model_success() -> None: """Test AbacusStatePutResponseModel.""" data = { 'abacus_state_id': 123, 'parent_table_id': 100200, 'parent_table_name': 'tst_table', 'action_name': 'tst_action', 'action_status': 'tst_status', 'message': None, } assert dict(AbacusStatePutResponseModel.model_validate(data)) == data def test_abacus_state_put_response_model_failure() -> None: """Test AbacusStatePutResponseModel validation failure.""" with pytest.raises(ValidationError) as exc_info: AbacusStatePutResponseModel.model_validate({'parent_table_id': 'abc'}) assert [e['loc'] for e in exc_info.value.errors()] == [ ('abacus_state_id',), ('action_name',), ('action_status',), ('parent_table_id',), ('parent_table_name',), ]