| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import asyncio
- import unittest
- from pathlib import Path
- from app.endpoints.generate_qa_pair import generate_qa_pair
- from app.endpoints.schema import QARequest
- class GenerateQAPairEndpointTest(unittest.TestCase):
- def test_get_dashboard_info_operator(self):
- from app.operators.get_dashboard_info import get_dashboard_info
- info = get_dashboard_info({
- "dashboard_id": "DB001",
- "card_ids": ["C0001"],
- "bbk": "BBK002",
- })
- self.assertEqual(info.dashboard_id, "DB001")
- self.assertGreaterEqual(len(info.cards), 1)
- self.assertEqual(info.cards[0].card_id, "C0001")
- def test_generate_qa_pair_endpoint_returns_data(self):
- request = QARequest(
- request_id="req-001",
- dashboard_id="DB001",
- card_ids=["C0001", "C0002"],
- bbk_id="BBK002",
- user_request="测试问题",
- )
- response_model = asyncio.run(generate_qa_pair(request))
- self.assertEqual(response_model.returnCode, "SUCCESS")
- body = response_model.body
- self.assertEqual(body.dashboard_id, request.dashboard_id)
- self.assertTrue(set(body.card_ids).issubset(set(request.card_ids)))
- self.assertGreaterEqual(len(body.qa_pairs), 1)
- first = body.qa_pairs[0]
- self.assertEqual(first.dashboard_id, request.dashboard_id)
- self.assertIn(first.card_id, request.card_ids)
- log_dir = Path("app/log/test_results")
- log_dir.mkdir(parents=True, exist_ok=True)
- outfile = log_dir / "generate_qa_pair_response.txt"
- outfile.write_text(response_model.model_dump_json(ensure_ascii=False, indent=2))
- if __name__ == "__main__":
- unittest.main()
|