コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
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)"
コード例 #4
0
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)
コード例 #5
0
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)"
コード例 #6
0
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)"
コード例 #7
0
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)
コード例 #8
0
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)
コード例 #9
0
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)
コード例 #10
0
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)
コード例 #11
0
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)
コード例 #12
0
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)
コード例 #13
0
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)
コード例 #14
0
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)
コード例 #15
0
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)
コード例 #16
0
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)
コード例 #17
0
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)
コード例 #18
0
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)"
コード例 #19
0
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)"
コード例 #20
0
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
コード例 #21
0
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)"
コード例 #22
0
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)"
コード例 #23
0
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)"
コード例 #24
0
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"
コード例 #25
0
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"
コード例 #26
0
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"
コード例 #27
0
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)"
コード例 #28
0
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"
コード例 #29
0
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)"
コード例 #30
0
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)"