Esempio n. 1
0
    def test_attr_cast_free(self):
        a_1 = FreeAttribute('/foo')
        assert isinstance(a_1, FreeAttribute)

        a_2 = to_attribute('/foo')
        assert id(a_1) == id(a_2)

        a_3 = to_attribute(a_1)
        assert id(a_1) == id(a_3)
Esempio n. 2
0
    def test_attr_cast_virtual(self):
        enum_member: VirtualAttribute = VirtualAttribute.OGIT__OUT_ID
        a_1 = enum_member.value
        assert isinstance(a_1, VirtualSystemAttribute)

        a_2 = to_attribute(enum_member)
        assert id(a_1) == id(a_2)

        a_3 = to_attribute(a_1)
        assert id(a_1) == id(a_3)

        a_4 = to_attribute('ogit/_out-id')
        assert id(a_1) == id(a_4)
Esempio n. 3
0
 def transform_map(
         mapping: Mapping[str, Any]) -> Dict[Attribute, Any]:
     result = {}
     for k, v in mapping.items():
         a = to_attribute(k)
         result[a] = v
     return result
Esempio n. 4
0
    def test_attr_cast_ogit(self):
        enum_member: OgitAttribute = OgitAttribute.OGIT_NAME
        a_1 = enum_member.value
        assert isinstance(a_1, OntologyAttribute)

        a_2 = to_attribute('ogit/name')
        assert id(a_1) == id(a_2)

        a_3 = to_attribute(enum_member)
        assert id(a_1) == id(a_3)

        a_4 = to_attribute(a_1)
        assert id(a_1) == id(a_4)

        with pytest.raises(ValueError):
            to_attribute('ogit/1415620a-8b4f-4a70-b093-73de0ec88371')
Esempio n. 5
0
 def __delitem__(self, key: ATTRIBUTE_T) -> None:
     if isinstance(key, Attribute):
         super().__delitem__(key)
     elif isinstance(key, (OgitAttribute, VirtualAttribute, SystemAttribute,
                           ReadOnlyAttribute, FinalAttribute)):
         super().__delitem__(key.value)
     else:
         a = to_attribute(key)
         super().__delitem__(a)
Esempio n. 6
0
 def __getitem__(self, key: ATTRIBUTE_T) -> Any:
     if isinstance(key, Attribute):
         return super().__getitem__(key)
     elif isinstance(key, (OgitAttribute, VirtualAttribute, SystemAttribute,
                           ReadOnlyAttribute, FinalAttribute)):
         return super().__getitem__(key.value)
     else:
         a = to_attribute(key)
         return super().__getitem__(a)
Esempio n. 7
0
 def __contains__(self, key: object) -> bool:
     if isinstance(key, Attribute):
         return super().__contains__(key)
     elif isinstance(key, (OgitAttribute, VirtualAttribute, SystemAttribute,
                           ReadOnlyAttribute, FinalAttribute)):
         return super().__contains__(key.value)
     elif isinstance(key, str):
         a = to_attribute(key)
         return super().__contains__(a)
     else:
         raise TypeError(type(key))
Esempio n. 8
0
 def __init__(self,
              data: Optional[Mapping[ATTRIBUTE_T, Any]] = None,
              **kwargs: Any) -> None:
     d = {}
     if isinstance(data, Mapping):
         for k, v in data.items():
             if isinstance(k, Attribute):
                 d[k] = v
             elif isinstance(
                     k, (OgitAttribute, VirtualAttribute, SystemAttribute,
                         ReadOnlyAttribute, FinalAttribute)):
                 d[k.value] = v
             elif isinstance(k, str):
                 a = to_attribute(k)
                 d[a] = v
             else:
                 raise TypeError(type(k))
     for k, v in kwargs.items():
         a = to_attribute(k)
         d[a] = v
     super().__init__(d)
Esempio n. 9
0
 def test_attr_cast_invalid(self):
     with pytest.raises(TypeError):
         # noinspection PyTypeChecker
         to_attribute(123)
     with pytest.raises(TypeError):
         # noinspection PyTypeChecker
         to_attribute(GraphType.VERTEX)
     with pytest.raises(ValueError):
         to_attribute('1415620a-8b4f-4a70-b093-73de0ec88371')
Esempio n. 10
0
    def test_attr_cast_system(self):
        enum_member: OgitAttribute = OgitAttribute.OGIT__ID
        a_1 = enum_member.value
        assert isinstance(a_1, OntologyAttribute)

        a_2 = to_attribute('ogit/_id')
        assert id(a_1) == id(a_2)

        a_3 = to_attribute(enum_member)
        assert id(a_1) == id(a_3)

        a_4 = to_attribute(a_1)
        assert id(a_1) == id(a_4)

        a_5 = to_attribute(SystemAttribute.OGIT__ID)
        assert id(a_1) == id(a_5)

        with pytest.raises(ValueError):
            to_attribute('ogit/_1415620a-8b4f-4a70-b093-73de0ec88371')