40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""测试卡片解析器"""
|
|
from checker.cards import parse_card_file, deduplicate_cards
|
|
from checker import Card
|
|
|
|
|
|
def test_card_parse():
|
|
"""测试卡片解析"""
|
|
card_string = "4111111111111111|12|2025|123"
|
|
card = Card.parse(card_string)
|
|
|
|
assert card is not None
|
|
assert card.number == "4111111111111111"
|
|
assert card.month == "12"
|
|
assert card.year == "2025"
|
|
assert card.cvv == "123"
|
|
|
|
|
|
def test_card_bin():
|
|
"""测试BIN提取"""
|
|
card = Card(number="4111111111111111", month="12", year="2025", cvv="123")
|
|
assert card.bin == "411111"
|
|
|
|
|
|
def test_card_formatted():
|
|
"""测试格式化输出"""
|
|
card = Card(number="4111111111111111", month="12", year="2025", cvv="123")
|
|
assert card.formatted == "4111111111111111|12|25|123"
|
|
|
|
|
|
def test_deduplicate_cards():
|
|
"""测试去重"""
|
|
cards = [
|
|
Card(number="4111111111111111", month="12", year="2025", cvv="123"),
|
|
Card(number="4111111111111111", month="12", year="2025", cvv="123"),
|
|
Card(number="5555555555554444", month="11", year="2024", cvv="456"),
|
|
]
|
|
|
|
unique = deduplicate_cards(cards)
|
|
assert len(unique) == 2
|