def build_charge(statute, disposition_ruling): last_week = datetime.today() - timedelta(days=7) charge = ChargeFactory.default_dict() charge["statute"] = statute charge["disposition"] = Disposition(ruling=disposition_ruling, date=last_week) return ChargeFactory.create(**charge)
def test_traffic_violation_max_statute(): charge_dict = ChargeFactory.default_dict() charge_dict["statute"] = "825.999" charge_dict["level"] = "Violation" charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, TrafficViolation)
def test_very_old_needs_more_analysis_mrc_with_single_arrest(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Assault in the third degree" charge_dict["statute"] = "163.165" charge_dict["level"] = "Felony Class C" charge_dict["disposition"] = Disposition(ruling="Convicted", date=Time.TWENTY_YEARS_AGO) mrc = ChargeFactory.create(**charge_dict) arrest = ChargeFactory.create( disposition=Disposition(ruling="Dismissed", date=Time.THREE_YEARS_AGO)) case = CaseFactory.create() case.charges = [mrc, arrest] record = Record([case]) expunger = Expunger(record) expunger.run() three_years_from_mrc = mrc.disposition.date + Time.THREE_YEARS assert arrest.expungement_result.time_eligibility.status is EligibilityStatus.ELIGIBLE assert arrest.expungement_result.time_eligibility.date_will_be_eligible == three_years_from_mrc assert arrest.expungement_result.time_eligibility.date_eligible_without_friendly_rule == Time.THREE_YEARS_AGO assert arrest.expungement_result.charge_eligibility.status == ChargeEligibilityStatus.ELIGIBLE_NOW assert arrest.expungement_result.charge_eligibility.label == "Eligible" assert mrc.expungement_result.type_eligibility.status is EligibilityStatus.NEEDS_MORE_ANALYSIS assert mrc.expungement_result.time_eligibility.status is EligibilityStatus.ELIGIBLE assert mrc.expungement_result.time_eligibility.date_will_be_eligible == three_years_from_mrc assert mrc.expungement_result.charge_eligibility.status == ChargeEligibilityStatus.POSSIBLY_ELIGIBILE assert mrc.expungement_result.charge_eligibility.label == "Possibly Eligible (review)"
def test_class_felony_is_added_to_b_felony_attribute(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Aggravated theft in the first degree" charge_dict["statute"] = "164.057" charge_dict["level"] = "Felony Class B" charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, FelonyClassB)
def test_min_statute_range_for_crimes_against_persons(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["statute"] = "163.305" convicted_charge = ChargeFactory.create(**charge_dict) assert isinstance(convicted_charge, PersonCrime) assert convicted_charge.expungement_result.type_eligibility.status is EligibilityStatus.INELIGIBLE assert convicted_charge.expungement_result.type_eligibility.reason == "Ineligible under 137.225(5)"
def test_max_statute_range_for_obscenity_and_minors(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["statute"] = "167.080" convicted_charge = ChargeFactory.create(**charge_dict) assert isinstance(convicted_charge, PersonCrime) assert convicted_charge.type_name == "Person Crime" assert convicted_charge.expungement_result.type_eligibility.status is EligibilityStatus.INELIGIBLE assert convicted_charge.expungement_result.type_eligibility.reason == "Ineligible under 137.225(5)"
def test_163200_is_still_subsection_6_if_b_felony(): charge_dict = ChargeFactory.default_dict( disposition=Dispositions.CONVICTED) charge_dict["name"] = "Criminal mistreatment in the second degree" charge_dict["statute"] = "163.200" charge_dict["level"] = "Felony Class B" subsection_6_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_6_charge, Subsection6)
def test_subsection_12_charge_that_includes_sub_chapter(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Unlawful use of weapon" charge_dict["statute"] = "166.220(1)(b)" charge_dict["level"] = "Felony Class C" charge_dict["disposition"] = Dispositions.CONVICTED subsection_12_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_12_charge, Subsection12)
def test_subsection_12_164405(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Robbery in the second degree" charge_dict["statute"] = "164.405" charge_dict["level"] = "Felony Class B" charge_dict["disposition"] = Dispositions.CONVICTED subsection_12_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_12_charge, Subsection12)
def test_subsection_12_163275(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Coercion" charge_dict["statute"] = "163.275" charge_dict["level"] = "Felony Class C" charge_dict["disposition"] = Dispositions.CONVICTED subsection_12_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_12_charge, Subsection12)
def test_subsection_12_163165(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Assault in the third degree" charge_dict["statute"] = "163.165" charge_dict["level"] = "Felony Class C" charge_dict["disposition"] = Dispositions.CONVICTED subsection_12_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_12_charge, Subsection12)
def test_163575_is_still_subsection_6_if_b_felony(): charge_dict = ChargeFactory.default_dict( disposition=Dispositions.CONVICTED) charge_dict["name"] = "Endangering the welfare of a minor" charge_dict["statute"] = "163.575" charge_dict["level"] = "Felony Class B" subsection_6_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_6_charge, Subsection6)
def test_subsection_12_163205(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Criminal mistreatment in the first degree" charge_dict["statute"] = "163.205" charge_dict["level"] = "Felony Class C" charge_dict["disposition"] = Dispositions.CONVICTED subsection_12_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_12_charge, Subsection12)
def test_subsection_6_163575(): charge_dict = ChargeFactory.default_dict( disposition=Dispositions.CONVICTED) charge_dict["name"] = "Endangering the welfare of a minor" charge_dict["statute"] = "163.575" charge_dict["level"] = "Misdemeanor Class A" subsection_6_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_6_charge, Subsection6)
def test_subsection_6_163145(): charge_dict = ChargeFactory.default_dict( disposition=Dispositions.CONVICTED) charge_dict["name"] = "Criminally negligent homicide" charge_dict["statute"] = "163.145" charge_dict["level"] = "Misdemeanor Class A" subsection_6_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_6_charge, Subsection6)
def test_subsection_12_162165(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Escape in the first degree" charge_dict["statute"] = "162.165" charge_dict["level"] = "Felony Class B" charge_dict["disposition"] = Dispositions.CONVICTED subsection_12_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_12_charge, Subsection12)
def test_subsection_12_162185(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Supplying contraband" charge_dict["statute"] = "162.185" charge_dict["level"] = "Felony Class C" charge_dict["disposition"] = Dispositions.CONVICTED subsection_12_charge = ChargeFactory.create(**charge_dict) assert isinstance(subsection_12_charge, Subsection12)
def test_drug_free_zone_variance_misdemeanor(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["name"] = " Drug Free Zone Variance" charge_dict["statute"] = "14B20060" charge_dict["level"] = "Misdemeanor Unclassified" charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, Misdemeanor) assert charge.expungement_result.type_eligibility.status is EligibilityStatus.ELIGIBLE assert charge.expungement_result.type_eligibility.reason == "Eligible under 137.225(5)(b)"
def test_misdemeanor_164125(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["name"] = "Theft of services" charge_dict["statute"] = "164.125" charge_dict["level"] = "Misdemeanor Class A" charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, Misdemeanor) assert charge.expungement_result.type_eligibility.status is EligibilityStatus.ELIGIBLE assert charge.expungement_result.type_eligibility.reason == "Eligible under 137.225(5)(b)"
def test_rape_class_c_felony(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["name"] = "Rape in the Third Degree" charge_dict["statute"] = "163.355" charge_dict["level"] = "Felony Class C" sex_crime_charge = ChargeFactory.create(**charge_dict) assert isinstance(sex_crime_charge, PersonCrime) assert sex_crime_charge.type_name == "Person Crime" assert sex_crime_charge.expungement_result.type_eligibility.status is EligibilityStatus.INELIGIBLE
def test_pcs_dismissed_nonviolation(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Poss Controlled Sub 2" charge_dict["statute"] = "4759924B" charge_dict["level"] = "Felony Class C" # also test non-violation charge_dict["disposition"] = Dispositions.DISMISSED pcs_charge = ChargeFactory.create(**charge_dict) assert isinstance(pcs_charge, Schedule1PCS) assert pcs_charge.expungement_result.type_eligibility.status is EligibilityStatus.ELIGIBLE assert pcs_charge.expungement_result.type_eligibility.reason == "Dismissals are eligible under 137.225(1)(b)"
def test_violation(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["name"] = "Viol Treatment" charge_dict["statute"] = "1615662" charge_dict["level"] = "Violation Unclassified" charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, Violation) assert charge.expungement_result.type_eligibility.status is EligibilityStatus.ELIGIBLE assert charge.expungement_result.type_eligibility.reason == "Eligible under 137.225(5)(d)"
def test_felony_c_conviction(): charge_dict = ChargeFactory.default_dict( disposition=Dispositions.CONVICTED) charge_dict["name"] = "Theft in the first degree" charge_dict["statute"] = "164.055" charge_dict["level"] = "Felony Class C" charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, FelonyClassC) assert charge.expungement_result.type_eligibility.status is EligibilityStatus.ELIGIBLE assert charge.expungement_result.type_eligibility.reason == "Eligible under 137.225(5)(b)"
def test_charge_that_falls_through(): charge_dict = ChargeFactory.default_dict( disposition=Dispositions.DISMISSED) charge_dict["name"] = "Aggravated theft in the first degree" charge_dict["statute"] = "164.057" charge_dict["level"] = "Felony Class F" charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, UnclassifiedCharge) assert charge.expungement_result.type_eligibility.status is EligibilityStatus.NEEDS_MORE_ANALYSIS assert charge.expungement_result.type_eligibility.reason == "Unrecognized Charge : Further Analysis Needed"
def test_marijuana_ineligible_statute_475b3592a(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["name"] = "Arson incident to manufacture of cannabinoid extract in first degree" charge_dict["statute"] = "475b.359(2)(a)" charge_dict["level"] = "Felony Class A" marijuana_felony_class_a = ChargeFactory.create(**charge_dict) assert isinstance(marijuana_felony_class_a, MarijuanaIneligible) assert marijuana_felony_class_a.type_name == "Marijuana Ineligible" assert marijuana_felony_class_a.expungement_result.type_eligibility.status is EligibilityStatus.INELIGIBLE assert marijuana_felony_class_a.expungement_result.type_eligibility.reason == "Ineligible under 137.226"
def test_felony_class_a_charge(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Assault in the first degree" charge_dict["statute"] = "163.185" charge_dict["level"] = "Felony Class A" charge_dict["disposition"] = Dispositions.CONVICTED felony_class_a_convicted = ChargeFactory.create(**charge_dict) assert isinstance(felony_class_a_convicted, FelonyClassA) assert felony_class_a_convicted.expungement_result.type_eligibility.status is EligibilityStatus.INELIGIBLE assert felony_class_a_convicted.expungement_result.type_eligibility.reason == "Ineligible by omission from statute"
def test_pcs_475992(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Poss Controlled Sub 2" charge_dict["statute"] = "4759924B" charge_dict["level"] = "Felony Class C" charge_dict["disposition"] = Dispositions.CONVICTED pcs_charge = ChargeFactory.create(**charge_dict) assert isinstance(pcs_charge, Schedule1PCS) assert pcs_charge.expungement_result.type_eligibility.status is EligibilityStatus.ELIGIBLE assert pcs_charge.expungement_result.type_eligibility.reason == "Eligible under 137.225(5)(c)"
def test_class_b_felony_164057(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Aggravated theft in the first degree" charge_dict["statute"] = "164.057" charge_dict["level"] = "Felony Class B" charge_dict["disposition"] = Dispositions.CONVICTED charge = ChargeFactory.create(**charge_dict) assert isinstance(charge, FelonyClassB) assert charge.expungement_result.type_eligibility.status is EligibilityStatus.NEEDS_MORE_ANALYSIS assert charge.expungement_result.type_eligibility.reason == "Further Analysis Needed"
def test_pcs_475854(): charge_dict = ChargeFactory.default_dict() charge_dict["name"] = "Unlawful possession of heroin" charge_dict["statute"] = "475.854" charge_dict["level"] = "Misdemeanor Class A" charge_dict["disposition"] = Dispositions.CONVICTED pcs_charge = ChargeFactory.create(**charge_dict) assert isinstance(pcs_charge, Schedule1PCS) assert pcs_charge.expungement_result.type_eligibility.status is EligibilityStatus.ELIGIBLE assert pcs_charge.expungement_result.type_eligibility.reason == "Eligible under 137.225(5)(c)"
def test_misdemeanor_sex_crime(): charge_dict = ChargeFactory.default_dict(disposition=Dispositions.CONVICTED) charge_dict["name"] = "Sexual Abuse in the Third Degree" charge_dict["statute"] = "163.415" charge_dict["level"] = "Misdemeanor Class A" charge_dict["disposition"] = Dispositions.CONVICTED misdemeanor_class_a_convicted = ChargeFactory.create(**charge_dict) assert isinstance(misdemeanor_class_a_convicted, PersonCrime) assert misdemeanor_class_a_convicted.expungement_result.type_eligibility.status is EligibilityStatus.INELIGIBLE assert misdemeanor_class_a_convicted.expungement_result.type_eligibility.reason == "Ineligible under 137.225(5)"