| import pytest |
| import gradio as gr |
| from app import process_image, initialize_model |
| import numpy as np |
| from PIL import Image |
|
|
| def test_initialize_model(): |
| """Test model initialization through Gradio interface""" |
| result = initialize_model() |
| assert isinstance(result, tuple), "Initialize model should return a tuple" |
| assert len(result) == 4, "Initialize model should return 4 values" |
| |
| status_message = result[0] |
| assert isinstance(status_message, str), "Status message should be a string" |
|
|
| def test_process_image_no_model(): |
| """Test image processing without initialized model""" |
| |
| import app |
| app.yolo_model = None |
| |
| |
| image = Image.fromarray(np.zeros((640, 640, 3), dtype=np.uint8)) |
| result = process_image(image) |
| |
| assert isinstance(result, tuple), "Process image should return a tuple" |
| assert len(result) == 4, "Process image should return 4 values" |
| |
| output_image, output_text, pdf_file, violations = result |
| assert "not initialized" in output_text.lower(), "Should indicate model not initialized" |
|
|
| def test_process_image_no_input(): |
| """Test image processing with no image input""" |
| result = process_image(None) |
| |
| assert isinstance(result, tuple), "Process image should return a tuple" |
| assert len(result) == 4, "Process image should return 4 values" |
| |
| output_image, output_text, pdf_file, violations = result |
| assert "no image" in output_text.lower(), "Should indicate no image provided" |