def test_infraction_severity_offense_record(batch, not_guilty_offense):
    """Offense records with severity INFRACTION should be excluded."""
    infraction_record = OffenseRecordFactory(action="CHARGED",
                                             offense=not_guilty_offense,
                                             severity="INFRACTION")
    traffic_record = OffenseRecordFactory(action="CHARGED",
                                          offense=not_guilty_offense,
                                          severity="TRAFFIC")
    assert infraction_record not in batch.not_guilty_offense_records()
    assert traffic_record in batch.not_guilty_offense_records()
Esempio n. 2
0
def test_underaged_conviction_included(batch, record1, non_dismissed_offense):
    record1.dob = datetime(2000, 1, 2)
    record1.offense_date = datetime(2018, 1, 1)
    record1.save()
    offense_record = OffenseRecordFactory(action="CONVICTED",
                                          offense=non_dismissed_offense)
    assert offense_record in batch.underaged_conviction_records()
Esempio n. 3
0
def test_recalculate_petitions(petition):
    petition = PetitionFactory(form_type=constants.UNDERAGED_CONVICTIONS)
    batch = petition.batch
    record = CIPRSRecordFactory(batch=batch,
                                jurisdiction=constants.DISTRICT_COURT,
                                county="DURHAM")
    offense = OffenseFactory(
        disposition_method="PROBATION OTHER",
        ciprs_record=record,
        jurisdiction=constants.DISTRICT_COURT,
    )
    offense_record_ids = []
    for i in range(12):
        offense_record = OffenseRecordFactory(offense=offense,
                                              action="CHARGED")
        petition.offense_records.add(offense_record)
        if len(offense_record_ids) < 5:
            offense_record_ids.append(offense_record.id)
    link_offense_records(petition)
    create_documents(petition)

    assert (petition.offense_records.filter(
        petitionoffenserecord__active=True).count() == 12)
    assert petition.has_attachments()
    recalculate_petitions(petition.id, offense_record_ids)
    assert (petition.offense_records.filter(
        petitionoffenserecord__active=True).count() == 5)
    assert not petition.has_attachments()
def test_not_both_dismissed_and_not_guilty(batch, record1):
    offense = OffenseFactory(
        disposition_method="DISMISSAL WITHOUT LEAVE BY DA",
        verdict="Not Guilty",
        ciprs_record=record1,
    )
    offense_record = OffenseRecordFactory(action="CHARGED", offense=offense)
    assert offense_record not in batch.not_guilty_offense_records(
        jurisdiction=record1.jurisdiction)
Esempio n. 5
0
def test_offense_records_by_jurisdiction(batch, jurisdiction):
    """Offense records helper function should allow filtering by jurisdiction."""
    ciprs_record = CIPRSRecordFactory(jurisdiction=jurisdiction, batch=batch)
    offense = OffenseFactory(
        disposition_method=constants.DISMISSED_DISPOSITION_METHODS[0],
        ciprs_record=ciprs_record,
    )
    offense_record = OffenseRecordFactory(action="CHARGED", offense=offense)
    records = batch.dismissed_offense_records(jurisdiction=jurisdiction)
    assert offense_record in records
def many_offense_records(batch, size):
    for i in range(size):
        record = CIPRSRecordFactory(batch=batch,
                                    jurisdiction=constants.DISTRICT_COURT,
                                    county="DURHAM")
        offense = OffenseFactory(
            disposition_method=dismissed.DISMISSED_DISPOSITION_METHODS[0],
            ciprs_record=record,
            jurisdiction=constants.DISTRICT_COURT,
        )
        OffenseRecordFactory(offense=offense, action="CHARGED")
Esempio n. 7
0
def test_attachment_page(batch, petition, offense1):
    for i in range(20):
        offense_record = OffenseRecordFactory(offense=offense1)
        petition.offense_records.add(offense_record)
    paginator = OffenseRecordPaginator(petition)
    assert len(paginator.petition_offense_records()) == 10
    has_attachment = None
    for attachment_records in paginator.attachment_offense_records():
        has_attachment = True
        assert len(attachment_records) == 10
    assert has_attachment
def test_petition_offenses(batch, record1, not_guilty_offense):
    """Petitions should return their own offense records."""
    offense_record = OffenseRecordFactory(action="CHARGED",
                                          offense=not_guilty_offense)
    petition = PetitionFactory(
        form_type=constants.NOT_GUILTY,
        jurisdiction=record1.jurisdiction,
        county=record1.county,
        batch=batch,
    )
    assert offense_record in petition.get_all_offense_records()
