def test_uppercase_geo_id(self): validator = StaticValidator(self.params) report = ValidationReport([]) df = pd.DataFrame(["ak", "AK"], columns=["geo_id"]) validator.check_bad_geo_id_value(df, "name", "state", report) assert len(report.raised_errors) == 0 assert len(report.raised_warnings) == 1 assert "check_geo_id_lowercase" in report.raised_warnings[ 0].check_data_id assert "AK" in report.raised_warnings[0].expression
def test_invalid_geo_id_national(self): validator = StaticValidator(self.params) report = ValidationReport([]) df = pd.DataFrame(["us", "zz"], columns=["geo_id"]) validator.check_bad_geo_id_value(df, "name", "national", report) assert len(report.raised_errors) == 1 assert "check_bad_geo_id_value" in report.raised_errors[ 0].check_data_id assert len(report.raised_errors[0].expression) == 1 assert "us" not in report.raised_errors[0].expression assert "zz" in report.raised_errors[0].expression
def test_invalid_geo_id_msa(self): validator = StaticValidator(self.params) report = ValidationReport([]) df = pd.DataFrame(["10180", "88888", "99999"], columns=["geo_id"]) validator.check_bad_geo_id_value(df, "name", "msa", report) assert len(report.raised_errors) == 1 assert "check_bad_geo_id_value" in report.raised_errors[ 0].check_data_id assert len(report.raised_errors[0].expression) == 2 assert "10180" not in report.raised_errors[0].expression assert "88888" in report.raised_errors[0].expression assert "99999" in report.raised_errors[0].expression
def test_empty_df(self): validator = StaticValidator(self.params) report = ValidationReport([]) empty_df = pd.DataFrame(columns=["geo_id"], dtype=str) validator.check_bad_geo_id_value(empty_df, "name", "county", report) assert len(report.raised_errors) == 0