class CrawlerTestCase(unittest.TestCase): def setUp(self): self.crawler = Crawler_quora() def tearDown(self): self.crawler = None def test_add_follower(self): self.assertFalse(self.crawler.add_follower(), 'add follower with empty information') self.assertFalse(self.crawler.add_follower(id='51248642'), 'add follower with wrong information') self.assertFalse(self.crawler.add_follower(user_name='wahahahah'), 'no such user') self.assertIsNotNone( self.crawler.add_follower(user_name='quan-zhang-27'), 'add follower with correct screen name') self.assertEqual(self.crawler.add_follower(user_name='quan-zhang-27'), 'quan-zhang-27', 'check return id if is equal to given correct id') def test_get_status(self): self.assertEqual(self.crawler.get_status(), [], 'get status with empty information') self.assertEqual(self.crawler.get_status(id='51248642'), [], 'get status with incorret information') self.assertEqual(self.crawler.get_status(user_name='wahahahah'), [], 'get status with wrong user name') self.assertNotEqual( len(self.crawler.get_status(user_name='quan-zhang-27')), 0, 'get status with correct screen name') self.assertNotEqual( len(self.crawler.get_status(user_name='Dan-holliday')), 0, 'get status with correct user name')
class CrawlerTestCase(unittest.TestCase): def setUp(self): self.crawler = Crawler_quora() def tearDown(self): self.crawler = None def test_add_follower(self): self.assertFalse(self.crawler.add_follower(), 'add follower with empty information') self.assertFalse(self.crawler.add_follower(id = '51248642'), 'add follower with wrong information') self.assertFalse(self.crawler.add_follower(user_name='wahahahah'), 'no such user') self.assertIsNotNone(self.crawler.add_follower(user_name='quan-zhang-27'), 'add follower with correct screen name') self.assertEqual(self.crawler.add_follower(user_name='quan-zhang-27'), 'quan-zhang-27', 'check return id if is equal to given correct id') def test_get_status(self): self.assertEqual(self.crawler.get_status(), [], 'get status with empty information') self.assertEqual(self.crawler.get_status(id = '51248642'), [], 'get status with incorret information') self.assertEqual(self.crawler.get_status(user_name='wahahahah'), [], 'get status with wrong user name') self.assertNotEqual(len(self.crawler.get_status(user_name='quan-zhang-27')), 0, 'get status with correct screen name') self.assertNotEqual(len(self.crawler.get_status(user_name='Dan-holliday')), 0, 'get status with correct user name')
def refresh_status(qr_act_list): qr_crawler = Crawler_quora() status_list = [] for act in qr_act_list: temp_list = qr_crawler.get_status(user_name=act.user_name) if temp_list: save_status(act, temp_list) status_list.extend(temp_list) if len(status_list) > 10: status_list = status_list[:10] for status in status_list: status['act_type'] = 'quora' return status_list
def is_update_quora(self, qraccount): if not qraccount: return False try: # max_id_status = TwStatus.objects.raw('select max(id) from ChasingSomeoneApp_twstatus') status = QrStatus.objects.all().aggregate(Max('time_stamp')) max_id_status = status['time_stamp__max'] except QrStatus.DoesNotExist: print 'Can not get status from TwStatus' max_id_status = None crawler = Crawler_quora() status_list = crawler.get_status(user_name=qraccount.user_name) if not status_list: print 'Can not get posts from user\'s homepage' return False try: if not self.update_quora_status(qraccount, status_list): return False except KeyError: print 'Error occured when updates quora status' return False return True
def is_update_quora(self, qraccount): if not qraccount: return False try: # max_id_status = TwStatus.objects.raw('select max(id) from ChasingSomeoneApp_twstatus') status = QrStatus.objects.all().aggregate(Max("time_stamp")) max_id_status = status["time_stamp__max"] except QrStatus.DoesNotExist: print "Can not get status from TwStatus" max_id_status = None crawler = Crawler_quora() status_list = crawler.get_status(user_name=qraccount.user_name) if not status_list: print "Can not get posts from user's homepage" return False try: if not self.update_quora_status(qraccount, status_list): return False except KeyError: print "Error occured when updates quora status" return False return True