Esempio n. 9
0
 def create_new_ciprs_record(file_no):
     ciprs_record = CIPRSRecordFactory(
         batch=batch,
         file_no=file_no,
         jurisdiction=constants.DISTRICT_COURT,
         county="DURHAM")
     offense = OffenseFactory(
         ciprs_record=ciprs_record,
         jurisdiction=constants.DISTRICT_COURT,
         disposition_method=dismissed.DISMISSED_DISPOSITION_METHODS[0],
     )
     offense_record = OffenseRecordFactory(offense=offense)
     return offense_record.id
Esempio n. 10
0
def test_guilty_to_lesser(batch, record1):
    offense = OffenseFactory(
        ciprs_record=record1,
        jurisdiction=constants.DISTRICT_COURT,
        plea="GUILTY TO LESSER",
        disposition_method="DISPOSED BY JUDGE",
    )

    offense_record_charged = OffenseRecordFactory(action="CHARGED",
                                                  offense=offense)
    offense_record_convicted = OffenseRecordFactory(action="CONVICTED",
                                                    offense=offense)

    petition = PetitionFactory(
        form_type=constants.DISMISSED,
        jurisdiction=record1.jurisdiction,
        county=record1.county,
        batch=batch,
    )

    petition_offense_records = petition.get_all_offense_records()

    assert offense_record_charged in petition_offense_records
    assert offense_record_convicted not in petition_offense_records
def test_paginator_same_record_number_order(petition, records_10):
    # get the 10th offense record so we can attach one more offense
    # record to the same CIPRSRecord, so that it crosses the
    # attachment boundary
    charge_1 = petition.get_all_offense_records().last()
    # attach a 2nd dismissed charge
    charge_2 = OffenseRecordFactory(
        offense=OffenseFactory(
            disposition_method=dismissed.DISMISSED_DISPOSITION_METHODS[0],
            ciprs_record=charge_1.offense.ciprs_record,
            jurisdiction=constants.DISTRICT_COURT,
        ),
        action="CHARGED",
    )
    link_offense_records_and_attachments(petition)
    attachment = petition.attachments.order_by("pk").first()
    # the 1st charge should always be on the first petition
    assert charge_1.pk in petition.offense_records.values_list("pk", flat=True)
    # the 2nd charge should always be on the attachment
    assert charge_2.pk in attachment.offense_records.values_list("pk",
                                                                 flat=True)
def test_non_charged_offense_record(batch, not_guilty_offense):
    """Non-charged records should be excluded."""
    offense_record = OffenseRecordFactory(action="CONVICTED",
                                          offense=not_guilty_offense)
    assert offense_record not in batch.not_guilty_offense_records()
Esempio n. 13
0
def offense_record1(offense1, petition, petition_document):
    record = OffenseRecordFactory(offense=offense1)
    PetitionOffenseRecordFactory(petition=petition, offense_record=record)
    record.documents.set([petition_document])
    yield record
Esempio n. 14
0
def charged_dismissed_record(dismissed_offense):
    return OffenseRecordFactory(action="CHARGED", offense=dismissed_offense)
Esempio n. 15
0
def offense_record1(offense1, petition):
    record = OffenseRecordFactory(offense=offense1)
    record.petitions.set([petition])
    yield record
def test_non_not_guilty_verdict(batch, record1):
    offense = OffenseFactory(verdict="Guilty", ciprs_record=record1)
    offense_record = OffenseRecordFactory(action="CHARGED", offense=offense)
    assert offense_record not in batch.not_guilty_offense_records()
Esempio n. 17
0
def test_charged_disposition_methods(batch, record1, method):
    """CHARGED offense records should be included for all dismissed disposition methods."""
    offense = OffenseFactory(disposition_method=method, ciprs_record=record1)
    offense_record = OffenseRecordFactory(action="CHARGED", offense=offense)
    assert offense_record in batch.dismissed_offense_records()
Esempio n. 18
0
def test_non_charged_offense_record(batch, dismissed_offense):
    """Non-CHARGED dismissed offense records should be exlucded."""
    offense_record = OffenseRecordFactory(action="CONVICTED",
                                          offense=dismissed_offense)
    assert offense_record not in batch.dismissed_offense_records()
def test_charged_not_guilty_record(batch, not_guilty_offense):
    """Charged not guilty records should be included"""
    offense_record = OffenseRecordFactory(action="CHARGED",
                                          offense=not_guilty_offense)
    assert offense_record in batch.not_guilty_offense_records()
Esempio n. 20
0
def test_non_dismissed_disposition_method(batch, non_dismissed_offense):
    """Offenses with non-dismissed disposition methods should be exlucded."""
    offense_record = OffenseRecordFactory(action="CHARGED",
                                          offense=non_dismissed_offense)
    assert offense_record not in batch.dismissed_offense_records()