Exemple #1
0
def main():

    file_manager = FileManager()
    file_manager.create_download_directory()
    last_run_date = file_manager.get_most_recent_download_date()
    if last_run_date is None:
        start_date = constants.EARLIEST_GRANT_AWARD_DATE
    else:
        start_date = last_run_date + datetime.timedelta(days=1)

    if start_date <= constants.MOST_RECENT_GRANT_AWARD_DATE:

        download_period = DownloadPeriod(start_date)
        while download_period:

            # This is really inefficient, but we're going to create a new browser session for each request.  This is
            # because of how report results are presented.  It would be difficult to determine which results go with which
            # date ranges otherwise.
            with Scraper() as scraper:
                if scraper.get_query_results(file_manager, download_period):
                    download_period = download_period.increment_period()
                else:
                    download_period.downgrade_period()

    else:

        print "Downloads directory is up to date.  Quitting."
 def test_period_downgrade(self):
     d = DownloadPeriod(date(1999, 7, 15), date(2005, 1, 1))
     self.assertEqual(d.current_end_date, date(1999, 12, 31))
     d.downgrade_period()  # downgrade to month
     self.assertEqual(d.current_end_date, date(1999, 7, 31))
     d.downgrade_period()  # downgrade to week
     self.assertEqual(d.current_end_date, date(1999, 7, 18))
     d.downgrade_period()  # downgrade to day
     self.assertEqual(d.current_end_date, date(1999, 7, 15))
     self.assertRaises(ValueError, d.downgrade_period)  # cannot downgrade below period_day
    def test_iteration(self):
        d = DownloadPeriod(date(1999, 7, 15), date(2001, 12, 5))
        self.assertEqual(d.current_start_date, date(1999, 7, 15))
        self.assertEqual(d.current_end_date, date(1999, 12, 31))

        d.increment_period()
        self.assertEqual(d.current_start_date, date(2000, 1, 1))
        self.assertEqual(d.current_end_date, date(2000, 12, 31))

        d.downgrade_period()
        self.assertEqual(d.current_start_date, date(2000, 1, 1))
        self.assertEqual(d.current_end_date, date(2000, 1, 31))

        d.increment_period()
        self.assertEqual(d.current_start_date, date(2000, 2, 1))
        self.assertEqual(d.current_end_date, date(2000, 2, 29))

        d.increment_period()
        self.assertEqual(d.current_start_date, date(2000, 3, 1))
        self.assertEqual(d.current_end_date, date(2000, 3, 31))

        d.downgrade_period()
        self.assertEqual(d.current_start_date, date(2000, 3, 1))
        self.assertEqual(d.current_end_date, date(2000, 3, 5))

        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        self.assertEqual(d.current_start_date, date(2000, 3, 27))
        self.assertEqual(d.current_end_date, date(2000, 3, 31))

        d.increment_period()
        self.assertEqual(d.current_start_date, date(2000, 4, 1))
        self.assertEqual(d.current_end_date, date(2000, 4, 30))

        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        self.assertEqual(d.current_start_date, date(2001, 1, 1))
        self.assertEqual(d.current_end_date, date(2001, 12, 5))

        d.downgrade_period()
        d.downgrade_period()
        d.downgrade_period()
        self.assertEqual(d.current_start_date, date(2001, 1, 1))
        self.assertEqual(d.current_end_date, date(2001, 1, 1))

        d.increment_period()
        self.assertEqual(d.current_start_date, date(2001, 1, 2))
        self.assertEqual(d.current_end_date, date(2001, 1, 2))

        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        self.assertEqual(d.current_start_date, date(2001, 1, 8))
        self.assertEqual(d.current_end_date, date(2001, 1, 14))

        d.increment_period()
        d.increment_period()
        d.increment_period()
        self.assertEqual(d.current_start_date, date(2001, 1, 29))
        self.assertEqual(d.current_end_date, date(2001, 1, 31))

        d.increment_period()
        self.assertEqual(d.current_start_date, date(2001, 2, 1))
        self.assertEqual(d.current_end_date, date(2001, 2, 28))

        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        d.increment_period()
        self.assertEqual(d.current_start_date, date(2001, 12, 1))
        self.assertEqual(d.current_end_date, date(2001, 12, 5))

        end_year = 2001
        start_year = end_year - 3
        d = DownloadPeriod(date(start_year, 7, 15), date(end_year, 12, 31))
        while d:
            self.assertEqual(d.current_end_date, date(start_year, 12, 31))
            start_year += 1
            d = d.increment_period()