Spaces:
Runtime error
Runtime error
| import os | |
| import sys | |
| import unittest | |
| from pathlib import Path | |
| # Add the src directory to the path so we can import the modules | |
| sys.path.insert(0, str(Path(__file__).parent.parent / "src")) | |
| from image_processing_tool import ImageProcessor | |
| from file_processing_tool import FileIdentifier, process_image_file | |
| class TestImageProcessingTool(unittest.TestCase): | |
| def setUp(self): | |
| self.image_processor = ImageProcessor() | |
| self.file_identifier = FileIdentifier() | |
| self.test_image_path = str(Path(__file__).parent.parent / "data/downloaded_files" / "cca530fc-4052-43b2-b130-b30968d8aa44.png") | |
| # Make sure the test image exists | |
| self.assertTrue(os.path.exists(self.test_image_path), f"Test image not found: {self.test_image_path}") | |
| def test_file_identification(self): | |
| """Test that the FileIdentifier correctly identifies the PNG image.""" | |
| file_info = self.file_identifier.identify_file(self.test_image_path) | |
| self.assertEqual(file_info.get('determined_type'), "image", "File should be identified as an image") | |
| self.assertEqual(file_info.get('suggested_action'), "image_processor", "Action should be image_processor") | |
| def test_image_details(self): | |
| """Test getting basic image details.""" | |
| details = self.image_processor.get_image_details(self.test_image_path) | |
| self.assertIsNotNone(details, "Should return image details") | |
| self.assertIn("width", details, "Should include width in details") | |
| self.assertIn("height", details, "Should include height in details") | |
| self.assertIn("format", details, "Should include format in details") | |
| def test_image_processing(self): | |
| """Test basic image processing functionality.""" | |
| result = self.image_processor.process_image(self.test_image_path) | |
| self.assertIsNotNone(result, "Should return processing result") | |
| self.assertIsInstance(result, str, "Result should be a string") | |
| def test_text_extraction(self): | |
| """Test OCR text extraction functionality.""" | |
| text = self.image_processor.extract_text_from_image(self.test_image_path) | |
| self.assertIsNotNone(text, "Should return extracted text") | |
| self.assertIsInstance(text, str, "Extracted text should be a string") | |
| def test_chess_analysis(self): | |
| """Test chess position analysis.""" | |
| analysis = self.image_processor.analyze_chess_position(self.test_image_path) | |
| self.assertIsNotNone(analysis, "Should return chess analysis") | |
| if isinstance(analysis, dict): | |
| self.assertIn("recommended_move", analysis, "Should include recommended move") | |
| self.assertEqual(analysis["recommended_move"], "Rd5", "Recommended move should be 'Rd5'") | |
| def test_process_image_file_function(self): | |
| """Test the integrated process_image_file function.""" | |
| result = process_image_file(self.test_image_path) | |
| self.assertIsNotNone(result, "Should return processing result") | |
| self.assertIn("details", result, "Should include image details") | |
| self.assertIn("extracted_text", result, "Should include extracted text") | |
| if __name__ == '__main__': | |
| unittest.main() | |