def test_fetch(self, mock_utcnow): """Test whether it fetches data from the Google Search API""" mock_utcnow.return_value = datetime.datetime(2017, 1, 1, tzinfo=dateutil.tz.tzutc()) setup_http_server() backend = GoogleHits(['bitergia']) items = [item for item in backend.fetch()] self.assertEqual(len(items), 1) item = items[0] self.assertEqual(item['data']['fetched_on'], 1483228800.0) self.assertEqual(item['data']['id'], '18e8f9809f9c539bfe0ac5ad2724323873931825') self.assertEqual(item['data']['keywords'], ['bitergia']) self.assertEqual(item['uuid'], '119b60909d6560e2d22a579404c30c98f5cdc33d') self.assertEqual(item['origin'], 'https://www.google.com/search') self.assertEqual(item['updated_on'], 1483228800.0) self.assertEqual(item['category'], CATEGORY_HITS) self.assertEqual(item['tag'], 'https://www.google.com/search') backend = GoogleHits(['bitergia', 'grimoirelab']) items = [item for item in backend.fetch()] self.assertEqual(len(items), 1) item = items[0] self.assertEqual(item['data']['fetched_on'], 1483228800.0) self.assertEqual(item['data']['id'], '2aaa5f3ab512ca6c451cb3c21c77da3d4510f75c') self.assertEqual(item['data']['keywords'], ['bitergia', 'grimoirelab']) self.assertEqual(item['uuid'], '3a83dfa224891986d091e708a2afd165df59576b') self.assertEqual(item['origin'], 'https://www.google.com/search') self.assertEqual(item['updated_on'], 1483228800.0) self.assertEqual(item['category'], CATEGORY_HITS) self.assertEqual(item['tag'], 'https://www.google.com/search')
def test_fetch_no_hits(self, mock_utcnow): """Test whether it handles queries which have no hits""" mock_utcnow.return_value = datetime.datetime( 2017, 1, 1, tzinfo=dateutil.tz.tzutc()) setup_http_server(no_hits=True) backend = GoogleHits(['bitergia']) with self.assertLogs() as cm: items = [item for item in backend.fetch()] self.assertEqual( cm.output[-2], "WARNING:perceval.backends.core.googlehits:No hits for ['bitergia']" ) self.assertEqual(len(items), 1) item = items[0] self.assertEqual(item['data']['fetched_on'], 1483228800.0) self.assertEqual(item['data']['id'], '18e8f9809f9c539bfe0ac5ad2724323873931825') self.assertEqual(item['data']['hits'], 0) self.assertEqual(item['data']['keywords'], ['bitergia']) self.assertEqual(item['uuid'], '119b60909d6560e2d22a579404c30c98f5cdc33d') self.assertEqual(item['origin'], 'https://www.google.com/search') self.assertEqual(item['updated_on'], 1483228800.0) self.assertEqual(item['category'], CATEGORY_HITS) self.assertEqual(item['tag'], 'https://www.google.com/search')
def test_search_fields(self, mock_utcnow): """Test whether the search_fields is properly set""" mock_utcnow.return_value = datetime.datetime( 2017, 1, 1, tzinfo=dateutil.tz.tzutc()) setup_http_server() backend = GoogleHits(['bitergia']) items = [item for item in backend.fetch()] item = items[0] self.assertEqual(backend.metadata_id(item['data']), item['search_fields']['item_id']) self.assertListEqual(item['data']['keywords'], ['bitergia']) self.assertListEqual(item['data']['keywords'], item['search_fields']['keywords'])