-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_gcal.py
More file actions
65 lines (50 loc) · 2.42 KB
/
test_gcal.py
File metadata and controls
65 lines (50 loc) · 2.42 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
import arrow
from arrow.arrow import timedelta
import pytest
from gcal import CalendarEvent
from gcal import _craft_app_link
def test_craft_app_link():
join_link = "https://orgname.zoom.us/j/123456789?pwd=jkf3F28HJhjk998FJksBsFQfwrLn"
app_link = _craft_app_link(join_link=join_link)
assert app_link == "zoommtg://orgname.zoom.us/join?action=join&confno=123456789&pwd=jkf3F28HJhjk998FJksBsFQfwrLn&browser=chrome"
def test_craft_app_link_strips_anchors():
join_link = "https://orgname.zoom.us/j/123456789?pwd=jkf3F28HJhjk998FJksBsFQfwrLn#success"
app_link = _craft_app_link(join_link=join_link)
assert app_link == "zoommtg://orgname.zoom.us/join?action=join&confno=123456789&pwd=jkf3F28HJhjk998FJksBsFQfwrLn&browser=chrome"
def test_craft_app_link_handles_errors():
join_link = "https://www.google.com"
app_link = _craft_app_link(join_link=join_link)
assert app_link is None
@pytest.mark.parametrize("delta,text", [
(timedelta(days=3), "Event in 3 days"),
(timedelta(hours=24), "Event in a day"),
(timedelta(hours=5), "Event in 5 hours"),
(timedelta(hours=1, minutes=30), "Event in 90 minutes"),
(timedelta(hours=1), "Event in 60 minutes"),
(timedelta(minutes=57), "Event in 57 minutes"),
(timedelta(minutes=2), "Event in 2 minutes"),
(timedelta(minutes=1), "Event in a minute"),
(timedelta(seconds=10), "Event in 10 seconds"),
(timedelta(seconds=3), "Event starts now"),
(timedelta(), "Event starts now"),
(timedelta(seconds=-10), "Event ends in 119 minutes"),
(timedelta(minutes=-1), "Event ends in 119 minutes"),
(timedelta(minutes=-2), "Event ends in 118 minutes"),
(timedelta(minutes=-57), "Event ends in 63 minutes"),
(timedelta(hours=-1), "Event ends in 60 minutes"),
(timedelta(hours=-1, minutes=-30), "Event ends in 30 minutes"),
(timedelta(hours=-1, minutes=-55), "Event ends in 5 minutes"),
(timedelta(hours=-1, minutes=-59), "Event ends in a minute"),
(timedelta(hours=-1, minutes=-59, seconds=-50), "Event ends in 10 seconds"),
(timedelta(hours=-1, minutes=-59, seconds=-55), "Event ends now"),
(timedelta(hours=-2), "Event ends now"),
])
def test_time_display(delta: timedelta, text: str):
now = arrow.utcnow()
event = CalendarEvent(
name="Event",
start=(now + delta).datetime,
end=(now + delta + timedelta(hours=2)).datetime,
join_link=None,
)
assert event.display == text