コード例 #1
0
    def testClearFhirExtensions_withMultipleExtensions_succeeds(self):
        """Tests ClearFhirExtensions when a message has multiple extensions."""
        arbitrary_string = datatypes_pb2.String()
        arbitrary_string.extension.add(
            url=datatypes_pb2.Uri(value='first'),
            value=datatypes_pb2.Extension.ValueX(boolean=datatypes_pb2.Boolean(
                value=True)))
        arbitrary_string.extension.add(
            url=datatypes_pb2.Uri(value='second'),
            value=datatypes_pb2.Extension.ValueX(boolean=datatypes_pb2.Boolean(
                value=True)))
        arbitrary_string.extension.add(
            url=datatypes_pb2.Uri(value='third'),
            value=datatypes_pb2.Extension.ValueX(boolean=datatypes_pb2.Boolean(
                value=True)))
        self.assertLen(extensions.get_fhir_extensions(arbitrary_string), 3)

        # Remove middle extension
        extensions.clear_fhir_extensions_with_url(arbitrary_string, 'second')
        remaining_extensions = extensions.get_fhir_extensions(arbitrary_string)
        self.assertLen(remaining_extensions, 2)

        remaining_urls = [
            extension.url.value for extension in remaining_extensions
        ]
        self.assertEqual(remaining_urls, ['first', 'third'])
コード例 #2
0
  def testSetValueAtField_singleCompositeValue_setsValue(self):
    """Test set_value_at_field with a singular compositie type."""
    patient = patient_pb2.Patient(active=datatypes_pb2.Boolean(value=False))

    self.assertFalse(patient.active.value)
    proto_utils.set_value_at_field(patient, "active",
                                   datatypes_pb2.Boolean(value=True))
    self.assertTrue(patient.active.value)
コード例 #3
0
  def testCopyCommonField_notPresentInBothMessages_raisesException(self):
    """Tests copy_common_field with an invalid descriptor raises."""
    first_patient = patient_pb2.Patient(
        active=datatypes_pb2.Boolean(value=True))
    second_patient = patient_pb2.Patient(
        active=datatypes_pb2.Boolean(value=False))

    with self.assertRaises(ValueError) as ve:
      proto_utils.copy_common_field(first_patient, second_patient, "value")
    self.assertIsInstance(ve.exception, ValueError)
コード例 #4
0
 def testGetFhirExtensions_withExtensions_returnsList(self):
     """Tests get_fhir_extensions returns a non-empty list with extensions."""
     patient = patient_pb2.Patient()
     patient.extension.add(url=datatypes_pb2.Uri(value='abcd'),
                           value=datatypes_pb2.Extension.ValueX(
                               boolean=datatypes_pb2.Boolean(value=True)))
     self.assertLen(extensions.get_fhir_extensions(patient), 1)
コード例 #5
0
 def testGetValueRegexForPrimitiveType_withPrimitive_returnsValue(self):
   """Test get_value_regex_for_primitive_type functionality on primitives."""
   boolean = datatypes_pb2.Boolean()
   boolean_descriptor_proto = self._descriptor_proto_for_descriptor(
       boolean.DESCRIPTOR)
   code = datatypes_pb2.Code()
   code_descriptor_proto = self._descriptor_proto_for_descriptor(
       code.DESCRIPTOR)
   self.assertEqual(
       annotation_utils.get_value_regex_for_primitive_type(boolean),
       _BOOLEAN_VALUE_REGEX)
   self.assertEqual(
       annotation_utils.get_value_regex_for_primitive_type(boolean.DESCRIPTOR),
       _BOOLEAN_VALUE_REGEX)
   self.assertEqual(
       annotation_utils.get_value_regex_for_primitive_type(code),
       _CODE_VALUE_REGEX)
   self.assertEqual(
       annotation_utils.get_value_regex_for_primitive_type(code.DESCRIPTOR),
       _CODE_VALUE_REGEX)
   self.assertEqual(
       annotation_utils.get_value_regex_for_primitive_type(
           boolean_descriptor_proto), _BOOLEAN_VALUE_REGEX)
   self.assertEqual(
       annotation_utils.get_value_regex_for_primitive_type(
           code_descriptor_proto), _CODE_VALUE_REGEX)
