Esempio n. 1
0
    def testParseCharge(self):
        # Arrange
        ingest_charge = ingest_info_pb2.Charge(
            charge_id="CHARGE_ID",
            attempted="True",
            degree="FIRST",
            charge_class="FELONY",
            status="DROPPED",
            court_type="DISTRICT",
        )

        # Act
        charge.copy_fields_to_builder(self.subject, ingest_charge, _EMPTY_METADATA)
        result = self.subject.build()

        # Assert
        expected_result = entities.Charge.new_with_defaults(
            external_id="CHARGE_ID",
            attempted=True,
            degree=ChargeDegree.FIRST,
            degree_raw_text="FIRST",
            charge_class=ChargeClass.FELONY,
            class_raw_text="FELONY",
            status=ChargeStatus.DROPPED,
            status_raw_text="DROPPED",
            court_type="DISTRICT",
        )

        self.assertEqual(result, expected_result)
Esempio n. 2
0
    def testParseCharge_MapAcrossFields(self):
        # Arrange
        overrides_builder = EnumOverrides.Builder()
        overrides_builder.add("FELONY", ChargeClass.FELONY, ChargeDegree)
        overrides_builder.add("FIRST DEGREE", ChargeDegree.FIRST, ChargeClass)
        metadata = FakeIngestMetadata.for_county(
            region="REGION", enum_overrides=overrides_builder.build()
        )
        ingest_charge = ingest_info_pb2.Charge(
            charge_class="first degree", degree="felony"
        )

        # Act
        charge.copy_fields_to_builder(self.subject, ingest_charge, metadata)
        result = self.subject.build()

        # Assert
        expected_result = entities.Charge.new_with_defaults(
            degree=ChargeDegree.FIRST,
            degree_raw_text="FELONY",
            charge_class=ChargeClass.FELONY,
            class_raw_text="FIRST DEGREE",
            status=ChargeStatus.PRESENT_WITHOUT_INFO,
        )
        self.assertEqual(result, expected_result)
Esempio n. 3
0
    def testParseCharge_SetsDefaults(self):
        # Arrange
        ingest_charge = ingest_info_pb2.Charge()

        # Act
        charge.copy_fields_to_builder(self.subject, ingest_charge, _EMPTY_METADATA)
        result = self.subject.build()

        # Assert
        expected_result = entities.Charge.new_with_defaults(
            status=ChargeStatus.PRESENT_WITHOUT_INFO
        )
        self.assertEqual(result, expected_result)
Esempio n. 4
0
    def _convert_charge(self, ingest_charge):
        """Converts an ingest_info proto Charge to a persistence entity."""
        charge_builder = entities.Charge.builder()

        charge.copy_fields_to_builder(charge_builder, ingest_charge,
                                      self.metadata)

        charge_builder.bond = \
            fn(lambda i: bond.convert(self.bonds[i], self.metadata),
               'bond_id',
               ingest_charge)
        charge_builder.sentence = \
            fn(lambda i: self._convert_sentence(self.sentences[i]),
               'sentence_id', ingest_charge)

        return charge_builder.build()
Esempio n. 5
0
    def testParseCharge_classInName(self):
        # Arrange
        ingest_charge = ingest_info_pb2.Charge(name="Felony Murder")

        # Act
        charge.copy_fields_to_builder(self.subject, ingest_charge, _EMPTY_METADATA)
        result = self.subject.build()

        # Assert
        expected_result = entities.Charge.new_with_defaults(
            name="FELONY MURDER",
            charge_class=ChargeClass.FELONY,
            status=ChargeStatus.PRESENT_WITHOUT_INFO,
        )

        self.assertEqual(result, expected_result)
Esempio n. 6
0
    def testParseCharge_classWithSpaceInName(self):
        # Arrange
        ingest_charge = ingest_info_pb2.Charge(
            name="Failed Drug Test - Probation Violation"
        )

        # Act
        charge.copy_fields_to_builder(self.subject, ingest_charge, _EMPTY_METADATA)
        result = self.subject.build()

        # Assert
        expected_result = entities.Charge.new_with_defaults(
            name="FAILED DRUG TEST - PROBATION VIOLATION",
            charge_class=ChargeClass.PROBATION_VIOLATION,
            status=ChargeStatus.PRESENT_WITHOUT_INFO,
        )
        self.assertEqual(result, expected_result)
Esempio n. 7
0
    def testParseCharge_MapAcrossFields(self):
        # Arrange
        overrides_builder = EnumOverrides.Builder()
        overrides_builder.add('FELONY', ChargeClass.FELONY, ChargeDegree)
        overrides_builder.add('FIRST DEGREE', ChargeDegree.FIRST, ChargeClass)
        metadata = IngestMetadata.new_with_defaults(
            enum_overrides=overrides_builder.build())
        ingest_charge = ingest_info_pb2.Charge(charge_class='first degree',
                                               degree='felony')

        # Act
        charge.copy_fields_to_builder(self.subject, ingest_charge, metadata)
        result = self.subject.build()

        # Assert
        expected_result = entities.Charge.new_with_defaults(
            degree=ChargeDegree.FIRST,
            degree_raw_text='FELONY',
            charge_class=ChargeClass.FELONY,
            class_raw_text='FIRST DEGREE',
            status=ChargeStatus.PRESENT_WITHOUT_INFO)
        self.assertEqual(result, expected_result)