mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-26 21:31:11 -05:00
We should assume to start with that areas come either from the library or from the JSON, and not a combination of the two.
71 lines
1.9 KiB
Python
71 lines
1.9 KiB
Python
import pytest
|
|
|
|
from app.models.broadcast_message import BroadcastMessage
|
|
from tests import broadcast_message_json
|
|
|
|
|
|
def test_simple_polygons(fake_uuid):
|
|
broadcast_message = BroadcastMessage(broadcast_message_json(
|
|
id_=fake_uuid,
|
|
service_id=fake_uuid,
|
|
template_id=fake_uuid,
|
|
status='draft',
|
|
created_by_id=fake_uuid,
|
|
areas=[
|
|
# Hackney Central
|
|
'wd20-E05009372',
|
|
# Hackney Wick
|
|
'wd20-E05009374',
|
|
],
|
|
))
|
|
|
|
assert [
|
|
[
|
|
len(polygon)
|
|
for polygon in broadcast_message.polygons.as_coordinate_pairs_lat_long
|
|
],
|
|
[
|
|
len(polygon)
|
|
for polygon in broadcast_message.simple_polygons.as_coordinate_pairs_lat_long
|
|
],
|
|
] == [
|
|
# One polygon for each area
|
|
[27, 31],
|
|
# Because the areas are close to each other, the simplification
|
|
# and unioning process results in a single polygon with fewer
|
|
# total coordinates
|
|
[51],
|
|
]
|
|
|
|
|
|
def test_content_comes_from_attribute_not_template(fake_uuid):
|
|
broadcast_message = BroadcastMessage(broadcast_message_json(
|
|
id_=fake_uuid,
|
|
service_id=fake_uuid,
|
|
template_id=fake_uuid,
|
|
status='draft',
|
|
created_by_id=fake_uuid,
|
|
))
|
|
assert broadcast_message.content == 'This is a test'
|
|
|
|
|
|
def test_raises_for_missing_areas(fake_uuid):
|
|
broadcast_message = BroadcastMessage(broadcast_message_json(
|
|
id_=fake_uuid,
|
|
service_id=fake_uuid,
|
|
template_id=fake_uuid,
|
|
status='draft',
|
|
created_by_id=fake_uuid,
|
|
areas=[
|
|
'wd20-E05009372',
|
|
'something else',
|
|
],
|
|
))
|
|
|
|
with pytest.raises(RuntimeError) as exception:
|
|
broadcast_message.areas
|
|
|
|
assert str(exception.value) == (
|
|
'BroadcastMessage has 2 areas but 1 found in the library'
|
|
)
|