Esempio n. 1
0
    def test_no_disown_from_changed_component(self):
        """
        Verify that a ticket is not disowned when the component is changed to
        a non-assigned component.
        """
        component1 = Component(self.env)
        component1.name = 'test1'
        component1.owner = 'joe'
        component1.insert()

        component2 = Component(self.env)
        component2.name = 'test2'
        component2.owner = ''
        component2.insert()

        ticket = Ticket(self.env)
        ticket['reporter'] = 'santa'
        ticket['summary'] = 'Foo'
        ticket['component'] = 'test1'
        ticket['status'] = 'new'
        tktid = ticket.insert()

        ticket = Ticket(self.env, tktid)
        ticket['component'] = 'test2'
        ticket.save_changes('jane', 'Testing')
        self.assertEqual('joe', ticket['owner'])
Esempio n. 2
0
    def test_owner_from_changed_component(self):
        """
        Verify that the owner of a new ticket is updated when the component is
        changed.
        """
        component1 = Component(self.env)
        component1.name = 'test1'
        component1.owner = 'joe'
        component1.insert()

        component2 = Component(self.env)
        component2.name = 'test2'
        component2.owner = 'kate'
        component2.insert()

        ticket = Ticket(self.env)
        ticket['reporter'] = 'santa'
        ticket['summary'] = 'Foo'
        ticket['component'] = 'test1'
        ticket['status'] = 'new'
        tktid = ticket.insert()

        ticket = Ticket(self.env, tktid)
        ticket['component'] = 'test2'
        ticket.save_changes('jane', 'Testing')
        self.assertEqual('kate', ticket['owner'])
Esempio n. 3
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. 4
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. 5
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. 6
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. 7
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. 8
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. 9
0
    def test_change_listener_changed(self):
        listener = TestTicketChangeListener(self.env)
        data = {'component': 'foo', 'milestone': 'bar'}
        tkt_id = self._insert_ticket('Hello World', reporter='john', **data)

        ticket = Ticket(self.env, tkt_id)
        ticket['component'] = 'new component'
        ticket['milestone'] = 'new milestone'

        comment = 'changing ticket'
        ticket.save_changes('author', comment)

        self.assertEqual('changed', listener.action)
        self.assertEqual(comment, listener.comment)
        self.assertEqual('author', listener.author)
        for key, value in data.iteritems():
            self.assertEqual(value, listener.old_values[key])
Esempio n. 10
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. 11
0
 def test_custom_time(self):
     # Add a custom field of type 'time'
     self.env.config.set('ticket-custom', 'due', 'time')
     ticket = Ticket(self.env)
     self.assertFalse('due' in ticket.std_fields)
     self.assertTrue('due' in ticket.time_fields)
     ticket['reporter'] = 'john'
     ticket['summary'] = 'Task1'
     tktid = ticket.insert()
     ticket = Ticket(self.env, tktid)
     # Empty string is default value, but not a time stamp
     self.assertEqual(None, ticket['due'])
     ts = datetime(2011, 11, 11, 0, 0, 0, 0, utc)
     ticket['due'] = ts
     t1 = datetime(2001, 1, 1, 1, 1, 1, 0, utc)
     ticket.save_changes('joe', when=t1)
     self.assertEqual(ts, ticket['due'])
     ticket['due'] = ''
     t2 = datetime(2001, 1, 1, 1, 1, 2, 0, utc)
     ticket.save_changes('joe', when=t2)
     self.assertEqual('', ticket['due'])
Esempio n. 12
0
 def _modify_ticket(self, author, comment, when, cnum, **kwargs):
     ticket = Ticket(self.env, self.id)
     for k, v in kwargs.iteritems():
         ticket[k] = v
     ticket.save_changes(author, comment, when, cnum=cnum)
Esempio n. 13
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()))