def test_update_ok_with_radius_and_category_filtering( self, mock_session, mock_request): """Test updating feed is ok.""" mock_session.return_value.__enter__.return_value.send\ .return_value.ok = True mock_session.return_value.__enter__.return_value.send\ .return_value.text = load_fixture('generic_feed_1.xml') feed = MockGeoRssFeed(HOME_COORDINATES_2, None, filter_radius=90.0, filter_categories=['Category 2']) status, entries = feed.update() assert status == UPDATE_OK self.assertIsNotNone(entries) assert len(entries) == 1 self.assertAlmostEqual(entries[0].distance_to_home, 77.0, 1) feed = MockGeoRssFeed(HOME_COORDINATES_2, None, filter_radius=90.0, filter_categories=['Category 4']) status, entries = feed.update() assert status == UPDATE_OK self.assertIsNotNone(entries) assert len(entries) == 0
def test_update_ok_feed_3(self, mock_session, mock_request): """Test updating feed is ok.""" mock_session.return_value.__enter__.return_value.send\ .return_value.ok = True mock_session.return_value.__enter__.return_value.send\ .return_value.text = load_fixture('generic_feed_3.xml') feed = MockGeoRssFeed(HOME_COORDINATES_1, None) status, entries = feed.update() assert status == UPDATE_OK self.assertIsNotNone(entries) assert len(entries) == 3 feed_entry = entries[0] assert feed_entry.external_id == "1234" assert feed_entry.coordinates == (-34.93728111547821, 148.59710883878262) self.assertAlmostEqual(feed_entry.distance_to_home, 491.7, 1) feed_entry = entries[1] assert feed_entry.external_id == "2345" assert feed_entry.coordinates == (-34.937170989, 148.597182317) self.assertAlmostEqual(feed_entry.distance_to_home, 491.8, 1) feed_entry = entries[2] assert feed_entry.external_id == "3456" assert feed_entry.coordinates == (-29.962746645660683, 152.43090880416074) self.assertAlmostEqual(feed_entry.distance_to_home, 176.5, 1)
def test_update_error(self, mock_session, mock_request): """Test updating feed results in error.""" mock_session.return_value.__enter__.return_value.send.return_value.ok = False feed = MockGeoRssFeed(HOME_COORDINATES_1, None) status, entries = feed.update() assert status == UPDATE_ERROR
def test_update_bom(self, mock_session, mock_request): """Test updating feed with BOM (byte order mark) is ok.""" mock_session.return_value.__enter__.return_value.send.return_value.ok = True mock_session.return_value.__enter__.return_value.send.return_value.text = ( load_fixture("xml_parser_bom_1.xml")) feed = MockGeoRssFeed(HOME_COORDINATES_1, None) assert (repr(feed) == "<MockGeoRssFeed(home=(-31.0, 151.0), " "url=None, radius=None, categories=None)>") status, entries = feed.update() assert status == UPDATE_OK self.assertIsNotNone(entries) assert len(entries) == 0
def test_update_ok_with_radius_filtering(self, mock_session, mock_request): """Test updating feed is ok.""" mock_session.return_value.__enter__.return_value.send.return_value.ok = True mock_session.return_value.__enter__.return_value.send.return_value.text = ( load_fixture("generic_feed_1.xml")) feed = MockGeoRssFeed(HOME_COORDINATES_2, None, filter_radius=90.0) status, entries = feed.update() assert status == UPDATE_OK self.assertIsNotNone(entries) assert len(entries) == 4 self.assertAlmostEqual(entries[0].distance_to_home, 82.0, 1) self.assertAlmostEqual(entries[1].distance_to_home, 77.0, 1) self.assertAlmostEqual(entries[2].distance_to_home, 84.6, 1)
def test_update_ok_feed_2(self, mock_session, mock_request): """Test updating feed is ok.""" mock_session.return_value.__enter__.return_value.send.return_value.ok = True mock_session.return_value.__enter__.return_value.send.return_value.text = ( load_fixture("generic_feed_2.xml")) feed = MockGeoRssFeed(HOME_COORDINATES_1, None) status, entries = feed.update() assert status == UPDATE_OK self.assertIsNotNone(entries) assert len(entries) == 1 feed_entry = entries[0] assert feed_entry.title == "Title 1" assert feed_entry.external_id == "1234" assert feed_entry.category == "Category 1" assert feed_entry.coordinates == (-37.2345, 149.1234) self.assertAlmostEqual(feed_entry.distance_to_home, 714.4, 1)
def test_update_ok(self, mock_session, mock_request): """Test updating feed is ok.""" mock_session.return_value.__enter__.return_value.send\ .return_value.ok = True mock_session.return_value.__enter__.return_value.send\ .return_value.text = load_fixture('generic_feed_1.xml') feed = MockGeoRssFeed(HOME_COORDINATES_1, None) assert repr(feed) == "<MockGeoRssFeed(home=(-31.0, 151.0), " \ "url=None, radius=None, categories=None)>" status, entries = feed.update() assert status == UPDATE_OK self.assertIsNotNone(entries) assert len(entries) == 5 feed_entry = entries[0] assert feed_entry.title == "Title 1" assert feed_entry.external_id == "1234" assert feed_entry.category == "Category 1" assert feed_entry.published == datetime.datetime(2018, 9, 23, 8, 30) assert feed_entry.updated == datetime.datetime(2018, 9, 23, 8, 35) assert feed_entry.coordinates == (-37.2345, 149.1234) self.assertAlmostEqual(feed_entry.distance_to_home, 714.4, 1) feed_entry = entries[1] assert feed_entry.title == "Title 2" assert feed_entry.external_id == "2345" self.assertIsNone(feed_entry.attribution) assert repr(feed_entry) == "<FeedEntry(id=2345)>" feed_entry = entries[2] assert feed_entry.title == "Title 3" assert feed_entry.external_id == "Title 3" feed_entry = entries[3] self.assertIsNone(feed_entry.title) assert feed_entry.external_id == -7266545992534134585 feed_entry = entries[4] assert feed_entry.title == "Title 5" assert feed_entry.external_id == "5678"