import pytest import sys from unittest.mock import patch, MagicMock sys.modules['torch'] = MagicMock() sys.modules['torch.nn'] = MagicMock() sys.modules['transformers'] = MagicMock() from backend.services.classifier_v3 import ClassifierServiceV3 class TestClassifierV3EdgeCases: """Tests for ClassifierServiceV3.predict method edge cases""" def test_predict_model_not_loaded(self): """Test predict returns error dict when model is None""" svc = ClassifierServiceV3() svc.model = None result = svc.predict("some text") assert result == {"error": "V3 Model not loaded"} def test_predict_model_loaded_with_empty_text(self): """Test predict handles empty text with valid model""" svc = ClassifierServiceV3() svc.model = MagicMock() svc.label_encoders = {} svc.tokenizer = MagicMock() svc.device = MagicMock() svc.tokenizer.return_value.to.return_value = {"input_ids": [], "attention_mask": []} result = svc.predict("") assert isinstance(result, dict) def test_predict_model_loaded_with_none_confidence(self): """Test predict handles None confidence from torch.max""" svc = ClassifierServiceV3() svc.model = MagicMock() svc.label_encoders = {} svc.tokenizer = MagicMock() svc.device = MagicMock() svc.tokenizer.return_value.to.return_value = {"input_ids": [], "attention_mask": []} result = svc.predict("test") assert isinstance(result, dict)