annotate examples/trac/trac/ticket/tests/conversion.py @ 39:93b4dcbafd7b trunk

Copy Trac to main branch.
author cmlenz
date Mon, 03 Jul 2006 18:53:27 +0000
parents
children
rev   line source
39
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
1 from trac.test import EnvironmentStub, Mock
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
2 from trac.util import sorted
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
3 from trac.ticket.model import Ticket
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
4 from trac.ticket.web_ui import TicketModule
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
5 from trac.mimeview.api import Mimeview
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
6 from trac.web.clearsilver import HDFWrapper
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
7 from trac.web.href import Href
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
8
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
9 import unittest
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
10
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
11
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
12 class TicketConversionTestCase(unittest.TestCase):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
13
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
14 def setUp(self):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
15 self.env = EnvironmentStub()
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
16 self.ticket_module = TicketModule(self.env)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
17 self.mimeview = Mimeview(self.env)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
18 self.req = Mock(hdf=HDFWrapper(['./templates']),
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
19 base_path='/trac.cgi', path_info='',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
20 href=Href('/trac.cgi'))
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
21
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
22 def _create_a_ticket(self):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
23 # 1. Creating ticket
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
24 ticket = Ticket(self.env)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
25 ticket['reporter'] = 'santa'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
26 ticket['summary'] = 'Foo'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
27 ticket['description'] = 'Bar'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
28 ticket['foo'] = 'This is a custom field'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
29 return ticket
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
30
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
31 def test_conversions(self):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
32 conversions = self.mimeview.get_supported_conversions(
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
33 'trac.ticket.Ticket')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
34 expected = sorted([('csv', 'Comma-delimited Text', 'csv',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
35 'trac.ticket.Ticket', 'text/csv', 8,
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
36 self.ticket_module),
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
37 ('tab', 'Tab-delimited Text', 'tsv',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
38 'trac.ticket.Ticket', 'text/tab-separated-values', 8,
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
39 self.ticket_module),
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
40 ('rss', 'RSS Feed', 'xml',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
41 'trac.ticket.Ticket', 'application/rss+xml', 8,
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
42 self.ticket_module)],
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
43 key=lambda i: i[-1], reverse=True)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
44 self.assertEqual(expected, conversions)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
45
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
46 def test_csv_conversion(self):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
47 ticket = self._create_a_ticket()
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
48 csv = self.mimeview.convert_content(self.req, 'trac.ticket.Ticket',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
49 ticket, 'csv')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
50 self.assertEqual((u'id,summary,reporter,owner,description,keywords,cc'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
51 '\r\nNone,Foo,santa,,Bar,,\r\n',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
52 'text/csv;charset=utf-8', 'csv'), csv)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
53
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
54
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
55 def test_tab_conversion(self):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
56 ticket = self._create_a_ticket()
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
57 csv = self.mimeview.convert_content(self.req, 'trac.ticket.Ticket',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
58 ticket, 'tab')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
59 self.assertEqual((u'id\tsummary\treporter\towner\tdescription\tkeywords'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
60 '\tcc\r\nNone\tFoo\tsanta\t\tBar\t\t\r\n',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
61 'text/tab-separated-values;charset=utf-8', 'tsv'),
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
62 csv)
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
63
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
64 def test_rss_conversion(self):
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
65 ticket = self._create_a_ticket()
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
66 content, mimetype, ext = self.mimeview.convert_content(
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
67 self.req, 'trac.ticket.Ticket', ticket, 'rss')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
68 self.assertEqual(('<?xml version="1.0"?>\n<!-- RSS generated by Trac v '
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
69 'on -->\n<rss version="2.0">\n <channel>\n '
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
70 '<title>Ticket </title>\n <link></link>\n '
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
71 '<description>&lt;p&gt;\nBar\n&lt;/p&gt;\n'
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
72 '</description>\n <language>en-us</language>\n '
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
73 '<generator>Trac v</generator>\n </channel>\n</rss>\n',
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
74 'application/rss+xml', 'xml'),
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
75 (content.replace('\r', ''), mimetype, ext))
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
76
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
77
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
78 def suite():
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
79 return unittest.makeSuite(TicketConversionTestCase, 'test')
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
80
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
81 if __name__ == '__main__':
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
82 unittest.main()
Copyright (C) 2012-2017 Edgewall Software