Skip to content

Commit

Permalink
Merge 6c7b6e8 into 59fde5a
Browse files Browse the repository at this point in the history
  • Loading branch information
exxamalte committed Nov 1, 2020
2 parents 59fde5a + 6c7b6e8 commit bd791de
Show file tree
Hide file tree
Showing 6 changed files with 34 additions and 33 deletions.
3 changes: 0 additions & 3 deletions aio_georss_client/feed_manager.py
Expand Up @@ -52,9 +52,6 @@ async def update(self):
await self._store_feed_entries(status, feed_entries)
if status == UPDATE_OK:
_LOGGER.debug("Data retrieved %s", feed_entries)
# Keep a copy of all feed entries for future lookups by entities.
self.feed_entries = {entry.external_id: entry
for entry in feed_entries}
# Record current time of update.
self._last_update_successful = self._last_update
# For entity management the external ids from the feed are used.
Expand Down
2 changes: 1 addition & 1 deletion aio_georss_client/xml_parser/geometry.py
Expand Up @@ -90,7 +90,7 @@ def centroid(self) -> Point:
latitude = sum(latitudes_list) / number_of_points
return Point(latitude, longitude)

def is_inside(self, point: Point) -> bool:
def is_inside(self, point: Optional[Point]) -> bool:
"""Check if the provided point is inside this polygon."""
if point:
crossings = 0
Expand Down
3 changes: 3 additions & 0 deletions tests/__init__.py
Expand Up @@ -5,6 +5,9 @@
from aio_georss_client.feed_entry import FeedEntry
from aio_georss_client.xml_parser.feed_item import FeedItem

MOCK_HOME_COORDINATES = (0.0, 0.0)
MOCK_FEED_ITEM = FeedItem({})


class MockFeedEntry(FeedEntry):
"""Generic feed entry."""
Expand Down
9 changes: 5 additions & 4 deletions tests/test_feed_entry.py
Expand Up @@ -2,14 +2,15 @@
import datetime
from unittest import mock

from tests import MockFeedEntry, MockSimpleFeedEntry
from tests import MockFeedEntry, MockSimpleFeedEntry, MOCK_HOME_COORDINATES, \
MOCK_FEED_ITEM


def test_simple_feed_entry():
"""Test feed entry behaviour."""
feed_entry = MockSimpleFeedEntry(None, None)
feed_entry = MockSimpleFeedEntry(MOCK_HOME_COORDINATES, MOCK_FEED_ITEM)
assert repr(feed_entry) == "<MockSimpleFeedEntry(id=mock id)>"
assert feed_entry.geometries is None
assert feed_entry.geometries == []
assert feed_entry.coordinates is None
assert feed_entry.title == "mock title"
assert feed_entry.external_id == "mock id"
Expand Down Expand Up @@ -44,7 +45,7 @@ def test_feed_entry_search_in_attributes():
tzinfo=datetime.timezone.utc)
type(rss_entry).updated_date = mock.PropertyMock(return_value=updated)

feed_entry = MockFeedEntry(None, rss_entry)
feed_entry = MockFeedEntry(MOCK_HOME_COORDINATES, rss_entry)
assert repr(feed_entry) == "<MockFeedEntry(id=Test 123)>"

