更新
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
import socket
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
|
||||
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
|
||||
|
||||
import pytest
|
||||
from PySide6.QtWidgets import QApplication, QDialog, QPlainTextEdit, QWidget
|
||||
|
||||
from doctor_workstation.core.transcript_text import simplified_transcript
|
||||
from doctor_workstation.ui.dialogs.diagnosis import DiagnosisDialog
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("source", "expected"),
|
||||
[
|
||||
("你會說老家話嗎?很會,很會。", "你会说老家话吗?很会,很会。"),
|
||||
("沒有過敏,沒有吃藥。0.5 mg,不是 5 mg。", "没有过敏,没有吃药。0.5 mg,不是 5 mg。"),
|
||||
("血壓 120/80 mmHg,血糖 2.00–30.00 mmol/L,HbA1c 6.5%。",
|
||||
"血压 120/80 mmHg,血糖 2.00–30.00 mmol/L,HbA1c 6.5%。"),
|
||||
("唔係,冇食藥,咩事?", "唔系,冇食药,咩事?"),
|
||||
("患者:口乾。\n醫生:不?\n患者:不。", "患者:口干。\n医生:不?\n患者:不。"),
|
||||
("简体,不! \n0.5 mg\tB12", "简体,不! \n0.5 mg\tB12"),
|
||||
("", ""),
|
||||
],
|
||||
)
|
||||
def test_script_conversion_is_offline_and_preserves_clinical_tokens(monkeypatch, source, expected):
|
||||
def no_network(*args, **kwargs):
|
||||
pytest.fail("Script conversion must use bundled dictionaries only")
|
||||
|
||||
monkeypatch.setattr(socket.socket, "connect", no_network)
|
||||
# A fresh thread loads its own dictionaries, even when a prior test ran.
|
||||
with ThreadPoolExecutor(max_workers=1) as pool:
|
||||
assert pool.submit(simplified_transcript, source).result() == expected
|
||||
assert simplified_transcript(expected) == expected
|
||||
|
||||
|
||||
def test_historical_transcript_dialog_displays_simplified_without_changing_record(monkeypatch):
|
||||
application = QApplication.instance() or QApplication([])
|
||||
parent = QWidget()
|
||||
record = {"transcript_text": "患者:你會說老家話嗎?\n患者:沒有吃藥,0.5 mg。"}
|
||||
source = DiagnosisDialog._call_transcript_text(record)
|
||||
displayed = []
|
||||
|
||||
def inspect(dialog):
|
||||
displayed.append(dialog.findChild(QPlainTextEdit, "DiagnosisCallTranscriptText").toPlainText())
|
||||
return 0
|
||||
|
||||
monkeypatch.setattr(QDialog, "exec", inspect)
|
||||
try:
|
||||
DiagnosisDialog._view_call_transcript(parent, 12, source)
|
||||
assert displayed == ["患者:你会说老家话吗?\n患者:没有吃药,0.5 mg。"]
|
||||
assert record["transcript_text"] == source
|
||||
finally:
|
||||
parent.close()
|
||||
application.processEvents()
|
||||
Reference in New Issue
Block a user