diff options
Diffstat (limited to 'tests/test_dates.py')
-rw-r--r-- | tests/test_dates.py | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/tests/test_dates.py b/tests/test_dates.py index d11758c..2a883ab 100644 --- a/tests/test_dates.py +++ b/tests/test_dates.py @@ -775,10 +775,37 @@ def test_format_timedelta(): def test_parse_date(): assert dates.parse_date('4/1/04', locale='en_US') == date(2004, 4, 1) assert dates.parse_date('01.04.2004', locale='de_DE') == date(2004, 4, 1) - - -def test_parse_time(): - assert dates.parse_time('15:30:00', locale='en_US') == time(15, 30) + assert dates.parse_date('2004-04-01', locale='sv_SE', format='short') == date(2004, 4, 1) + + +@pytest.mark.parametrize('input, expected', [ + # base case, fully qualified time + ('15:30:00', time(15, 30)), + # test digits + ('15:30', time(15, 30)), + ('3:30', time(3, 30)), + ('00:30', time(0, 30)), + # test am parsing + ('03:30 am', time(3, 30)), + ('3:30:21 am', time(3, 30, 21)), + ('3:30 am', time(3, 30)), + # test pm parsing + ('03:30 pm', time(15, 30)), + ('03:30 pM', time(15, 30)), + ('03:30 Pm', time(15, 30)), + ('03:30 PM', time(15, 30)), + # test hour-only parsing + ('4 pm', time(16, 0)), +]) +def test_parse_time(input, expected): + assert dates.parse_time(input, locale='en_US') == expected + + +@pytest.mark.parametrize('case', ['', 'a', 'aaa']) +@pytest.mark.parametrize('func', [dates.parse_date, dates.parse_time]) +def test_parse_errors(case, func): + with pytest.raises(dates.ParseError): + func(case, locale='en_US') def test_datetime_format_get_week_number(): |