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)
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)
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)