#!/usr/bin/env python3 """ Test script for Pydantic compatibility module. This script tests the version-aware functionality for both Pydantic v1 and v2. """ import sys import os # Add the modules directory to the path sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'modules')) def test_compatibility_module(): """Test the Pydantic compatibility module""" try: from shared.pydanticCompat import ( PYDANTIC_VERSION, create_private_field, create_model_config, model_to_dict, model_from_dict, get_version_info ) print(f"โœ… Successfully imported Pydantic compatibility module") print(f"๐Ÿ“Š Pydantic version detected: {PYDANTIC_VERSION}") # Test version info version_info = get_version_info() print(f"๐Ÿ” Version info: {version_info}") # Test field creation private_field = create_private_field(default="test") print(f"โœ… Private field created: {type(private_field)}") # Test model config config = create_model_config(validate_assignment=True) print(f"โœ… Model config created: {type(config)}") return True except Exception as e: print(f"โŒ Error testing compatibility module: {e}") return False def test_chat_document_model(): """Test the ChatDocument model with compatibility""" try: from interfaces.interfaceChatModel import ChatDocument print(f"โœ… Successfully imported ChatDocument model") # Test creating a document doc = ChatDocument(fileId="test-file-123") print(f"โœ… ChatDocument created: {doc.id}") # Test setting component interface doc.setComponentInterface("mock_interface") print(f"โœ… Component interface set") # Test serialization doc_dict = doc.to_dict() print(f"โœ… Document serialized: {doc_dict}") # Test validation is_valid = doc.validate_component_interface() print(f"โœ… Component interface validation: {is_valid}") return True except Exception as e: print(f"โŒ Error testing ChatDocument model: {e}") import traceback traceback.print_exc() return False def main(): """Main test function""" print("๐Ÿงช Testing Pydantic Compatibility Module") print("=" * 50) # Test compatibility module compat_ok = test_compatibility_module() print() # Test ChatDocument model model_ok = test_chat_document_model() print() # Summary print("=" * 50) if compat_ok and model_ok: print("๐ŸŽ‰ All tests passed! Pydantic compatibility is working correctly.") return 0 else: print("๐Ÿ’ฅ Some tests failed. Check the errors above.") return 1 if __name__ == "__main__": sys.exit(main())