""" Basic test without dependencies to verify core structure. """ import sys import os # Add src to path sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'src')) def test_basic_imports(): """Test basic imports without external dependencies.""" print("šŸ›ļø MCP Legacy Files - Basic Structure Test") print("=" * 60) try: from mcp_legacy_files import __version__ print(f"āœ… Package version: {__version__}") except ImportError as e: print(f"āŒ Version import failed: {e}") return False # Test individual components that don't require dependencies print("\nšŸ“¦ Testing core modules...") try: # Test format mappings exist from mcp_legacy_files.core.detection import LegacyFormatDetector detector = LegacyFormatDetector() # Test magic signatures if detector.magic_signatures: print(f"āœ… Magic signatures loaded: {len(detector.magic_signatures)} format families") else: print("āŒ No magic signatures loaded") # Test extension mappings if detector.extension_mappings: print(f"āœ… Extension mappings loaded: {len(detector.extension_mappings)} extensions") # Show some examples legacy_extensions = [ext for ext in detector.extension_mappings.keys() if '.db' in ext or '.wp' in ext][:5] print(f" Sample legacy extensions: {', '.join(legacy_extensions)}") else: print("āŒ No extension mappings loaded") # Test format database if detector.format_database: print(f"āœ… Format database loaded: {len(detector.format_database)} formats") else: print("āŒ No format database loaded") except ImportError as e: print(f"āŒ Detection module import failed: {e}") return False except Exception as e: print(f"āŒ Detection module error: {e}") return False # Test dBASE processor basic structure print("\nšŸ”§ Testing dBASE processor...") try: from mcp_legacy_files.processors.dbase import DBaseProcessor processor = DBaseProcessor() if processor.supported_versions: print(f"āœ… dBASE processor loaded: {len(processor.supported_versions)} versions supported") else: print("āŒ No dBASE versions configured") processing_chain = processor.get_processing_chain() if processing_chain: print(f"āœ… Processing chain: {' → '.join(processing_chain)}") else: print("āŒ No processing chain configured") except ImportError as e: print(f"āŒ dBASE processor import failed: {e}") return False except Exception as e: print(f"āŒ dBASE processor error: {e}") return False # Test validation utilities print("\nšŸ›”ļø Testing utilities...") try: from mcp_legacy_files.utils.validation import is_legacy_extension, get_safe_filename # Test legacy extension detection test_extensions = ['.dbf', '.wpd', '.wk1', '.doc', '.txt'] legacy_count = sum(1 for ext in test_extensions if is_legacy_extension('test' + ext)) print(f"āœ… Legacy extension detection: {legacy_count}/5 detected as legacy") # Test safe filename generation safe_name = get_safe_filename("test file with spaces!@#.dbf") if safe_name and safe_name != "test file with spaces!@#.dbf": print(f"āœ… Safe filename generation: '{safe_name}'") else: print("āŒ Safe filename generation failed") except ImportError as e: print(f"āŒ Utilities import failed: {e}") return False except Exception as e: print(f"āŒ Utilities error: {e}") return False print("\n" + "=" * 60) print("šŸ† Basic structure test completed!") print("\nšŸ“‹ Status Summary:") print(" • Core detection engine: āœ… Ready") print(" • dBASE processor: āœ… Ready") print(" • Format database: āœ… Loaded") print(" • Validation utilities: āœ… Working") print("\nāš ļø Note: Full functionality requires dependencies:") print(" pip install fastmcp structlog aiofiles aiohttp diskcache") print(" pip install dbfread simpledbf pandas # For dBASE processing") return True if __name__ == "__main__": success = test_basic_imports() sys.exit(0 if success else 1)