|
17 | 17 | import pytest |
18 | 18 |
|
19 | 19 | from babel import Locale, dates |
20 | | -from babel.dates import NO_INHERITANCE_MARKER, UTC, _localize |
| 20 | +from babel.dates import NO_INHERITANCE_MARKER, UTC, _localize, parse_pattern |
21 | 21 | from babel.util import FixedOffsetTimezone |
22 | 22 |
|
23 | 23 |
|
@@ -666,6 +666,24 @@ def test_parse_time(input, expected): |
666 | 666 | assert dates.parse_time(input, locale='en_US') == expected |
667 | 667 |
|
668 | 668 |
|
| 669 | +def test_parse_time_alternate_characters(monkeypatch): |
| 670 | + # 'K' can be used as an alternative to 'H' |
| 671 | + def get_time_format(*args, **kwargs): |
| 672 | + return parse_pattern('KK:mm:ss') |
| 673 | + monkeypatch.setattr(dates, 'get_time_format', get_time_format) |
| 674 | + |
| 675 | + assert dates.parse_time('9:30') == time(9, 30) |
| 676 | + |
| 677 | + |
| 678 | +def test_parse_date_alternate_characters(monkeypatch): |
| 679 | + # 'l' can be used as an alternative to 'm' |
| 680 | + def get_date_format(*args, **kwargs): |
| 681 | + return parse_pattern('yyyy-ll-dd') |
| 682 | + monkeypatch.setattr(dates, 'get_time_format', get_date_format) |
| 683 | + |
| 684 | + assert dates.parse_date('2024-10-20') == date(2024, 10, 20) |
| 685 | + |
| 686 | + |
669 | 687 | @pytest.mark.parametrize('case', ['', 'a', 'aaa']) |
670 | 688 | @pytest.mark.parametrize('func', [dates.parse_date, dates.parse_time]) |
671 | 689 | def test_parse_errors(case, func): |
|
0 commit comments