예제 #1
0
 def _test(mb, cnt_type, parent_repr_name, children_repr_name):
     mp_reg = get_mapping_registry(cnt_type)
     mp = mp_reg.find_or_create_mapping(MyEntityMember)
     de = mp.map_to_data_element(mb)
     prx = DataElementAttributeProxy(de)
     assert prx.get_data_element() is de
     assert prx.id == 0
     assert prx.text == 'TEXT'
     assert prx.number == 1
     if cnt_type is XmlMime:
         # The parent attribute is a link.
         assert isinstance(getattr(prx, parent_repr_name),
                           LinkedDataElement)
         with pytest.raises(AttributeError):
             dummy = getattr(prx, children_repr_name)
     else:
         assert isinstance(getattr(prx, parent_repr_name),
                           DataElementAttributeProxy)
         children_el = getattr(prx, children_repr_name)
         assert isinstance(children_el, LinkedDataElement)
     # Nonexisting attribute raises error.
     with pytest.raises(AttributeError):
         dummy = getattr(prx, 'foo')
     with pytest.raises(AttributeError):
         setattr(prx, 'foo', 'murks')
     # Set terminal attribute.
     prx.id = 1
     assert prx.id == 1
     # Set nested attribute.
     setattr(prx, parent_repr_name, None)
     assert getattr(prx, parent_repr_name) is None
     with pytest.raises(ValueError):
         setattr(prx, parent_repr_name, 1)
예제 #2
0
 def _test(mb, cnt_type, parent_repr_name, children_repr_name):
     mp_reg = get_mapping_registry(cnt_type)
     mp = mp_reg.find_or_create_mapping(MyEntityMember)
     de = mp.map_to_data_element(mb)
     prx = DataElementAttributeProxy(de)
     assert prx.get_data_element() is de
     assert prx.id == 0
     assert prx.text == 'TEXT'
     assert prx.number == 1
     if cnt_type is XmlMime:
         # The parent attribute is a link.
         assert isinstance(getattr(prx, parent_repr_name),
                           LinkedDataElement)
         with pytest.raises(AttributeError):
             dummy = getattr(prx, children_repr_name)
     else:
         assert isinstance(getattr(prx, parent_repr_name),
                           DataElementAttributeProxy)
         children_el = getattr(prx, children_repr_name)
         assert isinstance(children_el, LinkedDataElement)
     # Nonexisting attribute raises error.
     with pytest.raises(AttributeError):
         dummy = getattr(prx, 'foo')
     with pytest.raises(AttributeError):
         setattr(prx, 'foo', 'murks')
     # Set terminal attribute.
     prx.id = 1
     assert prx.id == 1
     # Set nested attribute.
     setattr(prx, parent_repr_name, None)
     assert getattr(prx, parent_repr_name) is None
     with pytest.raises(ValueError):
         setattr(prx, parent_repr_name, 1)
예제 #3
0
 def _test(cnt_type, parent_repr_name, children_repr_name):
     entity = create_entity()
     mb = MyEntityMember.create_from_entity(entity)
     mp_reg = get_mapping_registry(cnt_type)
     mp = mp_reg.find_or_create_mapping(MyEntityMember)
     de = mp.map_to_data_element(mb)
     prx = DataElementAttributeProxy(de)
     self.assert_true(prx.get_data_element() is de)
     self.assert_equal(prx.id, 0)
     self.assert_equal(prx.text, 'TEXT')
     self.assert_equal(prx.number, 1)
     # The parent and children attributes are links.
     self.assert_true(isinstance(getattr(prx, parent_repr_name),
                                 LinkedDataElement))
     children_el = getattr(prx, children_repr_name)
     if cnt_type is XmlMime:
         self.assert_is_none(children_el)
     else:
         self.assert_true(isinstance(children_el, LinkedDataElement))
     # Nonexisting attribute raises error.
     self.assert_raises(AttributeError, getattr, prx, 'foo')
     self.assert_raises(AttributeError, setattr, prx, 'foo', 'murks')
     # Set terminal attribute.
     prx.id = 1
     self.assert_equal(prx.id, 1)
     # Set nested attribute.
     setattr(prx, parent_repr_name, None)
     self.assert_is_none(getattr(prx, parent_repr_name))
     self.assert_raises(ValueError, setattr, prx, parent_repr_name,
                        1)
예제 #4
0
 def _test(cnt_type, parent_repr_name, children_repr_name):
     entity = create_entity()
     mb = MyEntityMember.create_from_entity(entity)
     mp_reg = get_mapping_registry(cnt_type)
     mp = mp_reg.find_or_create_mapping(MyEntityMember)
     de = mp.map_to_data_element(mb)
     prx = DataElementAttributeProxy(de)
     self.assert_true(prx.get_data_element() is de)
     self.assert_equal(prx.id, 0)
     self.assert_equal(prx.text, 'TEXT')
     self.assert_equal(prx.number, 1)
     # The parent and children attributes are links.
     self.assert_true(
         isinstance(getattr(prx, parent_repr_name), LinkedDataElement))
     children_el = getattr(prx, children_repr_name)
     if cnt_type is XmlMime:
         self.assert_is_none(children_el)
     else:
         self.assert_true(isinstance(children_el, LinkedDataElement))
     # Nonexisting attribute raises error.
     self.assert_raises(AttributeError, getattr, prx, 'foo')
     self.assert_raises(AttributeError, setattr, prx, 'foo', 'murks')
     # Set terminal attribute.
     prx.id = 1
     self.assert_equal(prx.id, 1)
     # Set nested attribute.
     setattr(prx, parent_repr_name, None)
     self.assert_is_none(getattr(prx, parent_repr_name))
     self.assert_raises(ValueError, setattr, prx, parent_repr_name, 1)