File: test_humanize_seconds.py

package info (click to toggle)
python-eth-utils 5.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,140 kB
  • sloc: python: 5,985; makefile: 238
file content (53 lines) | stat: -rw-r--r-- 1,416 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import pytest

from eth_utils import (
    humanize_seconds,
)

SECOND = 1
MINUTE = 60
HOUR = 60 * 60
DAY = 24 * HOUR
YEAR = 365 * DAY
MONTH = YEAR // 12
WEEK = 7 * DAY


@pytest.mark.parametrize(
    "seconds,expected",
    (
        (0, "0s"),
        (1, "1s"),
        (59, "59s"),
        (60, "1m"),
        (61, "1m1s"),
        (119, "1m59s"),
        (59 * MINUTE + 59, "59m59s"),
        (HOUR, "1h"),
        (HOUR + 1, "1h0m1s"),
        (HOUR + MINUTE + 1, "1h1m1s"),
        (HOUR + MINUTE, "1h1m"),
        (23 * HOUR + 59 * MINUTE, "23h59m"),
        (23 * HOUR + 59 * MINUTE + 1, "23h59m1s"),
        (23 * HOUR + 59 * MINUTE + 59, "23h59m59s"),
        (DAY + HOUR, "1d1h"),
        (DAY + HOUR + MINUTE, "1d1h1m"),
        (DAY + MINUTE, "1d0h1m"),
        (DAY + MINUTE + 1, "1d0h1m"),
        (DAY + SECOND, "1d0h0m"),
        (WEEK + DAY + HOUR, "1w1d1h"),
        (WEEK + DAY + HOUR + MINUTE, "1w1d1h"),
        (WEEK + DAY + HOUR + SECOND, "1w1d1h"),
        (WEEK + SECOND, "1w0d0h"),
        (MONTH + WEEK + DAY, "1m1w1d"),
        (MONTH + WEEK + DAY + HOUR, "1m1w1d"),
        (MONTH + SECOND, "1m0w0d"),
        (YEAR + MONTH + WEEK, "1y1m1w"),
        (YEAR + MONTH + WEEK + DAY, "1y1m1w"),
        (YEAR - SECOND, "11m4w2d"),
        (YEAR + SECOND, "1y0m0w"),
    ),
)
def test_humanize_seconds(seconds, expected):
    actual = humanize_seconds(seconds)
    assert actual == expected