Beispiel #1
0
    def reference_type(self):
        reference = None
        if is_concept(self.expression):
            reference = CONCEPTS_EXPRESSIONS
        if is_mapping(self.expression):
            reference = MAPPINGS_EXPRESSIONS

        return reference
Beispiel #2
0
    def create_entities_from_expressions(self):
        if is_concept(self.expression):
            self.concepts = self.get_concepts()
        elif is_mapping(self.expression):
            self.mappings = self.get_mappings()

        if (not self.concepts or not self.concepts.exists()) and (
                not self.mappings or not self.mappings.exists()):
            raise ValidationError({'detail': [EXPRESSION_INVALID]})
Beispiel #3
0
    def __get_children_from_expressions(expressions):
        concepts = Concept.objects.none()
        mappings = Mapping.objects.none()
        for expression in expressions:
            if is_concept(expression):
                concepts |= Concept.from_uri_queryset(expression)
            if is_mapping(expression):
                mappings |= Mapping.from_uri_queryset(expression)

        return concepts, mappings
Beispiel #4
0
    def test_is_mapping(self):
        self.assertFalse(is_mapping(None))
        self.assertFalse(is_mapping(''))
        self.assertFalse(is_mapping('orgs/org-1/sources/source-1/mapping/'))

        self.assertTrue(is_mapping('orgs/org-1/sources/source-1/mappings/'))
        self.assertTrue(is_mapping('users/user-1/sources/source-1/mappings/'))
        self.assertTrue(
            is_mapping('users/user-1/collections/coll-1/mappings/'))
        self.assertTrue(is_mapping('/mappings/'))
Beispiel #5
0
    def get_all_related_mappings(self, expressions):
        all_related_mappings = []
        unversioned_mappings = concept_expressions = []

        for expression in expressions:
            if is_mapping(expression):
                unversioned_mappings.append(drop_version(expression))
            elif is_concept(expression):
                concept_expressions.append(expression)

        for concept_expression in concept_expressions:
            ref = CollectionReference(expression=concept_expression)
            try:
                self.validate(ref)
                all_related_mappings += ref.get_related_mappings(
                    unversioned_mappings)
            except:  # pylint: disable=bare-except
                continue

        return all_related_mappings