Esempio n. 1
0
 def test_delete_last_comment_by_date(self):
     ticket = Ticket(self.env, self.id)
     self.assertEqual('a', ticket['keywords'])
     self.assertEqual('change4', ticket['foo'])
     t = datetime.now(utc)
     ticket.delete_change(cdate=self.t4, when=t)
     self.assertEqual('a, b', ticket['keywords'])
     self.assertEqual('change3', ticket['foo'])
     self.assertEqual(None, ticket.get_change(cdate=self.t4))
     self.assertNotEqual(None, ticket.get_change(cdate=self.t3))
     self.assertEqual(t, ticket.time_changed)
Esempio n. 2
0
 def test_delete_last_comment_when_custom_field_gone(self):
     """Regression test for http://trac.edgewall.org/ticket/10858"""
     ticket = Ticket(self.env, self.id)
     self.assertEqual('a', ticket['keywords'])
     self.assertEqual('change4', ticket['foo'])
     # we simulate the removal of the definition of the 'foo' custom field
     self.env.config.remove('ticket-custom', 'foo')
     del TicketSystem(self.env).fields
     del TicketSystem(self.env).custom_fields
     ticket = Ticket(self.env, self.id)
     #
     t = datetime.now(utc)
     ticket.delete_change(cnum=4, when=t)
     self.assertEqual('a, b', ticket['keywords'])
     # 'foo' is no longer defined for the ticket
     self.assertEqual(None, ticket['foo'])
     # however, 'foo=change3' is still in the database
     self.assertEqual([('change3',)], self.env.db_query("""
         SELECT value FROM ticket_custom WHERE ticket=%s AND name='foo'
         """, (self.id,)))
     self.assertEqual(None, ticket.get_change(cnum=4))
     self.assertNotEqual(None, ticket.get_change(cnum=3))
     self.assertEqual(t, ticket.time_changed)
Esempio n. 3
0
 def test_delete_mid_comment_by_date(self):
     ticket = Ticket(self.env, self.id)
     self.assertChange(ticket, 4, self.t4, 'joe',
         comment=dict(author='joe', old='4', new='Comment 4'),
         keywords=dict(author='joe', old='a, b', new='a'),
         foo=dict(author='joe', old='change3', new='change4'))
     t = datetime.now(utc)
     ticket.delete_change(cdate=self.t3, when=t)
     self.assertEqual(None, ticket.get_change(cdate=self.t3))
     self.assertEqual('a', ticket['keywords'])
     self.assertChange(ticket, 4, self.t4, 'joe',
         comment=dict(author='joe', old='4', new='Comment 4'),
         keywords=dict(author='joe', old='a, b, c', new='a'),
         foo=dict(author='joe', old='change2', new='change4'))
     self.assertEqual(t, ticket.time_changed)
Esempio n. 4
0
 def test_delete_mid_comment_inconsistent(self):
     # Make oldvalue on keywords for change 4 inconsistent. This should
     # result in no change in oldvalue when deleting change 3. The
     # oldvalue of foo should change normally.
     self.env.db_transaction("""
         UPDATE ticket_change SET oldvalue='1, 2'
         WHERE field='keywords' AND oldvalue='a, b'
         """)
     ticket = Ticket(self.env, self.id)
     self.assertChange(ticket, 4, self.t4, 'joe',
         comment=dict(author='joe', old='4', new='Comment 4'),
         keywords=dict(author='joe', old='1, 2', new='a'),
         foo=dict(author='joe', old='change3', new='change4'))
     ticket.delete_change(3)
     self.assertEqual(None, ticket.get_change(3))
     self.assertEqual('a', ticket['keywords'])
     self.assertChange(ticket, 4, self.t4, 'joe',
         comment=dict(author='joe', old='4', new='Comment 4'),
         keywords=dict(author='joe', old='1, 2', new='a'),
         foo=dict(author='joe', old='change2', new='change4'))