def test_returns_last_summary(self): summary1 = DailySummary.create(date=datetime.datetime(2015, 9, 1)) summary1.save() summary2 = DailySummary.create(date=datetime.datetime(2015, 9, 2)) summary2.save() summary3 = DailySummary.create(date=datetime.datetime(2015, 8, 20)) summary3.save() summary = DailySummary.get_last_summary() self.assertEqual(summary, summary2)
def test_create_initialises_n_posts(self, mock_JobListing): mock_date = mock.Mock() mock_n_posts = mock.Mock() mock_get_n_posts = mock.Mock() mock_get_n_posts.return_value = mock_n_posts mock_JobListing.get_n_posts = mock_get_n_posts daily_summary = DailySummary.create(mock_date) mock_get_n_posts.assert_called_once_with(mock_date) self.assertEqual(daily_summary.n_posts, mock_n_posts)
def update_daily_summaries(): logger.info('Update Daily Summaries') previous_session = ScrapingSession.get_previous_session() logger.info('Previous Scraping Session: {}'.format(previous_session.datetime if previous_session else None)) if previous_session == None: return last_summary = DailySummary.get_last_summary() logger.info('Last Daily Summary: {}'.format(last_summary.date if last_summary else None)) if last_summary == None: start_date = JobListing.get_earliest_job_listing().added - datetime.timedelta(days=1) else: start_date = last_summary.date dates_between = data_science_jobs.get_days_between( start_date, previous_session.datetime.date()) if len(dates_between): logger.info('Getting Daily Summaries Between: {} - {}'.format(dates_between[0], dates_between[-1])) else: logger.info('Daily Summaries Up-To-Date') for date in dates_between: daily_summary = DailySummary.create(date=date) logger.info('{}: n_posts: {}'.format(date, daily_summary.n_posts)) daily_summary.save()
def test_returns_none_if_no_summaries(self): summary = DailySummary.get_last_summary() self.assertIsNone(summary)