""" Test file for prediction validation functionality using LabelInterface. This module tests the enhanced validation system for predictions during data import. It covers various validation scenarios including: - Valid prediction creation - Invalid prediction structure - Score validation - Model version validation - Result structure validation against project configuration using LabelInterface - Preannotated fields validation - Detailed error reporting from LabelInterface """ from unittest.mock import patch import pytest from data_import.functions import reformat_predictions from data_import.serializers import ImportApiSerializer from django.contrib.auth import get_user_model from organizations.tests.factories import OrganizationFactory from projects.tests.factories import ProjectFactory from rest_framework.exceptions import ValidationError from tasks.models import Annotation, Prediction, Task from tasks.tests.factories import TaskFactory from users.tests.factories import UserFactory User = get_user_model() @pytest.mark.django_db class TestPredictionValidation: """Test cases for prediction validation functionality using LabelInterface.""" @pytest.fixture(autouse=True) def setup(self, django_db_setup, django_db_blocker): """Set up test data using factories.""" with django_db_blocker.unblock(): self.user = UserFactory() self.organization = OrganizationFactory(created_by=self.user) self.user.active_organization = self.organization self.user.save() # Create a project with a comprehensive label configuration self.project = ProjectFactory( title='Test Project', label_config="""