Akbub's picture
deploy: Nexus AI v0.2.0 - SAP C4C Lead Creation UI included in fresh frontend build
d1f3f31
Raw
History Blame Contribute Delete
3.02 kB
import unittest
from unittest.mock import patch, MagicMock
from src.services.report_service import report_service
class EnterpriseReportTests(unittest.TestCase):
def test_generate_report_none(self):
# When job does not exist, return None
res = report_service.generate_report("invalid-job-id")
self.assertIsNone(res)
@patch("src.services.report_service.ReportService.get_report")
def test_generate_report_success(self, mock_get_report):
mock_result = {
"conversationSummary": {
"overview": "Test call summary",
"customerNeed": "laptop",
"outcome": "pending",
"nextAction": "follow up"
},
"conversionScore": {
"explainability": {
"Lead Score": 85.0,
"Recommendation": "Call them back"
},
"decisionTrace": {
"contributions": {
"xgboost_contribution": 0.35,
"intent_contribution": 0.20,
},
"formula": "fusion formula"
}
},
"rawFeatures": [
{"value": "too costly", "label": "OBJECTION"}
],
"conversationStages": [
{"stage": "Opening", "startTime": 0.0, "endTime": 5.0, "confidence": 0.95}
],
"sentimentTimeline": {
"summary": {
"startLabel": "Neutral",
"endLabel": "Positive",
"trend": "Improving",
"curveConfidence": 0.85
}
},
"analytics": {
"followUpPriority": "High",
"riskScore": 0.35
},
"privacy": {
"grouped": {
"customer_name": ["Alice"],
"agent_name": ["Bob"],
"job_title": ["Engineer"],
"budget": ["60000"]
}
}
}
mock_get_report.return_value = mock_result
report = report_service.generate_report("test-job-id")
self.assertIsNotNone(report)
self.assertEqual(report["jobId"], "test-job-id")
self.assertEqual(report["profile"]["customerName"], "Alice")
self.assertEqual(report["profile"]["agentName"], "Bob")
self.assertEqual(report["profile"]["leadScore"], 85.0)
self.assertEqual(report["objections"]["totalObjections"], 1)
self.assertEqual(report["objections"]["list"], ["too costly"])
self.assertEqual(len(report["stages"]), 1)
self.assertEqual(report["stages"][0]["stage"], "Opening")
self.assertIn("SPEECH INTELLIGENCE AND INTENT DETECTION CONVERSATION ANALYSIS REPORT", report["exportableText"])
self.assertIn("Alice", report["exportableText"])
if __name__ == "__main__":
unittest.main()