mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-24 18:09:41 -04:00
68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
from datetime import datetime
|
|
|
|
from app.dao.broadcast_message_dao import (
|
|
create_broadcast_provider_message,
|
|
get_earlier_events_for_broadcast_event,
|
|
)
|
|
from app.models import BROADCAST_TYPE, BroadcastEventMessageType
|
|
from tests.app.db import (
|
|
create_broadcast_event,
|
|
create_broadcast_message,
|
|
create_template,
|
|
)
|
|
|
|
|
|
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]]
|
|
|
|
|
|
def test_create_broadcast_provider_message_creates_in_correct_state(sample_broadcast_service):
|
|
t = create_template(sample_broadcast_service, BROADCAST_TYPE)
|
|
broadcast_message = create_broadcast_message(t)
|
|
broadcast_event = create_broadcast_event(
|
|
broadcast_message,
|
|
sent_at=datetime(2020, 1, 1, 12, 0, 0),
|
|
message_type=BroadcastEventMessageType.ALERT,
|
|
transmitted_content={'body': 'Initial content'}
|
|
)
|
|
|
|
broadcast_provider_message = create_broadcast_provider_message(broadcast_event, 'fake-provider')
|
|
|
|
assert broadcast_provider_message.status == 'sending'
|
|
assert broadcast_provider_message.broadcast_event_id == broadcast_event.id
|
|
assert broadcast_provider_message.created_at is not None
|
|
assert broadcast_provider_message.updated_at is None
|