mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-05 02:41:14 -05:00
add tests for get_earlier_events_for_broadcast_event
This commit is contained in:
@@ -30,14 +30,15 @@ def dao_get_broadcast_messages_for_service(service_id):
|
|||||||
).order_by(BroadcastMessage.created_at)
|
).order_by(BroadcastMessage.created_at)
|
||||||
|
|
||||||
|
|
||||||
def dao_get_earlier_events_for_broadcast_event(broadcast_event_id):
|
def get_earlier_events_for_broadcast_event(broadcast_event_id):
|
||||||
"""
|
"""
|
||||||
This is used to build up the references list.
|
This is used to build up the references list.
|
||||||
"""
|
"""
|
||||||
this_event = BroadcastEvent.query.get(broadcast_event_id)
|
this_event = BroadcastEvent.query.get(broadcast_event_id)
|
||||||
|
|
||||||
return BroadcastEvent.query.filter(
|
return BroadcastEvent.query.filter(
|
||||||
BroadcastEvent.broadcast_message_id == this_event.id,
|
BroadcastEvent.broadcast_message_id == this_event.broadcast_message_id,
|
||||||
BroadcastEvent.sent_at < this_event.sent_at
|
BroadcastEvent.sent_at < this_event.sent_at
|
||||||
).order_by(
|
).order_by(
|
||||||
BroadcastEvent.sent_at.asc()
|
BroadcastEvent.sent_at.asc()
|
||||||
)
|
).all()
|
||||||
|
|||||||
43
tests/app/dao/test_broadcast_message_dao.py
Normal file
43
tests/app/dao/test_broadcast_message_dao.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
from app.models import BROADCAST_TYPE
|
||||||
|
from app.models import BroadcastEventMessageType
|
||||||
|
from app.dao.broadcast_message_dao import get_earlier_events_for_broadcast_event
|
||||||
|
|
||||||
|
from tests.app.db import create_broadcast_message, create_template, create_broadcast_event
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_earlier_events_for_broadcast_event(sample_service):
|
||||||
|
t = create_template(sample_service, BROADCAST_TYPE)
|
||||||
|
bm = create_broadcast_message(t)
|
||||||
|
|
||||||
|
events = [
|
||||||
|
create_broadcast_event(
|
||||||
|
bm,
|
||||||
|
sent_at=datetime(2020, 1, 1, 12, 0, 0),
|
||||||
|
message_type=BroadcastEventMessageType.ALERT,
|
||||||
|
transmitted_content={'body': 'Initial content'}
|
||||||
|
),
|
||||||
|
create_broadcast_event(
|
||||||
|
bm,
|
||||||
|
sent_at=datetime(2020, 1, 1, 13, 0, 0),
|
||||||
|
message_type=BroadcastEventMessageType.UPDATE,
|
||||||
|
transmitted_content={'body': 'Updated content'}
|
||||||
|
),
|
||||||
|
create_broadcast_event(
|
||||||
|
bm,
|
||||||
|
sent_at=datetime(2020, 1, 1, 14, 0, 0),
|
||||||
|
message_type=BroadcastEventMessageType.UPDATE,
|
||||||
|
transmitted_content={'body': 'Updated content'},
|
||||||
|
transmitted_areas=['wales']
|
||||||
|
),
|
||||||
|
create_broadcast_event(
|
||||||
|
bm,
|
||||||
|
sent_at=datetime(2020, 1, 1, 15, 0, 0),
|
||||||
|
message_type=BroadcastEventMessageType.CANCEL,
|
||||||
|
transmitted_finishes_at=datetime(2020, 1, 1, 15, 0, 0),
|
||||||
|
)
|
||||||
|
]
|
||||||
|
|
||||||
|
# only fetches earlier events, and they're in time order
|
||||||
|
earlier_events = get_earlier_events_for_broadcast_event(events[2].id)
|
||||||
|
assert earlier_events == [events[0], events[1]]
|
||||||
@@ -62,6 +62,7 @@ from app.models import (
|
|||||||
ServiceContactList,
|
ServiceContactList,
|
||||||
BroadcastMessage,
|
BroadcastMessage,
|
||||||
BroadcastStatusType,
|
BroadcastStatusType,
|
||||||
|
BroadcastEvent
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -1021,3 +1022,29 @@ def create_broadcast_message(
|
|||||||
db.session.add(broadcast_message)
|
db.session.add(broadcast_message)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
return broadcast_message
|
return broadcast_message
|
||||||
|
|
||||||
|
|
||||||
|
def create_broadcast_event(
|
||||||
|
broadcast_message,
|
||||||
|
sent_at=None,
|
||||||
|
message_type='alert',
|
||||||
|
transmitted_content=None,
|
||||||
|
transmitted_areas=None,
|
||||||
|
transmitted_sender=None,
|
||||||
|
transmitted_starts_at=None,
|
||||||
|
transmitted_finishes_at=None,
|
||||||
|
):
|
||||||
|
b_e = BroadcastEvent(
|
||||||
|
service=broadcast_message.service,
|
||||||
|
broadcast_message=broadcast_message,
|
||||||
|
sent_at=sent_at or datetime.utcnow(),
|
||||||
|
message_type=message_type,
|
||||||
|
transmitted_content=transmitted_content or {'body': 'this is an emergency broadcast message'},
|
||||||
|
transmitted_areas=transmitted_areas or ['london'],
|
||||||
|
transmitted_sender=transmitted_sender or 'www.notifications.service.gov.uk',
|
||||||
|
transmitted_starts_at=transmitted_starts_at,
|
||||||
|
transmitted_finishes_at=transmitted_finishes_at,
|
||||||
|
)
|
||||||
|
db.session.add(b_e)
|
||||||
|
db.session.commit()
|
||||||
|
return b_e
|
||||||
|
|||||||
Reference in New Issue
Block a user