diff --git a/Lib/locale.py b/Lib/locale.py index dd8a08524a018e..1a4e9f694f3096 100644 --- a/Lib/locale.py +++ b/Lib/locale.py @@ -279,6 +279,8 @@ def currency(val, symbol=True, grouping=False, international=False): if precedes: s = smb + (separated and ' ' or '') + s else: + if international and smb[-1] == ' ': + smb = smb[:-1] s = s + (separated and ' ' or '') + smb sign_pos = conv[val<0 and 'n_sign_posn' or 'p_sign_posn'] diff --git a/Lib/test/test_locale.py b/Lib/test/test_locale.py index c5d8e269d63183..2863d200e25c2e 100644 --- a/Lib/test/test_locale.py +++ b/Lib/test/test_locale.py @@ -334,8 +334,7 @@ def test_currency(self): euro = '\u20ac' self._test_currency(50000, "50000,00 " + euro) self._test_currency(50000, "50 000,00 " + euro, grouping=True) - # XXX is the trailing space a bug? - self._test_currency(50000, "50 000,00 EUR ", + self._test_currency(50000, "50 000,00 EUR", grouping=True, international=True) diff --git a/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst b/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst new file mode 100644 index 00000000000000..147d181cc7e141 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst @@ -0,0 +1,2 @@ +Removes trailing space in formatted currency with `international=True` and a locale with symbol following value. +E.g. `locale.currency(12.34, international=True)` returned `'12,34 EUR '` instead of `'12,34 EUR'`.