From 227d1ec9e44bb95fb77fe5611815cc13be27e164 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Tue, 25 Jan 2022 14:07:50 +0200 Subject: [PATCH] Date intervals: allow using `other` as fallback form Fixes #825 --- babel/dates.py | 2 +- tests/test_date_intervals.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/babel/dates.py b/babel/dates.py index a1bf713c..816149d1 100644 --- a/babel/dates.py +++ b/babel/dates.py @@ -948,7 +948,7 @@ def format_timedelta(delta, granularity='second', threshold=.85, pattern = None for patterns in _iter_patterns(unit): if patterns is not None: - pattern = patterns[plural_form] + pattern = patterns.get(plural_form) or patterns.get('other') break # This really should not happen if pattern is None: diff --git a/tests/test_date_intervals.py b/tests/test_date_intervals.py index 2e5f0d6e..4f421705 100644 --- a/tests/test_date_intervals.py +++ b/tests/test_date_intervals.py @@ -52,3 +52,13 @@ def test_format_interval_invalid_skeleton(): t2 = TEST_DATE + datetime.timedelta(days=1) assert dates.format_interval(t1, t2, "mumumu", fuzzy=False, locale="fi") == u"8.1.2016\u20139.1.2016" assert dates.format_interval(t1, t2, fuzzy=False, locale="fi") == u"8.1.2016\u20139.1.2016" + + +def test_issue_825(): + assert dates.format_timedelta( + datetime.timedelta(hours=1), + granularity='hour', + threshold=100, + format='short', + locale='pt', + ) == '1 h' -- 2.47.2