def testParseStateSupervisionViolation(self):
        # Arrange
        ingest_violation = ingest_info_pb2.StateSupervisionViolation(
            violation_type='TECHNICAL',
            state_supervision_violation_id='VIOLATION_ID',
            violation_date='1/2/2111',
            state_code='us_nd',
            is_violent='false',
            violated_conditions='CURFEW, TOX-SCREEN',
        )

        # Act
        violation_builder = entities.StateSupervisionViolation.builder()
        state_supervision_violation.copy_fields_to_builder(
            violation_builder, ingest_violation, _EMPTY_METADATA)
        result = violation_builder.build()

        # Assert
        expected_result = entities.StateSupervisionViolation.new_with_defaults(
            violation_type=StateSupervisionViolationType.TECHNICAL,
            violation_type_raw_text='TECHNICAL',
            external_id='VIOLATION_ID',
            violation_date=date(year=2111, month=1, day=2),
            state_code='US_ND',
            is_violent=False,
            violated_conditions='CURFEW, TOX-SCREEN')

        self.assertEqual(result, expected_result)
예제 #2
0
    def _convert_supervision_violation(
            self, ingest_supervision_violation: StateSupervisionViolation) \
            -> entities.StateSupervisionViolation:
        """Converts an ingest_info proto StateSupervisionViolation to a
        persistence entity."""
        supervision_violation_builder = \
            entities.StateSupervisionViolation.builder()

        state_supervision_violation.copy_fields_to_builder(
            supervision_violation_builder, ingest_supervision_violation,
            self.metadata)

        converted_violation_responses = [
            self._convert_supervision_violation_response(
                self.violation_responses[response_id])
            for response_id in ingest_supervision_violation.
            state_supervision_violation_response_ids
        ]
        supervision_violation_builder.supervision_violation_responses = \
            converted_violation_responses

        converted_violation_type_entries = [
            state_supervision_violation_type_entry.convert(
                self.violation_type_entries[type_entry_id], self.metadata)
            for type_entry_id in ingest_supervision_violation.
            state_supervision_violation_type_entry_ids
        ]
        supervision_violation_builder.supervision_violation_types \
            = converted_violation_type_entries

        converted_violated_condition_entries = [
            state_supervision_violated_condition_entry.convert(
                self.violated_condition_entries[condition_entry_id],
                self.metadata)
            for condition_entry_id in ingest_supervision_violation.
            state_supervision_violated_condition_entry_ids
        ]
        supervision_violation_builder.supervision_violated_conditions \
            = converted_violated_condition_entries

        return supervision_violation_builder.build()