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()
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()
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)
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")
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()
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
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()
def offense_record1(offense1, petition, petition_document): record = OffenseRecordFactory(offense=offense1) PetitionOffenseRecordFactory(petition=petition, offense_record=record) record.documents.set([petition_document]) yield record
def charged_dismissed_record(dismissed_offense): return OffenseRecordFactory(action="CHARGED", offense=dismissed_offense)
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()
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()
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()
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()