From b9f806ac73c5fc3606de08478d2543e7af806f4c Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 23 Oct 2026 10:48:09 +0530 Subject: [PATCH 1/2] Accept current SLE, XCG and ZWG currency codes --- src/validators/country.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/validators/country.py b/src/validators/country.py index f220c77f..5afc6ca1 100644 --- a/src/validators/country.py +++ b/src/validators/country.py @@ -206,15 +206,15 @@ "PAB", "PEN", "PGK", "PHP", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", - "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", + "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLE", "SLL", "SOS", "SRD", "SSP", "STN", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "UYU", "UZS", "VED", "VES", "VND", "VUV", "WST", - "XAF", "XCD", "XDR", "XOF", "XPF", + "XAF", "XCD", "XCG", "XDR", "XOF", "XPF", "YER", - "ZAR", "ZMW", "ZWL" + "ZAR", "ZMW", "ZWG", "ZWL" } _currency_symbols = { # https://en.wikipedia.org/wiki/Currency_sign_(generic) From b9932277603920d0a81c5fca6eda3ad0107c23a2 Mon Sep 17 00:00:00 2001 From: Anthony Date: Fri, 23 Oct 2026 10:48:50 +0530 Subject: [PATCH 2/2] Accept current SLE, XCG and ZWG currency codes --- tests/test_country.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/test_country.py b/tests/test_country.py index 1485d265..98fdae2d 100644 --- a/tests/test_country.py +++ b/tests/test_country.py @@ -82,3 +82,23 @@ def test_returns_failed_validation_invalid_currency( assert isinstance( currency(value, skip_symbols=skip_symbols, ignore_case=ignore_case), ValidationError ) + + +@pytest.mark.parametrize("value", ["SLE", "XCG", "ZWG"]) +@pytest.mark.parametrize("skip_symbols", [True, False]) +def test_accepts_current_currency_codes(value: str, skip_symbols: bool): + """Accept the current Leone, Caribbean guilder and Zimbabwe Gold codes.""" + assert currency(value, skip_symbols=skip_symbols) is True + + +@pytest.mark.parametrize("value", ["sle", "xcg", "zwg"]) +def test_current_currency_codes_respect_ignore_case(value: str): + """Only accept lowercase currency codes when case-insensitive matching is enabled.""" + assert isinstance(currency(value), ValidationError) + assert currency(value, ignore_case=True) is True + + +@pytest.mark.parametrize("value", ["SLL", "ANG", "ZWL"]) +def test_preserves_legacy_currency_codes(value: str): + """Keep previously accepted codes when adding their current replacements.""" + assert currency(value) is True