def GET(self): try: service = web.input(service=None)['service'] username = web.input(username=None)['username'] page = web.input(page=1)['page'] user_id = web.input(userid=None)['userid'] if not service: return render.favorites() if service in StackAuthDownloader.get_supported_services().keys: if username: match = re.search('.+\|(\d+)', username) if match: user_id = match.group(1) se_downloader = StackExchangeDownloader(service) if user_id: users = se_downloader.get_users_by_id(user_id) else: users = se_downloader.get_users(username) if len(users) > 1: return render.favorites_user_selection(users, service) elif len(users) == 1: user_id = users[0]['user_id'] result, pagination = se_downloader.get_favorites_questions( user_id, page) return render.favorites_stackexchange( users[0]['display_name'], user_id, result, service, pagination) else: return render.favorites(message=NOT_FOUND_ERROR) elif service == "delicious": try: delicious_downloader = DeliciousDownloader() result = delicious_downloader.get_favorites_questions( username) return render.favorites_delicious(username, result) except: return render.favorites(message=NOT_FOUND_ERROR) else: raise UnsupportedServiceError(service, UNSUPPORTED_SERVICE_ERROR) except (sepy.ApiRequestError, UnsupportedServiceError), exception: logging.error(exception) return render.oops(exception.message)
def GET(self): try: service = web.input(service = None)['service'] username = web.input(username = None)['username'] page = web.input(page = 1)['page'] user_id = web.input(userid = None)['userid'] if not service: return render.favorites() if service in StackAuthDownloader.get_supported_services().keys: if username: match = re.search('.+\|(\d+)', username) if match: user_id = match.group(1) se_downloader = StackExchangeDownloader(service) if user_id: users = se_downloader.get_users_by_id(user_id) else: users = se_downloader.get_users(username) if len(users) > 1: return render.favorites_user_selection(users, service) elif len(users) == 1: user_id = users[0]['user_id'] result, pagination = se_downloader.get_favorites_questions(user_id, page) return render.favorites_stackexchange(users[0]['display_name'], user_id, result, service, pagination) else: return render.favorites(message = NOT_FOUND_ERROR) elif service == "delicious": try: delicious_downloader = DeliciousDownloader() result = delicious_downloader.get_favorites_questions(username) return render.favorites_delicious(username, result) except: return render.favorites(message = NOT_FOUND_ERROR) else: raise UnsupportedServiceError( service, UNSUPPORTED_SERVICE_ERROR) except (sepy.ApiRequestError, UnsupportedServiceError), exception: logging.error(exception) return render.oops(exception.message)
class StackprinterDownloaderTestCase(unittest.TestCase): def setUp(self): self.spdownloader = StackExchangeDownloader('stackoverflow') #self.spdownloader.retriever = MockRetriever() #Comment to test ONLINE def test_get_question(self): assert self.spdownloader.get_question(9) is not None assert self.spdownloader.get_question(0) is None assert self.spdownloader.get_question(9)['creation_date'] == 1217547659 assert self.spdownloader.get_question(9)['title'] == "How do I calculate someone's age in C#?" def test_get_question_title(self): assert self.spdownloader.get_question_title(9)== "How do I calculate someone's age in C#?" assert self.spdownloader.get_question_title(0) is None def test_get_answer_quicklook(self): assert self.spdownloader.get_answer_quicklook(22) is not None assert self.spdownloader.get_answer_quicklook(22)['title'] != '' assert self.spdownloader.get_answer_quicklook(0) is None def test_get_questions_by_tags(self): assert len(self.spdownloader.get_questions_by_tags('python', 1)[0]) > 0 assert self.spdownloader.get_questions_by_tags('python', 1)[1].total > 0 assert len(self.spdownloader.get_questions_by_tags('atagthedoesnotexist', 1)[0]) == 0 assert self.spdownloader.get_questions_by_tags('atagthedoesnotexist', 1)[1].total == 0 assert self.spdownloader.get_questions_by_tags('python', 1)[0][0].question_id > 0 assert self.spdownloader.get_questions_by_tags('python', 1)[0][0].url.startswith('http') assert self.spdownloader.get_questions_by_tags('python', 1)[0][0].service != '' def test_get_questions_by_votes(self): assert len(self.spdownloader.get_questions_by_votes(page = 1)[0]) > 0 assert self.spdownloader.get_questions_by_votes(page = 1)[1].total > 0 assert self.spdownloader.get_questions_by_votes(page = 1)[0][0].question_id > 0 assert self.spdownloader.get_questions_by_votes(page = 1)[0][0].url.startswith('http') assert self.spdownloader.get_questions_by_votes(page = 1)[0][0].service != '' def test_get_answers(self): assert len(self.spdownloader.get_answers(656155)) == 3 assert self.spdownloader.get_answers(656155)[0]['title'] != '' assert len(self.spdownloader.get_answers(9033)) == 303 assert len(self.spdownloader.get_answers(656155)) == 3 assert len(self.spdownloader.get_answers(37671)) == 51 assert len(self.spdownloader.get_answers(209015)) == 49 assert len(self.spdownloader.get_answers(347584)) == 50 def test_get_users_by_id(self): assert len(self.spdownloader.get_users_by_id(130929)) == 1 assert self.spdownloader.get_users_by_id(130929)[0]['display_name'] == 'systempuntoout' def test_get_users(self): assert len(self.spdownloader.get_users('systempuntoout')) == 1 def test_get_favorites_questions(self): assert len(self.spdownloader.get_favorites_questions(130929, 1)[0]) > 0 assert self.spdownloader.get_favorites_questions(130929, 1)[0][0].title !='' assert self.spdownloader.get_favorites_questions(130929, 1)[1].total > 0 assert self.spdownloader.get_favorites_questions(130929, 1)[0][0].question_id > 0 assert self.spdownloader.get_favorites_questions(130929, 1)[0][0].url.startswith('http') assert self.spdownloader.get_favorites_questions(130929, 1)[0][0].service != '' def test_get_tags(self): assert len(self.spdownloader.get_tags('python')) > 0
class StackprinterDownloaderTestCase(unittest.TestCase): def setUp(self): self.spdownloader = StackExchangeDownloader('stackoverflow') #self.spdownloader.retriever = MockRetriever() #Comment to test ONLINE def test_get_question(self): assert self.spdownloader.get_question(9) is not None assert self.spdownloader.get_question(0) is None assert self.spdownloader.get_question(9)['creation_date'] == 1217547659 assert self.spdownloader.get_question( 9)['title'] == "How do I calculate someone's age in C#?" def test_get_question_title(self): assert self.spdownloader.get_question_title( 9) == "How do I calculate someone's age in C#?" assert self.spdownloader.get_question_title(0) is None def test_get_answer_quicklook(self): assert self.spdownloader.get_answer_quicklook(22) is not None assert self.spdownloader.get_answer_quicklook(22)['title'] != '' assert self.spdownloader.get_answer_quicklook(0) is None def test_get_questions_by_tags(self): assert len(self.spdownloader.get_questions_by_tags('python', 1)[0]) > 0 assert self.spdownloader.get_questions_by_tags('python', 1)[1].total > 0 assert len( self.spdownloader.get_questions_by_tags('atagthedoesnotexist', 1)[0]) == 0 assert self.spdownloader.get_questions_by_tags('atagthedoesnotexist', 1)[1].total == 0 assert self.spdownloader.get_questions_by_tags('python', 1)[0][0].question_id > 0 assert self.spdownloader.get_questions_by_tags( 'python', 1)[0][0].url.startswith('http') assert self.spdownloader.get_questions_by_tags('python', 1)[0][0].service != '' def test_get_questions_by_votes(self): assert len(self.spdownloader.get_questions_by_votes(page=1)[0]) > 0 assert self.spdownloader.get_questions_by_votes(page=1)[1].total > 0 assert self.spdownloader.get_questions_by_votes( page=1)[0][0].question_id > 0 assert self.spdownloader.get_questions_by_votes( page=1)[0][0].url.startswith('http') assert self.spdownloader.get_questions_by_votes( page=1)[0][0].service != '' def test_get_answers(self): assert len(self.spdownloader.get_answers(656155)) == 3 assert self.spdownloader.get_answers(656155)[0]['title'] != '' assert len(self.spdownloader.get_answers(9033)) == 303 assert len(self.spdownloader.get_answers(656155)) == 3 assert len(self.spdownloader.get_answers(37671)) == 51 assert len(self.spdownloader.get_answers(209015)) == 49 assert len(self.spdownloader.get_answers(347584)) == 50 def test_get_users_by_id(self): assert len(self.spdownloader.get_users_by_id(130929)) == 1 assert self.spdownloader.get_users_by_id( 130929)[0]['display_name'] == 'systempuntoout' def test_get_users(self): assert len(self.spdownloader.get_users('systempuntoout')) == 1 def test_get_favorites_questions(self): assert len(self.spdownloader.get_favorites_questions(130929, 1)[0]) > 0 assert self.spdownloader.get_favorites_questions(130929, 1)[0][0].title != '' assert self.spdownloader.get_favorites_questions(130929, 1)[1].total > 0 assert self.spdownloader.get_favorites_questions( 130929, 1)[0][0].question_id > 0 assert self.spdownloader.get_favorites_questions( 130929, 1)[0][0].url.startswith('http') assert self.spdownloader.get_favorites_questions(130929, 1)[0][0].service != '' def test_get_tags(self): assert len(self.spdownloader.get_tags('python')) > 0