verifile-x-api / backend /tests /test_validators.py
abinazebinoy's picture
Fix AI detector stability, serialization, and test accuracy (#13)
df73d76 unverified
"""
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"