Skip to content

Commit d0fc149

Browse files
fix: parse_time_to_datetime method
1 parent 54f6d0b commit d0fc149

File tree

2 files changed

+67
-3
lines changed

2 files changed

+67
-3
lines changed

roborock/util.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@ def parse_time_to_datetime(
3434
hour=end_time.hour, minute=end_time.minute, second=0, microsecond=0
3535
)
3636

37-
now = datetime.datetime.now(DEFAULT_TIME_ZONE)
38-
if start_datetime > now > end_datetime:
37+
if start_datetime > end_datetime:
3938
end_datetime += datetime.timedelta(days=1)
40-
elif end_datetime < now:
39+
elif end_datetime < datetime.datetime.now(DEFAULT_TIME_ZONE):
4140
start_datetime += datetime.timedelta(days=1)
4241
end_datetime += datetime.timedelta(days=1)
4342

tests/test_util.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import datetime
2+
3+
import pytest
4+
5+
from roborock import parse_time_to_datetime
6+
7+
8+
@pytest.mark.skip
9+
def validate(start: datetime.datetime, end: datetime.datetime) -> bool:
10+
duration = end - start
11+
return duration > datetime.timedelta()
12+
13+
14+
# start_date < now < end_date
15+
def test_start_date_lower_than_end_date_lower_than_now():
16+
start, end = parse_time_to_datetime(
17+
(datetime.datetime.now() - datetime.timedelta(hours=2)).time(),
18+
(datetime.datetime.now() - datetime.timedelta(hours=1)).time(),
19+
)
20+
assert validate(start, end)
21+
22+
23+
# start_date > now > end_date
24+
def test_start_date_greater_than_now_greater_tat_end_date():
25+
start, end = parse_time_to_datetime(
26+
(datetime.datetime.now() + datetime.timedelta(hours=1)).time(),
27+
(datetime.datetime.now() + datetime.timedelta(hours=2)).time(),
28+
)
29+
assert validate(start, end)
30+
31+
32+
# start_date < now > end_date
33+
def test_start_date_lower_than_now_greater_than_end_date():
34+
start, end = parse_time_to_datetime(
35+
(datetime.datetime.now() - datetime.timedelta(hours=1)).time(),
36+
(datetime.datetime.now() + datetime.timedelta(hours=1)).time(),
37+
)
38+
assert validate(start, end)
39+
40+
41+
# start_date > now < end_date
42+
def test_start_date_greater_than_now_lower_than_end_date():
43+
start, end = parse_time_to_datetime(
44+
(datetime.datetime.now() + datetime.timedelta(hours=1)).time(),
45+
(datetime.datetime.now() - datetime.timedelta(hours=1)).time(),
46+
)
47+
assert validate(start, end)
48+
49+
50+
# start_date < end_date < now
51+
def test_start_date_lower_than_end_date_lower_than_now():
52+
start, end = parse_time_to_datetime(
53+
(datetime.datetime.now() - datetime.timedelta(hours=2)).time(),
54+
(datetime.datetime.now() - datetime.timedelta(hours=1)).time(),
55+
)
56+
assert validate(start, end)
57+
58+
59+
# start_date > end_date > now
60+
def test_start_date_greater_than_end_date_greater_than_now():
61+
start, end = parse_time_to_datetime(
62+
(datetime.datetime.now() + datetime.timedelta(hours=2)).time(),
63+
(datetime.datetime.now() + datetime.timedelta(hours=1)).time(),
64+
)
65+
assert validate(start, end)

0 commit comments

Comments
 (0)