Exemplo n.º 1
0
 def test_invalid_ticket_id(self):
     self.assertEqual(Ticket.id_is_valid(-1), False)
     self.assertEqual(Ticket.id_is_valid(0), False)
     self.assertEqual(Ticket.id_is_valid(1), True)
     self.assertEqual(Ticket.id_is_valid(1L << 31), True)
     self.assertEqual(Ticket.id_is_valid(1L << 32), False)
     self.assertRaises(ResourceNotFound, Ticket, self.env, -1)
     self.assertRaises(ResourceNotFound, Ticket, self.env, 1L << 32)
Exemplo n.º 2
0
 def _format_link(self, formatter, ns, target, label, fullmatch=None):
     intertrac = formatter.shorthand_intertrac_helper(ns, target, label,
                                                      fullmatch)
     if intertrac:
         return intertrac
     try:
         link, params, fragment = formatter.split_link(target)
         r = Ranges(link)
         if len(r) == 1:
             num = r.a
             ticket = formatter.resource('ticket', num)
             from txomon.ticket.model import Ticket
             if Ticket.id_is_valid(num) and \
                     'TICKET_VIEW' in formatter.perm(ticket):
                 # TODO: attempt to retrieve ticket view directly,
                 #       something like: t = Ticket.view(num)
                 for type, summary, status, resolution in \
                         self.env.db_query("""
                         SELECT type, summary, status, resolution
                         FROM ticket WHERE id=%s
                         """, (str(num),)):
                     title = self.format_summary(summary, status,
                                                 resolution, type)
                     href = formatter.href.ticket(num) + params + fragment
                     return tag.a(label, title=title, href=href,
                                  class_='%s ticket' % status)
         else:
             ranges = str(r)
             if params:
                 params = '&' + params[1:]
             label_wrap = label.replace(',', u',\u200b')
             ranges_wrap = ranges.replace(',', u', ')
             return tag.a(label_wrap,
                          title=_("Tickets %(ranges)s", ranges=ranges_wrap),
                          href=formatter.href.query(id=ranges) + params)
     except ValueError:
         pass
     return tag.a(label, class_='missing ticket')