class TestParselyBindings(unittest.TestCase): def setUp(self): self.apikey = 'arstechnica.com' self.uuid = 'user%d' % random.randint(1000, 9999) self.p = parsely.Parsely(self.apikey, secrets[self.apikey]) self.train_link = 'http://arstechnica.com/gadgets/2013/04/tunein-radio-app-update-makes-it-easier-for-users-to-discover-new-music/' self.user = User(self.p, self.uuid) def test_train(self): t = self.user.train(self.train_link) self.assertEquals(t, True) def handle_train(res): self.assertEquals(res, True) self.user.train(self.train_link, _callback=handle_train) h = self.user.history() self.assertEquals(h['uuid'], self.uuid) self.assertIn(self.train_link, h['urls']) def handle_history(res): self.assertEquals(res['uuid'], self.uuid) self.assertIn(self.train_link, res['urls']) self.user.history(_callback=handle_history) def test_related_user(self): r = self.user.related() self.assertTrue(r[3].title != "") def handle(res): self.assertTrue(res[3].title != "") self.user.related(_callback=handle) def test_related_url(self): r = self.p.related(self.train_link) self.assertTrue(r[3].title != "") def handle(res): self.assertTrue(res[3].title != "") self.p.related(self.train_link, _callback=handle) def test_search(self): s = self.p.search("security", limit=4) self.assertTrue(s[3].title != "") def handle(res): self.assertTrue(res[3].title != "") self.p.search("security", limit=4, _callback=handle) def test_realtime(self): r = self.p.realtime(limit=4) self.assertTrue(r[3].title != "") self.assertTrue(len(r) == 4) def handle(res): self.assertTrue(res[3].title != "") self.assertTrue(len(res) == 4) self.p.realtime(limit=4, _callback=handle) def test_shares(self): s = self.p.shares(aspect="authors") self.assertTrue(s[3].name != "") def handle(res): self.assertTrue(res[3].name != "") self.p.shares(aspect="authors", _callback=handle) def test_shares_detail(self): s = self.p.shares(post=self.train_link) self.assertTrue(s.total > 0) def handle(res): self.assertTrue(res.total > 0) self.p.shares(post=self.train_link, _callback=handle) def test_referrers_post_detail(self): r = self.p.referrers_post_detail('http://arstechnica.com/information-technology/2013/04/memory-that-never-forgets-non-volatile-dimms-hit-the-market/') self.assertTrue(r[0].hits > 0) def handle(res): self.assertTrue(res[0].hits > 0) self.p.referrers_post_detail('http://arstechnica.com/information-technology/2013/04/memory-that-never-forgets-non-volatile-dimms-hit-the-market/', _callback=handle) def test_referrers_meta_detail(self): r = self.p.referrers_meta_detail('Ars Staff', meta="author") self.assertEquals(r[3].author, "Ars Staff") def handle(res): self.assertEquals(res[3].author, "Ars Staff") self.p.referrers_meta_detail('Ars Staff', meta="author", _callback=handle) def test_referrers_meta(self): r = self.p.referrers_meta() self.assertTrue(r[0].hits > 0) def handle(res): self.assertTrue(res[0].hits > 0) self.p.referrers_meta(_callback=handle) def test_referrers(self): r = self.p.referrers(tag='copyright') self.assertTrue(r[2].hits > 0) self.assertTrue(r[2].ref_type == 'social') def handle(res): self.assertTrue(res[2].hits > 0) self.assertTrue(res[2].ref_type == 'social') self.p.referrers(tag='copyright', _callback=handle) def test_meta_detail(self): r = self.p.meta_detail('Technology Lab', aspect="section") self.assertEquals(r[3].section, "Technology Lab") def handle(res): self.assertEquals(res[3].section, "Technology Lab") self.p.meta_detail('Technology Lab', aspect="section", _callback=handle) def test_post_detail(self): r = self.p.post_detail('http://arstechnica.com/science/2013/04/inside-science-selling-and-upsizing-the-meal/') self.assertTrue(r.title == "Inside science: Selling and upsizing the meal") def handle(res): self.assertTrue(res.title == "Inside science: Selling and upsizing the meal") self.p.post_detail('http://arstechnica.com/science/2013/04/inside-science-selling-and-upsizing-the-meal/', _callback=handle) def test_analytics(self): r = self.p.analytics(aspect="authors") self.assertTrue(r[7].hits > 0) def handle(res): self.assertTrue(res[7].hits > 0) self.p.analytics(aspect="authors", _callback=handle) def test_analytics_one_pubdate(self): with self.assertRaises(ValueError): self.p.analytics(aspect="authors", pub_start=datetime(2013, 10, 01)) def test_invalid_aspect(self): """when passed an invalid aspect, parsely should not return""" r = "sentinel" try: r = self.p.meta_detail('unimportant', aspect="post") except: pass self.assertTrue(r == "sentinel") def test_invalid_ref_type(self): """when passed an invalid referrer type, parsely should not return""" r = "sentinel" try: r = self.p.referrers_meta(ref_type="fgsfds") except: pass self.assertTrue(r == "sentinel")
class TestParselyBindings(unittest.TestCase): def setUp(self): self.apikey = 'arstechnica.com' self.uuid = 'user%d' % random.randint(1000, 9999) self.p = parsely.Parsely(self.apikey, secrets[self.apikey]) self.train_link = 'http://arstechnica.com/gadgets/2013/04/tunein-radio-app-update-makes-it-easier-for-users-to-discover-new-music/' self.user = User(self.p, self.uuid) def test_train(self): t = self.user.train(self.train_link) self.assertEquals(t, True) def handle_train(res): self.assertEquals(res, True) self.user.train(self.train_link, _callback=handle_train) h = self.user.history() self.assertEquals(h['uuid'], self.uuid) self.assertIn(self.train_link, h['urls']) def handle_history(res): self.assertEquals(res['uuid'], self.uuid) self.assertIn(self.train_link, res['urls']) self.user.history(_callback=handle_history) def test_related_user(self): r = self.user.related() self.assertTrue(r[3].title != "") def handle(res): self.assertTrue(res[3].title != "") self.user.related(_callback=handle) def test_related_url(self): r = self.p.related(self.train_link) self.assertTrue(r[3].title != "") def handle(res): self.assertTrue(res[3].title != "") self.p.related(self.train_link, _callback=handle) def test_search(self): s = self.p.search("security", limit=4) self.assertTrue(s[3].title != "") def handle(res): self.assertTrue(res[3].title != "") self.p.search("security", limit=4, _callback=handle) def test_realtime(self): r = self.p.realtime(limit=4) self.assertTrue(r[3].title != "") self.assertTrue(len(r) == 4) def handle(res): self.assertTrue(res[3].title != "") self.assertTrue(len(res) == 4) self.p.realtime(limit=4, _callback=handle) def test_shares_detail(self): s = self.p.shares(post=self.train_link) self.assertTrue(s.total > 0) def handle(res): self.assertTrue(res.total > 0) self.p.shares(post=self.train_link, _callback=handle) def test_referrers_post_detail(self): r = self.p.referrers_post_detail('http://arstechnica.com/information-technology/2013/04/memory-that-never-forgets-non-volatile-dimms-hit-the-market/') self.assertTrue(r[0].hits > 0) def handle(res): self.assertTrue(res[0].hits > 0) self.p.referrers_post_detail('http://arstechnica.com/information-technology/2013/04/memory-that-never-forgets-non-volatile-dimms-hit-the-market/', _callback=handle) def test_referrers_meta_detail(self): r = self.p.referrers_meta_detail('Ars Staff', meta="author") self.assertEquals(r[3].author, "Ars Staff") def handle(res): self.assertEquals(res[3].author, "Ars Staff") self.p.referrers_meta_detail('Ars Staff', meta="author", _callback=handle) def test_referrers_meta(self): r = self.p.referrers_meta() self.assertTrue(r[0].hits > 0) def handle(res): self.assertTrue(res[0].hits > 0) self.p.referrers_meta(_callback=handle) def test_referrers(self): r = self.p.referrers(tag='copyright') self.assertTrue(r[2].hits > 0) self.assertTrue(r[2].ref_type == 'social') def handle(res): self.assertTrue(res[2].hits > 0) self.assertTrue(res[2].ref_type == 'social') self.p.referrers(tag='copyright', _callback=handle) def test_meta_detail(self): r = self.p.meta_detail('Technology Lab', aspect="section") self.assertEquals(r[3].section, "Technology Lab") def handle(res): self.assertEquals(res[3].section, "Technology Lab") self.p.meta_detail('Technology Lab', aspect="section", _callback=handle) def test_post_detail(self): r = self.p.post_detail('http://arstechnica.com/science/2013/04/inside-science-selling-and-upsizing-the-meal/') self.assertTrue(r.title == "Inside science: Selling and upsizing the meal") def handle(res): self.assertTrue(res.title == "Inside science: Selling and upsizing the meal") self.p.post_detail('http://arstechnica.com/science/2013/04/inside-science-selling-and-upsizing-the-meal/', _callback=handle) def test_analytics(self): r = self.p.analytics(aspect="authors") self.assertTrue(r[7].hits > 0) def handle(res): self.assertTrue(res[7].hits > 0) self.p.analytics(aspect="authors", _callback=handle) def test_analytics_one_pubdate(self): with self.assertRaises(ValueError): self.p.analytics(aspect="authors", pub_start=datetime(2013, 10, 01)) def test_invalid_aspect(self): """when passed an invalid aspect, parsely should not return""" r = "sentinel" try: r = self.p.meta_detail('unimportant', aspect="post") except: pass self.assertTrue(r == "sentinel") def test_invalid_ref_type(self): """when passed an invalid referrer type, parsely should not return""" r = "sentinel" try: r = self.p.referrers_meta(ref_type="fgsfds") except: pass self.assertTrue(r == "sentinel")
def setUp(self): self.apikey = 'arstechnica.com' self.uuid = 'user%d' % random.randint(1000, 9999) self.p = parsely.Parsely(self.apikey, secrets[self.apikey]) self.train_link = 'http://arstechnica.com/gadgets/2013/04/tunein-radio-app-update-makes-it-easier-for-users-to-discover-new-music/' self.user = User(self.p, self.uuid)