summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorInada Naoki <songofacandy@gmail.com>2020-01-20 03:45:50 (GMT)
committerGitHub <noreply@github.com>2020-01-20 03:45:50 (GMT)
commite96d954527aa376457451e32a9d75ae3ea9ab4bd (patch)
treed5e8e7d8d79097d8d420d65fa055cef116f72934
parentd8ef64422a75f40cecdb1a7ee43492607d3daaf6 (diff)
downloadcpython-e96d954527aa376457451e32a9d75ae3ea9ab4bd.zip
cpython-e96d954527aa376457451e32a9d75ae3ea9ab4bd.tar.gz
cpython-e96d954527aa376457451e32a9d75ae3ea9ab4bd.tar.bz2
bpo-38536: locale: Remove trailing space in formatted currency (GH-16864)
-rw-r--r--Lib/locale.py2
-rw-r--r--Lib/test/test_locale.py3
-rw-r--r--Misc/NEWS.d/next/Library/2019-10-21-20-24-51.bpo-38536.beZ0Sk.rst2
3 files changed, 5 insertions, 2 deletions
diff --git a/Lib/locale.py b/Lib/locale.py
index dd8a085..1a4e9f6 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 c5d8e26..2863d20 100644
--- a/Lib/test/test_locale.py
+++ b/Lib/test/test_locale.py
@@ -334,8 +334,7 @@ class TestFrFRNumberFormatting(FrFRCookedTest, BaseFormattingTest):
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 0000000..147d181
--- /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'`.