def test_write_spreadsheet(self, mock_upload): """ Make sure we save the stories to the database when scraping from a spreadsheet """ clear_stories() scraper = SpreadsheetScraper(self.source) stories = scraper.scrape_spreadsheet('tests/data/stories.xlsx') scraper.write(stories) results = Story.select() self.assertEqual(len(results), 4) for idx, story in enumerate(stories): self.assertEqual(results[idx].name, story['story_headline']) self.assertEqual(results[idx].url, story['story_url'])
def test_write_spreadsheet_duplicates(self, mock_upload): """ Make sure stories don't get inserted more than once """ mock_upload.return_value = 'http://image-url-here' clear_stories() scraper = SpreadsheetScraper(self.source) stories = scraper.scrape_spreadsheet('tests/data/stories.xlsx') # Insert the stories scraper.write(stories) results = Story.select() self.assertEqual(len(results), 4) # Now insert them again and make sure we don't have duplicates scraper.write(stories) results = Story.select() self.assertEqual(len(results), 4)