?? wikisyntax.py
字號:
import unittestfrom trac.ticket.model import Ticketfrom trac.ticket.roadmap import Milestonefrom trac.ticket.query import QueryModulefrom trac.ticket.report import ReportModulefrom trac.wiki.tests import formatterTICKET_TEST_CASES="""============================== ticket: link resolverticket:1ticket:12ticket:abc------------------------------<p><a class="new ticket" href="/ticket/1" title="This is the summary (new)">ticket:1</a><a class="missing ticket" href="/ticket/12" rel="nofollow">ticket:12</a><a class="missing ticket">ticket:abc</a></p>------------------------------============================== ticket: link resolver + argumentsticket:1?format=csvticket:1#comment:3------------------------------<p><a class="new ticket" href="/ticket/1?format=csv" title="This is the summary (new)">ticket:1?format=csv</a><a class="new ticket" href="/ticket/1#comment:3" title="This is the summary (new)">ticket:1#comment:3</a></p>------------------------------============================== ticket: link resolver with rangesticket:12-14,33ticket:12,33?order=created------------------------------<p><a href="/query?id=12-14%2C33" title="Tickets 12-14,33">ticket:12-14,33</a><a href="/query?id=12%2C33&order=created" title="Tickets 12,33">ticket:12,33?order=created</a></p>------------------------------============================== ticket link shorthand form#1, #2#12, #abc------------------------------<p><a class="new ticket" href="/ticket/1" title="This is the summary (new)">#1</a>, <a class="missing ticket" href="/ticket/2" rel="nofollow">#2</a><a class="missing ticket" href="/ticket/12" rel="nofollow">#12</a>, #abc</p>------------------------------============================== escaping the above!#1------------------------------<p>#1</p>------------------------------#1============================== InterTrac for ticketstrac:ticket:2041[trac:ticket:2041 Trac #2041]#T2041#trac2041------------------------------<p><a class="ext-link" href="http://trac.edgewall.org/intertrac/ticket%3A2041" title="ticket:2041 in Trac's Trac"><span class="icon">trac:ticket:2041</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/ticket%3A2041" title="ticket:2041 in Trac's Trac"><span class="icon">Trac #2041</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/ticket%3A2041" title="ticket:2041 in Trac's Trac"><span class="icon">#T2041</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/ticket%3A2041" title="ticket:2041 in Trac's Trac"><span class="icon">#trac2041</span></a></p>------------------------------============================== Ticket InterTrac shorthandsT:#2041trac:#2041------------------------------<p><a class="ext-link" href="http://trac.edgewall.org/intertrac/%232041" title="#2041 in Trac's Trac"><span class="icon">T:#2041</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/%232041" title="#2041 in Trac's Trac"><span class="icon">trac:#2041</span></a></p>------------------------------""" # " def ticket_setup(tc): ticket = Ticket(tc.env) ticket.values.update({'reporter': 'santa', 'summary': 'This is the summary', 'status': 'new'}) ticket.insert()REPORT_TEST_CASES="""============================== report link shorthand form{1}, {2}{12}, {abc}------------------------------<p><a class="report" href="/report/1">{1}</a>, <a class="report" href="/report/2">{2}</a><a class="report" href="/report/12">{12}</a>, {abc}</p>------------------------------============================== escaping the above!{1}------------------------------<p>{1}</p>------------------------------{1}============================== ticket shorthands, not numerical HTML entities ------------------------------<p>&#1; &#23;</p>------------------------------&#1; &#23;============================== InterTrac for reportstrac:report:1[trac:report:1 Trac r1]{T1}{trac1}{trac 1}------------------------------<p><a class="ext-link" href="http://trac.edgewall.org/intertrac/report%3A1" title="report:1 in Trac's Trac"><span class="icon">trac:report:1</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/report%3A1" title="report:1 in Trac's Trac"><span class="icon">Trac r1</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/report%3A1" title="report:1 in Trac's Trac"><span class="icon">{T1}</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/report%3A1" title="report:1 in Trac's Trac"><span class="icon">{trac1}</span></a><a class="ext-link" href="http://trac.edgewall.org/intertrac/report%3A1" title="report:1 in Trac's Trac"><span class="icon">{trac 1}</span></a></p>------------------------------""" # 'def report_setup(tc): db = tc.env.get_db_cnx() # TBDMILESTONE_TEST_CASES="""============================== milestone: link resolvermilestone:foo[milestone:boo Milestone Boo][milestone:roo Milestone Roo]------------------------------<p><a class="missing milestone" href="/milestone/foo" rel="nofollow">milestone:foo</a><a class="milestone" href="/milestone/boo">Milestone Boo</a><a class="closed milestone" href="/milestone/roo">Milestone Roo</a></p>------------------------------============================== milestone: link resolver + argumentsmilestone:?action=new[milestone:1.0#KnownIssues Known Issues for 1.0]------------------------------<p><a class="missing milestone" href="/milestone/?action=new" rel="nofollow">milestone:?action=new</a><a class="missing milestone" href="/milestone/1.0#KnownIssues" rel="nofollow">Known Issues for 1.0</a></p>------------------------------""" #"def milestone_setup(tc): from datetime import datetime from trac.util.datefmt import utc boo = Milestone(tc.env) boo.name = 'boo' boo.completed = boo.due = None boo.insert() roo = Milestone(tc.env) roo.name = 'roo' roo.completed = datetime.now(utc) roo.due = None roo.insert()QUERY_TEST_CASES="""============================== query: link resolverquery:?order=priorityquery:?order=priority&owner=mequery:status=new|reopenedquery:milestone!=query:milestone=1.0|2.0&owner=mequery:group=ownerquery:verbose=1------------------------------<p><a class="query" href="/query?order=priority">query:?order=priority</a></p><p><a class="query" href="/query?order=priority&owner=me">query:?order=priority&owner=me</a></p><p><a class="query" href="/query?status=new&status=reopened&order=priority">query:status=new|reopened</a></p><p><a class="query" href="/query?order=priority&milestone=%21">query:milestone!=</a></p><p><a class="query" href="/query?order=priority&milestone=1.0&milestone=2.0&owner=me">query:milestone=1.0|2.0&owner=me</a></p><p><a class="query" href="/query?group=owner&order=priority">query:group=owner</a></p><p><a class="query" href="/query?order=priority&row=description">query:verbose=1</a></p>------------------------------"""COMMENT_TEST_CASES="""============================== comment: link resolver (deprecated)comment:ticket:123:2 (deprecated)[comment:ticket:123:2 see above] (deprecated)[comment:ticket:123:description see descr] (deprecated)------------------------------<p><a href="/ticket/123#comment:2" title="Comment 2 for Ticket #123">comment:ticket:123:2</a> (deprecated)<a href="/ticket/123#comment:2" title="Comment 2 for Ticket #123">see above</a> (deprecated)<a href="/ticket/123#comment:description" title="Comment description for Ticket #123">see descr</a> (deprecated)</p>------------------------------============================== comment: link resolvercomment:2:ticket:123[comment:2:ticket:123 see above][comment:description:ticket:123 see descr]------------------------------<p><a href="/ticket/123#comment:2" title="Comment 2 for Ticket #123">comment:2:ticket:123</a><a href="/ticket/123#comment:2" title="Comment 2 for Ticket #123">see above</a><a href="/ticket/123#comment:description" title="Comment description for Ticket #123">see descr</a></p>------------------------------""" # "# NOTE: the following test cases:## comment:2# [comment:2 see above]## would trigger an error in the workaround code ../api.py, line 235# As it's a problem with a temp workaround, I think there's no need# to fix it for now.def suite(): suite = unittest.TestSuite() suite.addTest(formatter.suite(TICKET_TEST_CASES, ticket_setup, __file__)) suite.addTest(formatter.suite(REPORT_TEST_CASES, report_setup, __file__)) suite.addTest(formatter.suite(MILESTONE_TEST_CASES, milestone_setup, __file__)) suite.addTest(formatter.suite(QUERY_TEST_CASES, file=__file__)) suite.addTest(formatter.suite(COMMENT_TEST_CASES, file=__file__)) return suiteif __name__ == '__main__': unittest.main(defaultTest='suite')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -