Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion luhn.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ def _digits(value: NumberLike) -> str:

if not cleaned or not cleaned.isdigit():
raise ValueError(
"value must contain digits only, with optional spaces or hyphens"
"value must contain digits only, with optional spaces, hyphens, "
"dots, slashes, backslashes, or commas"
)

return cleaned
Expand Down
7 changes: 6 additions & 1 deletion test_luhn.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,12 @@ def test_append_check_digit(self):
self.assertEqual(append_check_digit("7992739871"), "79927398713")

def test_rejects_non_digit_payloads(self):
with self.assertRaises(ValueError):
expected_message = (
"value must contain digits only, with optional spaces, hyphens, "
"dots, slashes, backslashes, or commas"
)

with self.assertRaisesRegex(ValueError, expected_message):
calculate_check_digit("123x")

def test_rejects_unsupported_types(self):
Expand Down
Loading