Skip to content

Commit 3ec5f37

Browse files
committed
add: minor changes
1 parent e0c75f5 commit 3ec5f37

File tree

6 files changed

+38
-25
lines changed

6 files changed

+38
-25
lines changed

app/routers/event.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,4 @@ def sort_by_date(events: List[Event]) -> List[Event]:
5151
"""Sorts the events by the start of the event."""
5252

5353
temp = events.copy()
54-
temp.sort(key=attrgetter('start'))
55-
return temp
54+
return sorted(temp, key=attrgetter('start'))

app/routers/share.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import List, Dict, Union
1+
from typing import List, Dict
22

33
from sqlalchemy.orm import Session
44

@@ -18,30 +18,33 @@ def sort_emails(
1818
for participant in participants:
1919

2020
if does_user_exist(email=participant, session=session):
21-
emails['registered'].append(participant)
21+
temp: list = emails['registered']
2222
else:
23-
emails['unregistered'].append(participant)
23+
temp: list = emails['unregistered']
24+
25+
temp.append(participant)
2426

2527
return emails
2628

2729

2830
def send_email_invitation(
2931
participants: List[str],
3032
event: Event,
31-
):
33+
) -> bool:
3234
"""Sends an email with an invitation."""
3335

3436
ical_invitation = event_to_ical(event, participants) # noqa: F841
3537
for _ in participants:
3638
# TODO: send email
3739
pass
40+
return True
3841

3942

4043
def send_in_app_invitation(
4144
participants: List[str],
4245
event: Event,
4346
session: Session
44-
) -> Union[bool, None]:
47+
) -> bool:
4548
"""Sends an in-app invitation for registered users."""
4649

4750
for participant in participants:
@@ -53,8 +56,7 @@ def send_in_app_invitation(
5356

5457
else:
5558
# if user tries to send to themselves.
56-
session.rollback()
57-
return None
59+
return False
5860

5961
session.commit()
6062
return True
@@ -74,12 +76,14 @@ def accept(invitation: Invitation, session: Session) -> None:
7476
save(association, session=session)
7577

7678

77-
def share(event: Event, participants: List[str], session: Session) -> None:
79+
def share(event: Event, participants: List[str], session: Session) -> bool:
7880
"""Sends invitations to all event participants."""
7981

8082
registered, unregistered = (
8183
sort_emails(participants, session=session).values()
8284
)
85+
if send_email_invitation(unregistered, event):
86+
if send_in_app_invitation(registered, event, session):
87+
return True
88+
return False
8389

84-
send_in_app_invitation(registered, event, session)
85-
send_email_invitation(unregistered, event)

app/routers/user.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,7 @@ def does_user_exist(
5050
def get_all_user_events(session: Session, user_id: int) -> List[Event]:
5151
"""Returns all events that the user participants in."""
5252

53-
associations = (
54-
session.query(UserEvent)
55-
.filter(UserEvent.user_id == user_id)
56-
.all()
53+
return (
54+
session.query(Event).join(UserEvent)
55+
.filter(UserEvent.user_id == user_id).all()
5756
)
58-
return [association.events for association in associations]

tests/test_event.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
1+
from starlette.status import HTTP_404_NOT_FOUND
2+
3+
14
class TestEvent:
25

36
def test_eventedit(self, client):
47
response = client.get("/event/edit")
5-
assert response.status_code == 200
8+
assert response.ok
69
assert b"Edit Event" in response.content
710

811
def test_eventview_with_id(self, client):
912
response = client.get("/event/view/1")
10-
assert response.status_code == 200
13+
assert response.ok
1114
assert b"View Event" in response.content
1215

1316
def test_eventview_without_id(self, client):
1417
response = client.get("/event/view")
15-
assert response.status_code == 404
18+
assert response.status_code == HTTP_404_NOT_FOUND
1619

1720
def test_repr(self, event):
1821
assert event.__repr__() == f'<Event {event.id}>'

tests/test_invitation.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from starlette.status import HTTP_302_FOUND
12
from app.routers.invitation import get_all_invitations, get_invitation_by_id
23

34

@@ -7,7 +8,7 @@ class TestInvitations:
78

89
def test_view_no_invitations(self, invitation_test_client):
910
resp = invitation_test_client.get(self.URL)
10-
assert resp.status_code == 200
11+
assert resp.ok
1112
assert self.NO_INVITATIONS in resp.content
1213

1314
def test_accept_invitations(
@@ -16,7 +17,7 @@ def test_accept_invitations(
1617
invitation = {"invite_id ": invitation.id}
1718
resp = invitation_test_client.post(
1819
self.URL, data=invitation)
19-
assert resp.status_code == 302
20+
assert resp.status_code == HTTP_302_FOUND
2021

2122
def test_get_all_invitations_success(
2223
self, invitation, event, user, session

tests/test_share_event.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,22 @@
66

77
class TestShareEvent:
88

9-
def test_share(self, user, event, session):
9+
def test_share_success(self, user, event, session):
1010
participants = [user.email]
1111
share(event, participants, session)
1212
invitations = get_all_invitations(
1313
session=session, recipient_id=user.id
1414
)
1515
assert invitations != []
1616

17+
def test_share_failure(self, event, session):
18+
participants = [event.owner.email]
19+
share(event, participants, session)
20+
invitations = get_all_invitations(
21+
session=session, recipient_id=event.owner.id
22+
)
23+
assert invitations == []
24+
1725
def test_sort_emails(self, user, session):
1826
# the user is being imported
1927
# so he will be created
@@ -30,7 +38,7 @@ def test_sort_emails(self, user, session):
3038
def test_send_in_app_invitation_success(
3139
self, user, sender, event, session
3240
):
33-
send_in_app_invitation([user.email], event, session=session)
41+
assert send_in_app_invitation([user.email], event, session=session)
3442
invitation = get_all_invitations(session=session, recipient=user)[0]
3543
assert invitation.event.owner == sender
3644
assert invitation.recipient == user
@@ -39,7 +47,7 @@ def test_send_in_app_invitation_success(
3947
def test_send_in_app_invitation_failure(
4048
self, user, sender, event, session):
4149
assert (send_in_app_invitation(
42-
[sender.email], event, session=session) is None)
50+
[sender.email], event, session=session) is False)
4351

4452
def test_send_email_invitation(self, user, event):
4553
send_email_invitation([user.email], event)

0 commit comments

Comments
 (0)