"""Tests for custom_field module.""" from unittest.mock import MagicMock import pytest from marshmallow import ValidationError from marshmallow.fields import Field from abacus_common_logic.marshalling.helpers import create_custom_field def test_custom_field(): """Test custom_field method.""" test_validator = MagicMock(return_value=False) customized_field = create_custom_field( base_class=Field, custom_validations=[test_validator] ) assert issubclass(customized_field, Field) field_instance = customized_field(required=False) with pytest.raises(ValidationError): field_instance._validate(5) test_validator.assert_called_once_with(5) def test_custom_field_invalid_type(): """Test custom_field raises ValueError for invalid base_class.""" with pytest.raises(ValueError) as err: create_custom_field(int) assert str(err.value) == 'base_class should be a subclass of marshmallow.Field'