mirror of
https://github.com/Mesteriis/hassio-addons-avm.git
synced 2026-01-09 23:11:02 +01:00
90 lines
3.7 KiB
Python
90 lines
3.7 KiB
Python
from backup.config.durationparser import DurationParser
|
|
from datetime import timedelta
|
|
|
|
|
|
def test_parse_days():
|
|
parser = DurationParser()
|
|
assert parser.parse("1 days") == timedelta(days=1)
|
|
assert parser.parse("5 days") == timedelta(days=5)
|
|
assert parser.parse("5 d") == timedelta(days=5)
|
|
assert parser.parse("5d") == timedelta(days=5)
|
|
assert parser.parse("5.0d") == timedelta(days=5)
|
|
assert parser.parse("5.0day") == timedelta(days=5)
|
|
assert parser.parse("5.0 day") == timedelta(days=5)
|
|
assert parser.parse("5.5 days") == timedelta(days=5, hours=12)
|
|
|
|
|
|
def test_parse_hours():
|
|
parser = DurationParser()
|
|
assert parser.parse("1 hours") == timedelta(hours=1)
|
|
assert parser.parse("5 hours") == timedelta(hours=5)
|
|
assert parser.parse("5 h") == timedelta(hours=5)
|
|
assert parser.parse("5hour") == timedelta(hours=5)
|
|
assert parser.parse("5.0h") == timedelta(hours=5)
|
|
assert parser.parse("5.0 hour") == timedelta(hours=5)
|
|
assert parser.parse("5.5 h") == timedelta(hours=5, minutes=30)
|
|
|
|
|
|
def test_parse_minutes():
|
|
parser = DurationParser()
|
|
assert parser.parse("1 minutes") == timedelta(minutes=1)
|
|
assert parser.parse("5 min") == timedelta(minutes=5)
|
|
assert parser.parse("5 m") == timedelta(minutes=5)
|
|
assert parser.parse("5mins") == timedelta(minutes=5)
|
|
assert parser.parse("5.0m") == timedelta(minutes=5)
|
|
assert parser.parse("5.0 min") == timedelta(minutes=5)
|
|
assert parser.parse("5.5 m") == timedelta(minutes=5, seconds=30)
|
|
|
|
|
|
def test_parse_seconds():
|
|
parser = DurationParser()
|
|
assert parser.parse("1 seconds") == timedelta(seconds=1)
|
|
assert parser.parse("5 sec") == timedelta(seconds=5)
|
|
assert parser.parse("5 s") == timedelta(seconds=5)
|
|
assert parser.parse("5secs") == timedelta(seconds=5)
|
|
assert parser.parse("5.0s") == timedelta(seconds=5)
|
|
assert parser.parse("5.0 secs") == timedelta(seconds=5)
|
|
assert parser.parse("5.5 s") == timedelta(seconds=5, milliseconds=500)
|
|
|
|
|
|
def test_parse_multiple():
|
|
parser = DurationParser()
|
|
assert parser.parse("1 day, 5 hours, 30 seconds") == timedelta(days=1, hours=5, seconds=30)
|
|
assert parser.parse("1 day 5 hours 30 seconds") == timedelta(days=1, hours=5, seconds=30)
|
|
assert parser.parse("1d 5 hours 30s") == timedelta(days=1, hours=5, seconds=30)
|
|
assert parser.parse("1d 5h 30s") == timedelta(days=1, hours=5, seconds=30)
|
|
assert parser.parse("5m 1d 5h 30s") == timedelta(days=1, hours=5, minutes=5, seconds=30)
|
|
|
|
|
|
def test_format():
|
|
parser = DurationParser()
|
|
assert parser.format(timedelta(days=1)) == "1 days"
|
|
assert parser.format(timedelta(seconds=86400)) == "1 days"
|
|
assert parser.format(timedelta(hours=1)) == "1 hours"
|
|
assert parser.format(timedelta(minutes=1)) == "1 minutes"
|
|
assert parser.format(timedelta(seconds=60)) == "1 minutes"
|
|
assert parser.format(timedelta(seconds=5)) == "5 seconds"
|
|
assert parser.format(timedelta(seconds=1)) == "1 seconds"
|
|
assert parser.format(timedelta(days=5, hours=6, minutes=7)) == "5 days, 6 hours, 7 minutes"
|
|
assert parser.format(timedelta(days=5, hours=6, minutes=7, seconds=8)) == "5 days, 6 hours, 7 minutes, 8 seconds"
|
|
|
|
|
|
def test_back_and_forth():
|
|
doTestConvert(timedelta(hours=5))
|
|
doTestConvert(timedelta(minutes=600))
|
|
doTestConvert(timedelta(days=30))
|
|
doTestConvert(timedelta(days=5, minutes=6, hours=10, seconds=20))
|
|
|
|
|
|
def doTestConvert(duration):
|
|
parser = DurationParser()
|
|
assert parser.parse(parser.format(duration)) == duration
|
|
|
|
|
|
def test_convert_empty_seconds():
|
|
parser = DurationParser()
|
|
assert parser.parse("") == timedelta(seconds=0)
|
|
assert parser.parse("0") == timedelta(seconds=0)
|
|
assert parser.parse("30") == timedelta(seconds=30)
|
|
assert parser.parse(str(60 * 60)) == timedelta(seconds=60 * 60)
|