73 lines
2.7 KiB
Python
73 lines
2.7 KiB
Python
"""Cover / Mẫu 02 don_vi resolution for legacy officialBieuMau JSON.
|
|
|
|
Run: cd be0 && python -m unittest tests.test_official_to_data_blank_don_vi -v
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from src.be01.official_to_data_blank import _resolve_don_vi_cong_tac, official_to_data_blank
|
|
|
|
|
|
class OfficialToDataBlankDonViTests(unittest.TestCase):
|
|
def test_resolve_prefers_explicit_cover(self) -> None:
|
|
official = {
|
|
"TRANG BÌA": {"Đơn vị công tác": " Phòng A "},
|
|
"MẪU SỐ 02 - ĐƠN ĐỀ NGHỊ CÔNG NHẬN SÁNG KIẾN": {
|
|
"Đơn vị": "",
|
|
"Danh sách tác giả": [
|
|
{"STT": "1", "Họ và tên": "X", "Nơi công tác": "Phòng B"},
|
|
],
|
|
},
|
|
}
|
|
self.assertEqual(_resolve_don_vi_cong_tac(official), "Phòng A")
|
|
|
|
def test_resolve_falls_back_to_first_author_workplace(self) -> None:
|
|
official = {
|
|
"TRANG BÌA": {"Đơn vị công tác": ""},
|
|
"MẪU SỐ 02 - ĐƠN ĐỀ NGHỊ CÔNG NHẬN SÁNG KIẾN": {
|
|
"Đơn vị": "",
|
|
"Danh sách tác giả": [
|
|
{
|
|
"STT": "1",
|
|
"Họ và tên": "Nguyễn Văn A",
|
|
"Nơi công tác": "Trường Y",
|
|
},
|
|
],
|
|
},
|
|
}
|
|
self.assertEqual(_resolve_don_vi_cong_tac(official), "Trường Y")
|
|
|
|
def test_official_to_data_blank_sets_trang_bia_and_mau02(self) -> None:
|
|
official = {
|
|
"TRANG BÌA": {
|
|
"Tên sáng kiến (Tiếng Việt)": "SK1",
|
|
"Tác giả/nhóm tác giả sáng kiến": "A",
|
|
"Đơn vị công tác": "",
|
|
"Thông tin liên hệ (Điện thoại, Email)": "",
|
|
"Năm": "2026",
|
|
},
|
|
"MẪU SỐ 02 - ĐƠN ĐỀ NGHỊ CÔNG NHẬN SÁNG KIẾN": {
|
|
"Đơn vị": "",
|
|
"Danh sách tác giả": [
|
|
{
|
|
"STT": "1",
|
|
"Họ và tên": "A",
|
|
"Ngày tháng năm sinh": "",
|
|
"Nơi công tác": "Khoa X",
|
|
"Chức danh": "",
|
|
"Trình độ chuyên môn": "",
|
|
"Tỷ lệ (%) đóng góp vào việc tạo ra sáng kiến": "100",
|
|
},
|
|
],
|
|
},
|
|
}
|
|
ctx = official_to_data_blank(official)
|
|
self.assertEqual(ctx["trang_bia"]["don_vi"], "Khoa X")
|
|
self.assertEqual(ctx["mau_02"]["don_vi"], "Khoa X")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|