62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
"""desensitize.py 单测(A1 · DESENS-001~004,005 归前端)。"""
|
||||
|
|
|
|||
|
|
from app.utils.desensitize import mask_bank_card, mask_id_card, mask_name, mask_phone
|
|||
|
|
|
|||
|
|
|
|||
|
|
class TestMaskIdCard:
|
|||
|
|
def test_normal_18(self):
|
|||
|
|
assert mask_id_card("110101199003071234") == "110****1234"
|
|||
|
|
|
|||
|
|
def test_short_overmasked(self):
|
|||
|
|
# 长度不足 head+tail:整体掩码(宁多勿漏)
|
|||
|
|
assert mask_id_card("123456") == "******"
|
|||
|
|
|
|||
|
|
def test_none_and_empty(self):
|
|||
|
|
assert mask_id_card(None) == ""
|
|||
|
|
assert mask_id_card("") == ""
|
|||
|
|
|
|||
|
|
|
|||
|
|
class TestMaskPhone:
|
|||
|
|
def test_normal_11(self):
|
|||
|
|
assert mask_phone("13812349527") == "138****9527"
|
|||
|
|
|
|||
|
|
def test_boundary_7(self):
|
|||
|
|
# 恰好 head+tail 长度 → 整体掩码
|
|||
|
|
assert mask_phone("1234567") == "*******"
|
|||
|
|
|
|||
|
|
def test_boundary_8(self):
|
|||
|
|
# 8 = 3+4+1,可保留头尾
|
|||
|
|
assert mask_phone("12345678") == "123****5678"
|
|||
|
|
|
|||
|
|
|
|||
|
|
class TestMaskName:
|
|||
|
|
def test_keeps_surname(self):
|
|||
|
|
assert mask_name("张三丰") == "张**"
|
|||
|
|
assert mask_name("李四") == "李**"
|
|||
|
|
|
|||
|
|
def test_single_char(self):
|
|||
|
|
# 单字名:姓氏 + **(规则如此,不特判)
|
|||
|
|
assert mask_name("王") == "王**"
|
|||
|
|
|
|||
|
|
def test_none_and_empty(self):
|
|||
|
|
assert mask_name(None) == ""
|
|||
|
|
assert mask_name("") == ""
|
|||
|
|
|
|||
|
|
|
|||
|
|
class TestMaskBankCard:
|
|||
|
|
def test_normal_16(self):
|
|||
|
|
assert mask_bank_card("6222021234561234") == "************1234"
|
|||
|
|
|
|||
|
|
def test_keep_last4_only(self):
|
|||
|
|
masked = mask_bank_card("6222021234561234")
|
|||
|
|
assert masked[-4:] == "1234"
|
|||
|
|
assert set(masked[:-4]) == {"*"}
|
|||
|
|
|
|||
|
|
|
|||
|
|
def test_short_overmasked(self):
|
|||
|
|
assert mask_bank_card("123") == "***"
|
|||
|
|
|
|||
|
|
def test_none_and_empty(self):
|
|||
|
|
assert mask_bank_card(None) == ""
|
|||
|
|
assert mask_bank_card("") == ""
|