def test_get_top(self): """ Test retrieval of first and last items from /top endpoint """ con = ApiConnector() top = con.get_top() self.assertTrue(len(top) == 500) item_0 = con.get_item(top[0]) self.assertTrue(con.is_api_item(item_0)) item_100 = con.get_item(top[-1]) self.assertTrue(con.is_api_item(item_100))
def main(logger, known_users): conn = ApiConnector() csvio = CsvIo() article_list = conn.get_top() stories = [] for i in article_list: try: story = conn.get_item(i) if (not conn.is_valid_item(story)) or ( not conn.is_story_item(story)): continue logger.debug(csvio.story_to_csv(story)) stories.append(story) except NetworkError as e: logger.exception(e) csvio.write_stories_csv(stories) for story in stories: try: conn.get_kids(story) except NetworkError as e: logger.exception(e) users = [] for u in sorted(conn.user_dict.keys()): if known_users.get(u) == None: logger.debug("Skipping get_user call for %s" % u) continue try: userjson = conn.get_user(u) users.append(userjson) except NetworkError as e: logger.exception(e) except RuntimeError as e: logger.exception(e) csvio.write_users_csv(users)
def main(logger, known_users): conn = ApiConnector() csvio = CsvIo() article_list = conn.get_top() stories = [] for i in article_list: try: story = conn.get_item(i) if (not conn.is_valid_item(story)) or (not conn.is_story_item(story)): continue logger.debug(csvio.story_to_csv(story)) stories.append(story) except NetworkError as e: logger.exception(e) csvio.write_stories_csv(stories) for story in stories: try: conn.get_kids(story) except NetworkError as e: logger.exception(e) users = [] for u in sorted(conn.user_dict.keys()): if known_users.get(u) == None: logger.debug("Skipping get_user call for %s" % u) continue try: userjson = conn.get_user(u) users.append(userjson) except NetworkError as e: logger.exception(e) except RuntimeError as e: logger.exception(e) csvio.write_users_csv(users)