def testGetValueAtField_withRepeatedComposite_returnsList(self): """Test get_value_at_field with a repeated composite field.""" patient_names = [ datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Foo")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Bar")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Bats")), ] patient = patient_pb2.Patient(name=patient_names) result = proto_utils.get_value_at_field(patient, "name") self.assertEqual(result, patient_names)
def testAppendValueAtField_repeatedCompositeValue_appendsValue(self): """Test append_value_at_field with a repeated composite type.""" patient = patient_pb2.Patient() patient_names = [ datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Foo")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Bar")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Bats")), ] self.assertEqual(proto_utils.field_content_length(patient, "name"), 0) for name in patient_names: proto_utils.append_value_at_field(patient, "name", name) self.assertEqual(proto_utils.field_content_length(patient, "name"), 3) self.assertEqual(patient.name[:], patient_names)
def _create_patient_with_names(self, names: List[str]) -> patient_pb2.Patient: patient = patient_pb2.Patient() for name in names: patient.name.append( datatypes_pb2.HumanName(text=datatypes_pb2.String(value=name))) return patient
def testSetValueAtFieldIndex_repeatCompositeField_setsValue(self): """Test set_value_at_field_index with a repeated composite type.""" patient = self._create_patient_with_names(["A", "B", "C"]) new_name = datatypes_pb2.HumanName( text=datatypes_pb2.String(value="Foo"), family=datatypes_pb2.String(value="Bar")) proto_utils.set_value_at_field_index(patient, "name", 1, new_name) self.assertEqual(patient.name[1], new_name)
def testCreateMessageFromDescriptor_withArguments_returnsMessage(self): """Tests that the correct class is instantiated with kwargs.""" patient_name = datatypes_pb2.HumanName( text=datatypes_pb2.String(value="Foo"), family=datatypes_pb2.String(value="Bar")) expected_patient = patient_pb2.Patient(name=[patient_name]) actual_patient = proto_utils.create_message_from_descriptor( patient_pb2.Patient.DESCRIPTOR, name=[patient_name]) self.assertEqual(expected_patient, actual_patient)
def testSetValueAtFieldIndex_invalidIndex_raisesException(self): """Test set_value_at_field_index with an invalid index.""" patient = self._create_patient_with_names(["A", "B", "C"]) new_name = datatypes_pb2.HumanName( text=datatypes_pb2.String(value="Foo"), family=datatypes_pb2.String(value="Bar")) with self.assertRaises(ValueError) as ve: proto_utils.set_value_at_field_index(patient, "name", 3, new_name) self.assertIsInstance(ve.exception, ValueError)
def testSetValueAtField_repeatedCompositeValue_setsList(self): """Test set_value_at_field with a repeated composite type.""" old_names = [ datatypes_pb2.HumanName(text=datatypes_pb2.String(value="A")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="B")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="C")), ] patient = patient_pb2.Patient(name=old_names) self.assertEqual(patient.name[:], old_names) new_names = [ datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Foo")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Bar")), datatypes_pb2.HumanName(text=datatypes_pb2.String(value="Bats")), ] proto_utils.set_value_at_field(patient, "name", new_names) self.assertEqual(patient.name[:], new_names)