Support broadcasts with no areas data

Previously we used to return an empty CustomBroadcastAreas object,
which doesn't make sense for broadcasts created in this app.
This commit is contained in:
Ben Thorner
2021-09-06 11:57:32 +01:00
parent 411fda81c0
commit baf20e0075
2 changed files with 10 additions and 4 deletions

View File

@@ -99,11 +99,16 @@ class BroadcastMessage(JSONModel):
) )
return library_areas return library_areas
polygons = self._dict['areas'].get('simple_polygons', [])
if polygons:
return CustomBroadcastAreas( return CustomBroadcastAreas(
names=self._dict['areas']['names'], names=self._dict['areas']['names'],
polygons=self._dict['areas']['simple_polygons'], polygons=polygons,
) )
return []
@property @property
def area_ids(self): def area_ids(self):
return self._dict['areas']['ids'] return self._dict['areas']['ids']

View File

@@ -41,6 +41,7 @@ def test_content_comes_from_attribute_not_template():
@pytest.mark.parametrize(('areas', 'expected_length'), [ @pytest.mark.parametrize(('areas', 'expected_length'), [
({'ids': []}, 0), ({'ids': []}, 0),
({'ids': ['wd20-E05009372']}, 1), ({'ids': ['wd20-E05009372']}, 1),
({'no data': 'just created'}, 0),
({'names': ['somewhere'], 'simple_polygons': [[[3.5, 1.5]]]}, 1) ({'names': ['somewhere'], 'simple_polygons': [[[3.5, 1.5]]]}, 1)
]) ])
def test_areas( def test_areas(