コード例 #6
0
 def testGetStructureDefinitionUrl_withFhirType_returnsValue(self):
   """Test get_structure_definition_url functionality on FHIR types."""
   boolean = datatypes_pb2.Boolean()
   boolean_descriptor_proto = self._descriptor_proto_for_descriptor(
       boolean.DESCRIPTOR)
   code = datatypes_pb2.Code()
   code_descriptor_proto = self._descriptor_proto_for_descriptor(
       code.DESCRIPTOR)
   patient = patient_pb2.Patient()
   patient_descriptor_proto = self._descriptor_proto_for_descriptor(
       patient.DESCRIPTOR)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(boolean),
       _BOOLEAN_STRUCTURE_DEFINITION_URL)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(boolean.DESCRIPTOR),
       _BOOLEAN_STRUCTURE_DEFINITION_URL)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(code),
       _CODE_STRUCTURE_DEFINITION_URL)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(patient),
       _PATIENT_STRUCTURE_DEFINITION_URL)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(patient.DESCRIPTOR),
       _PATIENT_STRUCTURE_DEFINITION_URL)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(boolean_descriptor_proto),
       _BOOLEAN_STRUCTURE_DEFINITION_URL)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(code_descriptor_proto),
       _CODE_STRUCTURE_DEFINITION_URL)
   self.assertEqual(
       annotation_utils.get_structure_definition_url(patient_descriptor_proto),
       _PATIENT_STRUCTURE_DEFINITION_URL)
コード例 #7
0
  def testGetFixedCodingSystem_withInvalidMessage_returnsNone(self):
    """Test get_fixed_coding_system functionality with no annotation present."""
    boolean = datatypes_pb2.Boolean()
    self.assertIsNone(annotation_utils.get_fixed_coding_system(boolean))

    code = datatypes_pb2.Code()
    self.assertIsNone(annotation_utils.get_fixed_coding_system(code))
コード例 #8
0
  def testMessageIsType_withActualMessageType_returnsTrue(self):
    """Test MessageIsType functionality against the proper FHIR type."""
    patient = patient_pb2.Patient()
    self.assertTrue(proto_utils.is_message_type(patient, patient_pb2.Patient))

    boolean = datatypes_pb2.Boolean()
    self.assertTrue(proto_utils.is_message_type(boolean, datatypes_pb2.Boolean))
コード例 #9
0
  def testGetValueAtFieldIndex_invalidIndex_raisesException(self):
    """Test get_value_at_field_index with an invalid index."""
    patient = patient_pb2.Patient(active=datatypes_pb2.Boolean(value=True))
    with self.assertRaises(ValueError) as ve:
      proto_utils.get_value_at_field_index(patient, "active", 1)

    self.assertIsInstance(ve.exception, ValueError)
コード例 #10
0
  def testSetInParentOrAdd_withSingularPrimitive_raises(self):
    """Test set_in_parent_or_add with singular proto primitive."""
    boolean = datatypes_pb2.Boolean()
    with self.assertRaises(ValueError) as ve:
      proto_utils.set_in_parent_or_add(boolean, "value")

    self.assertIsInstance(ve.exception, ValueError)
コード例 #11
0
 def testIsResource_withPrimitives_returnsFalse(self):
     """Test is_resource functionality on primitive input."""
     boolean = datatypes_pb2.Boolean()
     code = datatypes_pb2.Code()
     self.assertFalse(annotation_utils.is_resource(boolean))
     self.assertFalse(annotation_utils.is_resource(boolean.DESCRIPTOR))
     self.assertFalse(annotation_utils.is_resource(code))
     self.assertFalse(annotation_utils.is_resource(code.DESCRIPTOR))
コード例 #12
0
 def testIsPrimitiveType_withPrimitives_returnsTrue(self):
     """Test is_primitive_type functionality on primitive input."""
     boolean = datatypes_pb2.Boolean()
     code = datatypes_pb2.Code()
     self.assertTrue(annotation_utils.is_primitive_type(boolean))
     self.assertTrue(annotation_utils.is_primitive_type(boolean.DESCRIPTOR))
     self.assertTrue(annotation_utils.is_primitive_type(code))
     self.assertTrue(annotation_utils.is_primitive_type(code.DESCRIPTOR))