assert feed_entry._search_in_external_id(
Expand Down
12 changes: 6 additions & 6 deletions tests/test_feed_manager.py
Expand Up @@ -36,17 +36,17 @@ async def test_feed_manager(aresponses, event_loop):
updated_entity_external_ids = []
removed_entity_external_ids = []

async def _generate_entity(external_id: str) -> None:
async def _generate_entity(entity_external_id: str) -> None:
"""Generate new entity."""
generated_entity_external_ids.append(external_id)
generated_entity_external_ids.append(entity_external_id)

async def _update_entity(external_id: str) -> None:
async def _update_entity(entity_external_id: str) -> None:
"""Update entity."""
updated_entity_external_ids.append(external_id)
updated_entity_external_ids.append(entity_external_id)

async def _remove_entity(external_id: str) -> None:
async def _remove_entity(entity_external_id: str) -> None:
"""Remove entity."""
removed_entity_external_ids.append(external_id)
removed_entity_external_ids.append(entity_external_id)

feed_manager = FeedManagerBase(
feed,
Expand Down
38 changes: 19 additions & 19 deletions tests/test_georss_distance_helper.py
Expand Up @@ -39,15 +39,15 @@ def test_extract_coordinates_from_unsupported_geometry(self):

def test_distance_to_point(self):
"""Test calculating distance to point."""
home_coordinates = [-31.0, 150.0]
home_coordinates = (-31.0, 150.0)
mock_point = Point(-30.0, 151.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_point)
self.assertAlmostEqual(distance, 146.8, 1)

def test_distance_to_polygon_1(self):
"""Test calculating distance to polygon."""
home_coordinates = [-31.0, 150.0]
home_coordinates = (-31.0, 150.0)
mock_polygon = Polygon([Point(-30.0, 151.0),
Point(-30.0, 151.5),
Point(-30.5, 151.5),
Expand All @@ -59,7 +59,7 @@ def test_distance_to_polygon_1(self):

def test_distance_to_polygon_2(self):
"""Test calculating distance to polygon."""
home_coordinates = [-30.2, 151.2]
home_coordinates = (-30.2, 151.2)
mock_polygon = Polygon([Point(-30.0, 151.0),
Point(-30.0, 151.5),
Point(-30.5, 151.5),
Expand All @@ -71,7 +71,7 @@ def test_distance_to_polygon_2(self):

def test_distance_to_polygon_3(self):
"""Test calculating distance to polygon."""
home_coordinates = [-29.0, 151.2]
home_coordinates = (-29.0, 151.2)
mock_polygon = Polygon([Point(-30.0, 151.0),
Point(-30.0, 151.5),
Point(-30.5, 151.5),
Expand All @@ -83,7 +83,7 @@ def test_distance_to_polygon_3(self):

def test_distance_to_polygon_4(self):
"""Test calculating distance to polygon."""
home_coordinates = [30.0, 151.3]
home_coordinates = (30.0, 151.3)
mock_polygon = Polygon([Point(30.0, 151.0),
Point(30.0, 151.5),
Point(30.5, 151.5),
Expand All @@ -100,19 +100,19 @@ def test_distance_to_polygon_5(self):
Point(30.5, -179.5),
Point(30.5, 179.0),
Point(30.0, 179.0)])
home_coordinates = [30.2, -177.0]
home_coordinates = (30.2, -177.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 240.3, 1)
home_coordinates = [30.1, 178.0]
home_coordinates = (30.1, 178.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 96.2, 1)
home_coordinates = [31.0, -179.8]
home_coordinates = (31.0, -179.8)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 55.6, 1)
home_coordinates = [31.0, 179.8]
home_coordinates = (31.0, 179.8)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 55.6, 1)
Expand All @@ -124,26 +124,26 @@ def test_distance_to_polygon_6(self):
Point(-29.5, -179.5),
Point(-29.5, 179.0),
Point(-30.0, 179.0)])
home_coordinates = [-29.8, -177.0]
home_coordinates = (-29.8, -177.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 241.2, 1)
home_coordinates = [-29.9, 178.0]
home_coordinates = (-29.9, 178.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 96.4, 1)
home_coordinates = [-29.0, -179.8]
home_coordinates = (-29.0, -179.8)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 55.6, 1)
home_coordinates = [-29.0, 179.8]
home_coordinates = (-29.0, 179.8)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_polygon)
self.assertAlmostEqual(distance, 55.6, 1)

def test_distance_to_bbox_1(self):
"""Test calculating distance to bounding box."""
home_coordinates = [20.0, 20.0]
home_coordinates = (20.0, 20.0)
# 1. inside
mock_bbox = BoundingBox(Point(10.0, 10.0),
Point(30.0, 30.0))
Expand Down Expand Up @@ -199,7 +199,7 @@ def test_distance_to_bbox_1(self):
distance_to_geometry(home_coordinates, mock_bbox)
self.assertAlmostEqual(distance, 756.8, 1)
# special case
home_coordinates = [-20.0, -20.0]
home_coordinates = (-20.0, -20.0)
mock_bbox = BoundingBox(Point(-30.0, -15.0),
Point(-25.0, -10.0))
distance = GeoRssDistanceHelper.\
Expand All @@ -211,24 +211,24 @@ def test_distance_to_bbox_2(self):
mock_bbox = BoundingBox(Point(5.0, 175.0),
Point(15.0, -175.0))
# 1. inside
home_coordinates = [5.0, 176.0]
home_coordinates = (5.0, 176.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_bbox)
self.assertAlmostEqual(distance, 0.0, 1)
# 2. above-left
home_coordinates = [20.0, 170.0]
home_coordinates = (20.0, 170.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_bbox)
self.assertAlmostEqual(distance, 768.1, 1)
# 3. above-right
home_coordinates = [20.0, -170.0]
home_coordinates = (20.0, -170.0)
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_bbox)
self.assertAlmostEqual(distance, 768.1, 1)

def test_distance_to_unsupported_geometry(self):
"""Test calculating distance to unsupported geometry."""
home_coordinates = [-31.0, 150.0]
home_coordinates = (-31.0, 150.0)
mock_unsupported_geometry = MagicMock()
distance = GeoRssDistanceHelper.\
distance_to_geometry(home_coordinates, mock_unsupported_geometry)
Expand Down

0 comments on commit bd791de

Please sign in to comment.