]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Date intervals: allow using `other` as fallback form
authorAarni Koskela <akx@iki.fi>
Tue, 25 Jan 2022 12:07:50 +0000 (14:07 +0200)
committerAarni Koskela <akx@iki.fi>
Tue, 25 Jan 2022 13:00:09 +0000 (15:00 +0200)
Fixes #825

babel/dates.py
tests/test_date_intervals.py

index a1bf713ced51cfe68b248dd87c189cf36d71ecc6..816149d18be49a7d83d2773b2ed39efdd5fc727a 100644 (file)
@@ -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:
index 2e5f0d6e2331f48e85c0eff761ccd7e4960b4760..4f421705430d158cdcf595adb21a3756eba35548 100644 (file)
@@ -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'