コード例 #13
0
  def testMessageIsType_withDifferentMessageType_returnsFalse(self):
    """Test MessageIsType functionality against a different FHIR type."""
    patient = patient_pb2.Patient()
    self.assertFalse(
        proto_utils.is_message_type(patient, datatypes_pb2.Boolean))

    boolean = datatypes_pb2.Boolean()
    self.assertFalse(proto_utils.is_message_type(boolean, patient_pb2.Patient))
コード例 #14
0
 def testIsReference_withInvalidReferenceType_returnsFalse(self):
     """Test is_reference functionality on invalid input."""
     boolean = datatypes_pb2.Boolean()
     code = datatypes_pb2.Code()
     self.assertFalse(annotation_utils.is_reference(boolean))
     self.assertFalse(annotation_utils.is_reference(boolean.DESCRIPTOR))
     self.assertFalse(annotation_utils.is_reference(code))
     self.assertFalse(annotation_utils.is_reference(code.DESCRIPTOR))
コード例 #15
0
  def testIsChoiceType_withInvalidChoiceType_returnsFalse(self):
    """Test is_choice_type functionality on invalid input."""
    boolean = datatypes_pb2.Boolean()
    value_fd = boolean.DESCRIPTOR.fields_by_name['value']
    self.assertFalse(annotation_utils.is_choice_type_field(value_fd))

    patient = patient_pb2.Patient()
    text_fd = patient.DESCRIPTOR.fields_by_name['text']
    self.assertFalse(annotation_utils.is_choice_type_field(text_fd))
コード例 #16
0
  def testAppendValueAtField_singularCompositeValue_raises(self):
    """Test append_value_at_field with a singular composite type."""
    patient = patient_pb2.Patient()
    active = datatypes_pb2.Boolean(value=True)

    with self.assertRaises(ValueError) as ve:
      proto_utils.append_value_at_field(patient, "active", active)

    self.assertIsInstance(ve.exception, ValueError)
コード例 #17
0
  def testCopyCommonField_differentMessageTypes_succeeds(self):
    """Tests that copy_common_field succeeds on a single Message field."""
    string_value = datatypes_pb2.String(id=datatypes_pb2.String(value="foo"))
    boolean_value = datatypes_pb2.Boolean(id=datatypes_pb2.String(value="bar"))

    # Before copy
    self.assertEqual(string_value.id.value, "foo")
    self.assertEqual(boolean_value.id.value, "bar")

    proto_utils.copy_common_field(string_value, boolean_value, "id")

    # After copy
    self.assertEqual(string_value.id.value, "foo")
    self.assertEqual(boolean_value.id.value, "foo")
コード例 #18
0
 def testFieldContentLength_withSingularField_returnsSingleCount(self):
   """Test field_content_length functionality on singular field input."""
   patient = patient_pb2.Patient(active=datatypes_pb2.Boolean(value=True))
   self.assertEqual(proto_utils.field_content_length(patient, "active"), 1)
コード例 #19
0
 def testGetValueAtFieldIndex_withSingularField_returnsValue(self):
   """Test get_value_at_field_index with a singular field."""
   patient = patient_pb2.Patient(active=datatypes_pb2.Boolean(value=True))
   result = proto_utils.get_value_at_field_index(patient, "active", 0)
   self.assertTrue(result.value)
コード例 #20
0
 def testFieldIsSet_withSetField_returnsTrue(self):
   """Test field_is_set with a set field."""
   patient = patient_pb2.Patient(active=datatypes_pb2.Boolean(value=True))
   self.assertTrue(proto_utils.field_is_set(patient, "active"))
コード例 #21
0
 def testGetValueAtField_withSingularComposite_returnsValue(self):
   """Test get_value_at_field with a singular composite field."""
   active_value = datatypes_pb2.Boolean(value=True)
   patient = patient_pb2.Patient(active=active_value)
   result = proto_utils.get_value_at_field(patient, "active")
   self.assertEqual(result, active_value)