Files
group_xinghuo_jinrong/tests/test_desensitize.py
T

62 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""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("") == ""