Пример #1
0
def test_parse():
    output = parse('4 years, 3 months and 4 days')
    expected_output = datetime.timedelta(
        weeks=4 * 52 + 3 * 4,
        days=4,
    )
    assert output == expected_output
Пример #2
0
def test_parse_iso_8601_duration_format():
    output = parse('P1Y2M3W10DT2H30M')
    expected_output = datetime.timedelta(weeks=1 * 52 + 2 * 4 + 3,
                                         days=10,
                                         hours=2,
                                         minutes=30)
    assert output == expected_output
Пример #3
0
def test_parse_uptime_format():
    output = parse('2 days, 4:13:02')
    expected_output = datetime.timedelta(days=2,
                                         hours=4,
                                         minutes=13,
                                         seconds=2)
    assert output == expected_output
Пример #4
0
def test_parse_duration():
    output = parse('2:04:13:2.266')
    expected_output = datetime.timedelta(hours=2,
                                         minutes=4,
                                         seconds=13,
                                         milliseconds=2,
                                         microseconds=266)
    assert output == expected_output
Пример #5
0
def test_parse_postgres_day_time_format():
    output = parse('3 days 04:05:06')
    expected_output = datetime.timedelta(days=3, hours=4, minutes=5, seconds=6)
    assert output == expected_output
Пример #6
0
def test_parse_packed_spaced():
    output = parse('1 w 3 d 2 h 32 m')
    expected_output = datetime.timedelta(weeks=1, days=3, hours=2, minutes=32)
    assert output == expected_output
Пример #7
0
def test_parse_free_text():
    output = parse('She said she will comback in 2 hours and 30 minutes')
    expected_output = datetime.timedelta(hours=2, minutes=30)
    assert output == expected_output
Пример #8
0
def test_parse_from_to():
    output = parse('3 to 4 days, 5 to 6 hours')
    expected_min = datetime.timedelta(days=3, hours=5)
    expected_max = datetime.timedelta(days=4, hours=6)
    assert expected_min <= output <= expected_max
Пример #9
0
def test_parse_whitespace():
    output = parse('-4    years  ,    \t 3 days   ')
    expected_output = datetime.timedelta(weeks=-4 * 52, days=3)
    assert output == expected_output
Пример #10
0
def test_parse_negative():
    output = parse('- 3 hours and 30 minutes and 300 microseconds')
    expected_output = datetime.timedelta(hours=-3,
                                         minutes=30,
                                         milliseconds=300 * 0.001)
    assert output == expected_output
Пример #11
0
def test_parse_no_expression():
    with pytest.raises(ValueError):
        parse('no time')
Пример #12
0
def test_parse_non_string():
    with pytest.raises(TypeError):
        parse(None)
Пример #13
0
def test_parse_empty():
    with pytest.raises(ValueError):
        parse('')