Files
group_xinghuo_jinrong/tests/test_desensitize.py
T

62 lines
1.8 KiB
Python
Raw Normal View History

"""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("") == ""