1
2
3
4
5
6
7
8
9
10
11
12
13
14 import unittest
15 from datetime import datetime
16
17 from trac.test import EnvironmentStub, Mock
18 from trac.tests.contentgen import random_sentence
19 from trac.ticket.model import Ticket
20 from trac.util.datefmt import utc
21 from trac.versioncontrol.api import Repository, RepositoryManager
22 from trac.wiki.tests import formatter
23 from tracopt.ticket.commit_updater import CommitTicketUpdater
24
25
27
35
38
47
49 self._make_tickets(1)
50 message = 'This is the first comment. Refs #1.'
51 chgset = Mock(repos=self.repos, rev=1, message=message, author='joe',
52 date=datetime(2001, 1, 1, 1, 1, 1, 0, utc))
53 self.updater.changeset_added(self.repos, chgset)
54 self.assertEqual("""\
55 In [changeset:"1/repos1" 1/repos1]:
56 {{{
57 #!CommitTicketReference repository="repos1" revision="1"
58 This is the first comment. Refs #1.
59 }}}""", self.tickets[0].get_change(cnum=1)['fields']['comment']['new'])
60
62 self._make_tickets(2)
63 message = 'This is the first comment. Refs #1.'
64 old_chgset = Mock(repos=self.repos, rev=1,
65 message=message, author='joe',
66 date=datetime(2001, 1, 1, 1, 1, 1, 0, utc))
67 message = 'This is the first comment after an edit. Refs #1, #2.'
68 new_chgset = Mock(repos=self.repos, rev=1,
69 message=message, author='joe',
70 date=datetime(2001, 1, 2, 1, 1, 1, 0, utc))
71 self.updater.changeset_added(self.repos, old_chgset)
72 self.updater.changeset_modified(self.repos, new_chgset, old_chgset)
73 self.assertEqual("""\
74 In [changeset:"1/repos1" 1/repos1]:
75 {{{
76 #!CommitTicketReference repository="repos1" revision="1"
77 This is the first comment. Refs #1.
78 }}}""", self.tickets[0].get_change(cnum=1)['fields']['comment']['new'])
79 self.assertEqual("""\
80 In [changeset:"1/repos1" 1/repos1]:
81 {{{
82 #!CommitTicketReference repository="repos1" revision="1"
83 This is the first comment after an edit. Refs #1, #2.
84 }}}""", self.tickets[1].get_change(cnum=1)['fields']['comment']['new'])
85
86
96 def _get_changeset(rev=None):
97 return Mock(message="the message. refs #1. ", rev=rev)
98 setattr(RepositoryManager(tc.env), 'get_repository', _get_repository)
99
100
101 COMMIT_TICKET_REFERENCE_MACRO_TEST_CASES = u"""\
102 ============================== No arguments
103 [[CommitTicketReference]]
104 ------------------------------
105 <p>
106 </p><div class="message"><p>
107 the message. refs <a class="new ticket" href="/ticket/1" title="the summary (new)">#1</a>. <br />
108 </p>
109 </div><p>
110 </p>
111 ------------------------------
112 """
113
114
122
123
124 if __name__ == '__main__':
125 unittest.main(defaultTest='suite')
126