def run(): """ This script should be run following a refresh of county mortgage data. The script wipes national, state and metro-based aggregate records, creates new ones for every date in range, and then updates metadata. """ starter = datetime.datetime.now() aggregate_classes = [ NationalMortgageData, StateMortgageData, MSAMortgageData, NonMSAMortgageData] for cls in aggregate_classes: cls.objects.all().delete() update_sampling_dates() merge_the_dades() validate_counties() dates = MortgageMetaData.objects.get(name='sampling_dates').json_value for date_string in dates: date = parser.parse(date_string).date() logger.info( "Aggregating data for {}".format(date)) load_msa_values(date) load_state_values(date) load_non_msa_state_values(date) load_national_values(date) logger.info("Validating MSAs and non-MSAs") for metro in MetroArea.objects.all(): metro.validate() for state in State.objects.all(): state.validate_non_msas() logger.info("{} took {} to run.".format( script, (datetime.datetime.now() - starter)))
def run(): """ This script should be run following a refresh of county mortgage data. The script wipes national, state and metro-based aggregate records, creates new ones for every date in range, and then updates metadata. """ starter = datetime.datetime.now() aggregate_classes = [ NationalMortgageData, StateMortgageData, MSAMortgageData, NonMSAMortgageData ] for cls in aggregate_classes: cls.objects.all().delete() update_sampling_dates() merge_the_dades() validate_counties() dates = MortgageMetaData.objects.get(name='sampling_dates').json_value for date_string in dates: date = parser.parse(date_string).date() logger.info("Aggregating data for {}".format(date)) load_msa_values(date) load_state_values(date) load_non_msa_state_values(date) load_national_values(date) logger.info("Validating MSAs and non-MSAs") for metro in MetroArea.objects.all(): metro.validate() for state in State.objects.all(): state.validate_non_msas() logger.info("{} took {} to run.".format( script, (datetime.datetime.now() - starter)))
def test_validate_counties(self): county = County.objects.first() self.assertIs(county.valid, True) validate_counties() county.refresh_from_db() self.assertIs(county.valid, False)