Exemplo n.º 1
0
 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)
Exemplo n.º 2
0
  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)
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
  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)
Exemplo n.º 6
0
  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)
Exemplo n.º 7
0
  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)