def test_scrape_sentence_info(): sentence_info = etree.parse(StringIO("""<sentence_info> <program>IPP</program> <length_of_sentence> <min_length> <time>12.00</time> <unit>Months</unit> </min_length> <max_length> <time>12.00</time> <unit>Months</unit> </max_length> </length_of_sentence> <date>03/02/2011</date> <extra_sentence_details>12 months... HOUSE ARREST FOR FIRST 3 MONTHS. SHERIFF TO T RANSPORT... Complete 20 hours community service...</extra_sentence_details> </sentence_info> """)) sentence_info = scrape_sentence_info(sentence_info) assert sentence_info["sentence_program"] == "IPP" assert sentence_info["min_length"] == convert_time("12","months") assert sentence_info["max_length"] == convert_time("12","months") sentence_info = etree.parse(StringIO("""<sentence_info> <program>Probation</program> <length_of_sentence> <min_length> <time>1.00</time> <unit>Years</unit> </min_length> <max_length> <time>1.00</time> <unit>Years</unit> </max_length> </length_of_sentence> <extra_sentence_details>Max of 1.00 Years... 1 year... Probation is to be served non-reporting....</extra_sentence_details> </sentence_info>""")) sentence_info = scrape_sentence_info(sentence_info) assert sentence_info["min_length"] == datetime.timedelta(days=365*1) assert sentence_info["max_length"] == datetime.timedelta(days=365*1) # Test a broken one. info_missing_program = etree.parse(StringIO("""<sentence_info> <length_of_sentence> <min_length> <time>12.00</time> <unit>Months</unit> </min_length> <max_length> <time>12.00</time> <unit>Months</unit> </max_length> </length_of_sentence> <date>03/02/2011</date> <extra_sentence_details>12 months... HOUSE ARREST FOR FIRST 3 MONTHS. SHERIFF TO T RANSPORT... Complete 20 hours community service...</extra_sentence_details> </sentence_info> """)) info_missing_program = scrape_sentence_info(info_missing_program) assert info_missing_program["sentence_program"] == "program unknown"
def test_get_guilty_sequence_records(self): docket = Docket("tests/texts/CP-51-CR-0000001-2011_stitched_complete.xml") records, errors = docket.get_guilty_sequence_records() assert records[0]["judge"] == "Hill, Glynnis" assert records[0]["action_date"] == "09/09/2011" assert records[0]["charge"] == "Rape Forcible Compulsion" assert records[0]["max_length"] == convert_time("15","years") # A docket that does not have any guilty sequences to scrape docket = Docket("tests/texts/CP-51-CR-0000012-2011_stitched_complete.xml") records, errors = docket.get_guilty_sequence_records() assert len(records) == 0
def test_convert_time(): assert convert_time("7 1/2","years") == datetime.timedelta(days=2737.5) assert convert_time("1.00","Years") == datetime.timedelta(days=365) assert convert_time("1", "year") == datetime.timedelta(days=365) assert convert_time("11 1/2","months") == datetime.timedelta(days=349.83000000000004) assert convert_time("23","months") == datetime.timedelta(days=699.6600000000001) assert convert_time("3.00","Years") == datetime.timedelta(days=1095)