def get_value_map_for_update(self): # Empty ticket return empty maps. ticket = TicketWrapper(ticket_id=123) value_map1 = ticket.get_value_map_for_update() self.assert_equal(len(value_map1), 0) # Otherwise the map should contain all not None value. ticket.summary = 'Test TicketWrapper' ticket.priority = PRIORITY_ATTRIBUTE_VALUES.LOW value_map2 = ticket.get_value_map_for_update() self.assert_equal(len(value_map2), 2) self.assert_equal(value_map2[SummaryAttribute.NAME], 'Test TicketWrapper') self.assert_equal(value_map2[PriorityAttribute.NAME], PRIORITY_ATTRIBUTE_VALUES.LOW)
def get_value_map_for_update(self): # Empty ticket return empty maps. ticket = TicketWrapper(ticket_id=123) value_map1 = ticket.get_value_map_for_update() self.assert_equal(len(value_map1), 0) # Otherwise the map should contain all not None value. ticket.summary = 'Test TicketWrapper' ticket.priority = PRIORITY_ATTRIBUTE_VALUES.LOW value_map2 = ticket.get_value_map_for_update() self.assert_equal(len(value_map2), 2) self.assert_equal(value_map2[SummaryAttribute.NAME], 'Test TicketWrapper') self.assert_equal(value_map2[PriorityAttribute.NAME], PRIORITY_ATTRIBUTE_VALUES.LOW)
def test_update(self): ori_ticket = self.__create_ticket_wrapper() trac = self.__alter_to_trac_with_all_permissions() create_attrs = ori_ticket.get_value_map_for_ticket_creation() ticket_data = (ori_ticket.summary, ori_ticket.description, create_attrs, True) ticket_id = trac.create(*ticket_data) self.assert_equal(trac.ticket_counter, 1) upd_ticket = TicketWrapper(description='changes in description', owner='owner2') comment = 'A normal ticket update.' update_attrs = upd_ticket.get_value_map_for_update() update_data = (ticket_id, comment, update_attrs, True) # invalid connection trac = self.__alter_to_trac_with_invalid_connection(trac) self.assert_raises(ProtocolError, trac.update, *update_data) # invalid permission trac = self.__alter_to_trac_with_get_only_permission(trac) self.assert_raises(ProtocolError, trac.update, *update_data) # success trac.get_only = False return_value = trac.update(*update_data) self.assert_equal(trac.ticket_counter, 1) self.assert_equal(len(return_value), 4) self.assert_equal(return_value[0], ticket_id) self.assert_is_not_none(return_value[1]) # created time self.assert_is_not_none(return_value[2]) # changetime self.assert_not_equal(return_value[1], return_value[2]) attrs = return_value[3] for attr_name, value in attrs.iteritems(): if update_attrs.has_key(attr_name): value_map = update_attrs elif create_attrs.has_key(attr_name): value_map = create_attrs else: value = getattr(ori_ticket, attr_name) if value == '': value = None self.assert_equal(getattr(ori_ticket, attr_name), value) continue self.assert_equal(value_map[attr_name], value) get_ticket = trac.get(ticket_id) self.assert_equal(get_ticket, return_value) # invalid arguments update_data = ('123', comment, update_attrs, True) self.assert_raises(Fault, trac.update, *update_data) update_data = (None, comment, update_attrs, True) self.assert_raises(TypeError, trac.update, *update_data) update_data = (1, None, update_attrs, True) self.assert_raises(TypeError, trac.update, *update_data) update_data = (1, comment, None, True) self.assert_raises(TypeError, trac.update, *update_data) update_data = (1, comment, update_attrs.values(), True) self.assert_raises(Fault, trac.update, *update_data) update_data = (1, comment, update_attrs, None) self.assert_raises(TypeError, trac.update, *update_data)
def test_update(self): ori_ticket = self.__create_ticket_wrapper() trac = self.__alter_to_trac_with_all_permissions() create_attrs = ori_ticket.get_value_map_for_ticket_creation() ticket_data = (ori_ticket.summary, ori_ticket.description, create_attrs, True) ticket_id = trac.create(*ticket_data) self.assert_equal(trac.ticket_counter, 1) upd_ticket = TicketWrapper(description='changes in description', owner='owner2') comment = 'A normal ticket update.' update_attrs = upd_ticket.get_value_map_for_update() update_data = (ticket_id, comment, update_attrs, True) # invalid connection trac = self.__alter_to_trac_with_invalid_connection(trac) self.assert_raises(ProtocolError, trac.update, *update_data) # invalid permission trac = self.__alter_to_trac_with_get_only_permission(trac) self.assert_raises(ProtocolError, trac.update, *update_data) # success trac.get_only = False return_value = trac.update(*update_data) self.assert_equal(trac.ticket_counter, 1) self.assert_equal(len(return_value), 4) self.assert_equal(return_value[0], ticket_id) self.assert_is_not_none(return_value[1]) # created time self.assert_is_not_none(return_value[2]) # changetime self.assert_not_equal(return_value[1], return_value[2]) attrs = return_value[3] for attr_name, value in attrs.iteritems(): if update_attrs.has_key(attr_name): value_map = update_attrs elif create_attrs.has_key(attr_name): value_map = create_attrs else: value = getattr(ori_ticket, attr_name) if value == '': value = None self.assert_equal(getattr(ori_ticket, attr_name), value) continue self.assert_equal(value_map[attr_name], value) get_ticket = trac.get(ticket_id) self.assert_equal(get_ticket, return_value) # invalid arguments update_data = ('123', comment, update_attrs, True) self.assert_raises(Fault, trac.update, *update_data) update_data = (None, comment, update_attrs, True) self.assert_raises(TypeError, trac.update, *update_data) update_data = (1, None, update_attrs, True) self.assert_raises(TypeError, trac.update, *update_data) update_data = (1, comment, None, True) self.assert_raises(TypeError, trac.update, *update_data) update_data = (1, comment, update_attrs.values(), True) self.assert_raises(Fault, trac.update, *update_data) update_data = (1, comment, update_attrs, None) self.assert_raises(TypeError, trac.update, *update_data)