def test_store_best_content_should_do_nothing_if_content_is_already_set(self): p = Page(url=some_url, owner=a_user, pending=False) p.put() expect(Content).for_url.never() page.task_store_best_content(p.key())
def test_page_should_launch_tasks_to_populate_data(self): p = Page(url=some_url, owner=a_user) p.put() expect(page.Transform).process(p) expect(deferred).defer(page.task_extract_content, 'native', p.key()) expect(deferred).defer(page.task_extract_content, 'view_text', p.key()) p.start_content_population()
def test_should_convert_v0_page_to_v1_page(self): # for reference, the v0 properties are: #class Version1Page(db.Model): # version = db.IntegerProperty() # url = db.URLProperty(required=True) # _content_url = db.URLProperty() # content = db.TextProperty() # title = db.StringProperty() # owner = db.UserProperty(required=True) # date = db.DateTimeProperty(auto_now_add=True) # _messages = db.StringListProperty() expect(page.deferred).defer.never() p = Page(version=0, url=some_url, _content_url=some_url + "/content", content='content', title='title', owner=a_user, _messages = ['info something bad happened...']) p.put() p = Page.get(p.key()) self.assertEqual(p.version, 1) self.assertEqual(p.url, some_url) self.assertEqual(p.content, 'content') self.assertEqual(p.title, "title") self.assertEqual(p.owner, a_user) self.assertEqual(p._messages, ['info something bad happened...']) self.assertEqual(p.content_url, some_url + "/content")
def test_store_best_content_should_store_empty_values_if_forced(self): p = Page(url=some_url, owner=a_user) p.put() modify(page).content_extractors = [1,2, 3, 4, 5, 6] when(Content).for_url(p.url).then_return([]) page.task_store_best_content(p.key(), force=True) p = Page.get(p.key()) self.assertEquals(p.title, '[localhost saved item]') self.assertEquals(p.content, None)
def test_store_best_content_should_do_nothing_if_not_all_processors_have_completed(self): p = Page(url=some_url, owner=a_user) p.put() modify(page).content_extractors = [1,2, 3, 4, 5, 6] when(Content).for_url(p.url).then_return([Content(url=some_url)]) page.task_store_best_content(p.key()) p = Page.get(p.key()) self.assertEquals(p._title, None) self.assertEquals(p.content, None)
def test_store_best_content_should_do_so_if_all_extractors_are_complete(self): p = Page(url=some_url, owner=a_user, pending=True) p.put() modify(page).content_extractors = [1,2] best_content = Content(url=some_url, title='best title', body='best body') worst_content = Content(url=some_url) contents = [best_content, worst_content] when(Content).for_url(p.url).then_return(contents) page.task_store_best_content(p.key()) p = Page.get(p.key()) self.assertEquals(p.title, "best title") self.assertEquals(p.content, "best body")