Esempio n. 1
0
    def test_prop_whitespace_change_is_not_saved(self):
        ticket = Ticket(self.env)
        ticket.populate({'summary': 'ticket summary'})
        ticket.insert()

        ticket['summary'] = ' ticket summary '
        ticket.save_changes()
        self.assertEqual(0, len(ticket.get_changelog()))
Esempio n. 2
0
 def test_changelog_with_reverted_change(self):
     tkt_id = self._insert_ticket('Test', reporter='joe', component='foo')
     ticket = Ticket(self.env, tkt_id)
     ticket['component'] = 'bar'
     ticket['component'] = 'foo'
     now = datetime(2001, 1, 1,  1, 1, 1, 0, utc)
     ticket.save_changes('jane', 'Testing', now)
     self.assertEqual([(now, 'jane', 'comment', '1', 'Testing', True)],
                      list(ticket.get_changelog()))
Esempio n. 3
0
    def test_can_save_ticket_without_explicit_username(self):
        ticket = Ticket(self.env)
        ticket.insert()

        ticket['summary'] = 'another summary'
        ticket.save_changes()

        for change in ticket.get_changelog():
            self.assertEqual(None, change[1])
Esempio n. 4
0
    def test_can_save_ticket_without_explicit_comment(self):
        ticket = Ticket(self.env)
        ticket.insert()

        ticket['summary'] = 'another summary'
        ticket.save_changes('foo')

        changes = ticket.get_changelog()
        comment_change = [c for c in changes if c[2] == 'comment'][0]
        self.assertEqual('1', comment_change[3])
        self.assertEqual('', comment_change[4])
Esempio n. 5
0
 def test_subsecond_change(self):
     """Perform two ticket changes within a second."""
     tkt_id = self._insert_ticket('Test', reporter='joe', component='foo')
     ticket = Ticket(self.env, tkt_id)
     t1 = datetime(2001, 1, 1, 1, 1, 1, 123456, utc)
     ticket.save_changes('jane', 'Testing', t1)
     t2 = datetime(2001, 1, 1, 1, 1, 1, 123789, utc)
     ticket.save_changes('jim', 'Other', t2)
     log = ticket.get_changelog()
     self.assertEqual(2, len(log))
     self.assertEqual((t1, 'jane', 'comment', '1', 'Testing', True), log[0])
     self.assertEqual((t2, 'jim', 'comment', '2', 'Other', True), log[1])
Esempio n. 6
0
 def test_changelog(self):
     tkt_id = self._insert_ticket('Test', reporter='joe', component='foo',
                                  milestone='bar')
     ticket = Ticket(self.env, tkt_id)
     ticket['component'] = 'bar'
     ticket['milestone'] = 'foo'
     now = datetime(2001, 1, 1, 1, 1, 1, 0, utc)
     ticket.save_changes('jane', 'Testing', now)
     changelog = sorted(ticket.get_changelog())
     self.assertEqual([(now, 'jane', 'comment', '1', 'Testing', True),
                       (now, 'jane', 'component', 'foo', 'bar', True),
                       (now, 'jane', 'milestone', 'bar', 'foo', True)],
                      changelog)
Esempio n. 7
0
    def test_action_with_state_change(self):
        """Actions can have change status."""
        self.env.config.set('ticket-workflow', 'embiggen', '* -> big')

        first_ticket_id = self._insert_ticket('Test 1', reporter='joe',
                                              status='small')
        second_ticket_id = self._insert_ticket('Test 2', reporter='joe')
        selected_tickets = [first_ticket_id, second_ticket_id]

        batch = BatchModifyModule(self.env)
        batch._save_ticket_changes(self.req, selected_tickets, {}, '',
                                   'embiggen')

        ticket = Ticket(self.env, int(first_ticket_id))
        changes = ticket.get_changelog()
        self.assertFieldChanged(first_ticket_id, 'status', 'big')
        self.assertFieldChanged(second_ticket_id, 'status', 'big')
Esempio n. 8
0
 def test_changelog_with_attachment(self):
     """Verify ordering of attachments and comments in the changelog."""
     tkt_id = self._insert_ticket('Test', reporter='joe', component='foo')
     ticket = Ticket(self.env, tkt_id)
     t1 = datetime(2001, 1, 1, 1, 1, 1, 0, utc)
     ticket.save_changes('jane', 'Testing', t1)
     t2 = datetime(2001, 1, 1, 1, 1, 2, 0, utc)
     self.env.db_transaction("""
         INSERT INTO attachment (type, id, filename, size, time,
                                 description, author, ipnr)
         VALUES ('ticket',%s,'file.txt',1234,%s, 'My file','mark','')
         """, (str(tkt_id), to_utimestamp(t2)))
     t3 = datetime(2001, 1, 1, 1, 1, 3, 0, utc)
     ticket.save_changes('jim', 'Other', t3)
     log = ticket.get_changelog()
     self.assertEqual(4, len(log))
     self.assertEqual((t1, 'jane', 'comment', '1', 'Testing', True), log[0])
     self.assertEqual([(t2, 'mark', 'attachment', '', 'file.txt', False),
                       (t2, 'mark', 'comment', '', 'My file', False)],
                       sorted(log[1:3]))
     self.assertEqual((t3, 'jim', 'comment', '2', 'Other', True), log[3])
Esempio n. 9
0
    def test_action_with_side_effects(self):
        """Actions can have operations with side effects."""
        self.env.config.set('ticket-workflow', 'buckify', '* -> *')
        self.env.config.set('ticket-workflow', 'buckify.operations',
                                               'set_owner')
        self.req.args = {}
        self.req.args['action_buckify_reassign_owner'] = 'buck'

        first_ticket_id = self._insert_ticket('Test 1', reporter='joe',
                                              owner='foo')
        second_ticket_id = self._insert_ticket('Test 2', reporter='joe')
        selected_tickets = [first_ticket_id, second_ticket_id]

        batch = BatchModifyModule(self.env)
        batch._save_ticket_changes(self.req, selected_tickets, {}, '',
                                   'buckify')

        ticket = Ticket(self.env, int(first_ticket_id))
        changes = ticket.get_changelog()
        self.assertFieldChanged(first_ticket_id, 'owner', 'buck')
        self.assertFieldChanged(second_ticket_id, 'owner', 'buck')
Esempio n. 10
0
    def test_comment_with_whitespace_only_is_not_saved(self):
        ticket = Ticket(self.env)
        ticket.insert()

        ticket.save_changes(comment='\n \n ')
        self.assertEqual(0, len(ticket.get_changelog()))
Esempio n. 11
0
 def assertFieldChanged(self, ticket_id, field, new_value):
     ticket = Ticket(self.env, int(ticket_id))
     changes = ticket.get_changelog()
     field_change = [c for c in changes if c[2] == field][0]
     self.assertEqual(field_change[4], new_value)
Esempio n. 12
0
 def assertCommentAdded(self, ticket_id, comment):
     ticket = Ticket(self.env, int(ticket_id))
     changes = ticket.get_changelog()
     comment_change = [c for c in changes if c[2] == 'comment'][0]
     self.assertEqual(comment_change[2], comment)