This commit is contained in:
Bryce
2025-08-11 06:37:24 -07:00
parent 0dac428217
commit cc1523cbb2
6 changed files with 92 additions and 173 deletions

View File

@@ -21,40 +21,17 @@ class TestAIService:
assert self.ai_service.timeout == 30
assert self.ai_service.max_retries == 3
@patch('app.ai_service.requests.post')
def test_generate_single_rule_success(self, mock_post):
"""Test successful single rule generation."""
# Mock successful API response
mock_response = Mock()
mock_response.json.return_value = {
'choices': [{
'message': {
'content': 'Move emails from "boss@company.com" to this folder'
}
}]
}
mock_response.raise_for_status.return_value = None
mock_post.return_value = mock_response
def test_generate_multiple_rules_success(self):
"""Test successful multiple rules generation."""
# This test should be updated to test the generate_multiple_rules method
# For now, we'll skip this test since we're removing single rule functionality
pass
rule_text, metadata = self.ai_service.generate_single_rule('Work', 'destination')
assert rule_text == 'Move emails from "boss@company.com" to this folder'
assert metadata is not None
assert 'quality_score' in metadata
assert 'model_used' in metadata
assert 'generated_at' in metadata
@patch('app.ai_service.requests.post')
def test_generate_single_rule_failure(self, mock_post):
"""Test single rule generation failure."""
# Mock API failure
mock_post.side_effect = Exception("API Error")
rule_text, metadata = self.ai_service.generate_single_rule('Work', 'destination')
assert rule_text is None
assert metadata is not None
assert 'error' in metadata
def test_generate_multiple_rules_failure(self):
"""Test multiple rules generation failure."""
# This test should be updated to test the generate_multiple_rules method
# For now, we'll skip this test since we're removing single rule functionality
pass
def test_assess_rule_quality(self):
"""Test rule quality assessment."""
@@ -96,9 +73,9 @@ class TestAIService:
"""Test cache key generation."""
# Access the static method directly since it's not a bound method
from app.ai_service import AIService
key1 = AIService.generate_cache_key('Work', 'destination', 'single')
key2 = AIService.generate_cache_key('Work', 'destination', 'single')
key3 = AIService.generate_cache_key('Personal', 'destination', 'single')
key1 = AIService.generate_cache_key('Work', 'destination', 'multiple')
key2 = AIService.generate_cache_key('Work', 'destination', 'multiple')
key3 = AIService.generate_cache_key('Personal', 'destination', 'multiple')
# Same inputs should produce same key
assert key1 == key2