feat: update medical training case and auth modules
This commit is contained in:
@@ -4,7 +4,7 @@ from unittest.mock import patch, MagicMock
|
||||
|
||||
from django.core.cache import cache
|
||||
|
||||
from apps.case.models import CaseBase, TraditionalCase, ScoringRule
|
||||
from apps.case.models import CaseBase, TraditionalCase, ScoringRule, CaseExamItem
|
||||
from apps.user.throttling import PdfParseUserThrottle, ScoringRuleGenerateUserThrottle
|
||||
from .conftest import (
|
||||
CacheTestCase,
|
||||
@@ -27,7 +27,9 @@ class CaseFormHappyPathTest(CacheTestCase):
|
||||
def test_flow_form_create_read_update(self):
|
||||
"""HP-5: C3 full-create → C4 GET full → C5 PATCH → C4 GET verify"""
|
||||
# C3: full-create(2 条评分规则)
|
||||
payload = build_traditional_payload(department_name='儿科', scoring_rules_count=2)
|
||||
payload = build_traditional_payload(
|
||||
department_name='儿科', scoring_rules_count=2, with_exam_items=True,
|
||||
)
|
||||
resp = self.client.post(CASE_FULL_CREATE_URL, payload, format='json')
|
||||
self.assertEqual(resp.status_code, 201, resp.content)
|
||||
|
||||
@@ -38,6 +40,8 @@ class CaseFormHappyPathTest(CacheTestCase):
|
||||
self.assertIn('traditional', created)
|
||||
self.assertIsNotNone(created['traditional'])
|
||||
self.assertEqual(len(created['scoring_rules']), 2)
|
||||
self.assertEqual(len(created['exam_items']), 1)
|
||||
self.assertEqual(created['exam_items'][0]['item_code'], 'blood_routine')
|
||||
|
||||
# C4: GET full
|
||||
resp = self.client.get(case_full_url(case_id))
|
||||
@@ -45,6 +49,7 @@ class CaseFormHappyPathTest(CacheTestCase):
|
||||
full = resp.json()
|
||||
self.assertEqual(full['case']['title'], payload['title'])
|
||||
self.assertEqual(len(full['scoring_rules']), 2)
|
||||
self.assertEqual(len(full['exam_items']), 1)
|
||||
|
||||
# C5: PATCH(改标题 + 改子表 + 替换为 1 条评分规则)
|
||||
patch_data = {
|
||||
@@ -77,6 +82,7 @@ class CaseFormHappyPathTest(CacheTestCase):
|
||||
case = CaseBase.objects.get(id=case_id)
|
||||
self.assertEqual(case.title, '更新后的标题')
|
||||
self.assertEqual(ScoringRule.objects.filter(case_id=case_id).count(), 1)
|
||||
self.assertEqual(CaseExamItem.objects.filter(case_id=case_id).count(), 1)
|
||||
tc = TraditionalCase.objects.get(case_id=case_id)
|
||||
self.assertEqual(tc.standard_diagnosis, '更新后的诊断')
|
||||
|
||||
@@ -144,6 +150,7 @@ class CasePdfMockHappyPathTest(CacheTestCase):
|
||||
created = resp.json()
|
||||
case_id = created['case']['id']
|
||||
self.assertEqual(len(created['scoring_rules']), len(scoring_rules))
|
||||
self.assertEqual(len(created['exam_items']), 1)
|
||||
|
||||
# C4: GET full
|
||||
resp = self.client.get(case_full_url(case_id))
|
||||
|
||||
Reference in New Issue
Block a user