""" Tests for file validation utilities. """ import pytest from backend.utils.validators import ( validate_file_type, validate_file_size, validate_file, FileValidationError ) def test_validate_file_type_valid_png(sample_image_bytes): mime_type, extension = validate_file_type(sample_image_bytes, "test.png") assert mime_type == "image/png" assert extension == "png" def test_validate_file_type_invalid(): fake_image = b"This is not an image" with pytest.raises(FileValidationError): validate_file_type(fake_image, "fake.jpg") def test_validate_file_size_within_limit(sample_image_bytes): size = validate_file_size(sample_image_bytes, "small.png") assert size == len(sample_image_bytes) def test_validate_file_size_exceeds_limit(): large_file = b"x" * (60 * 1024 * 1024) with pytest.raises(FileValidationError): validate_file_size(large_file, "huge.bin") def test_validate_file_complete(sample_image_bytes): result = validate_file(sample_image_bytes, "test.png") assert result["valid"] is True assert result["mime_type"] == "image/png" assert result["extension"] == "png" assert result["size_bytes"] > 0 assert result["size_mb"] < 1.0 assert result["filename"] == "test.png"