Commit d52ff5ac3b1ce35f5423592781dcb44802715b66
Committed by
Sergio Oliveira
1 parent
db87277a
Tests for Trac Models.
Signed-off-by: Carolina Ramalho <carol15022@hotmail.com>
Showing
4 changed files
with
211 additions
and
5 deletions
Show diff stats
colab/proxy/trac/data_api.py
@@ -61,7 +61,7 @@ class TracDataAPI(ProxyDataAPI): | @@ -61,7 +61,7 @@ class TracDataAPI(ProxyDataAPI): | ||
61 | for line in ticket_dict: | 61 | for line in ticket_dict: |
62 | ticket.id = line['id'] | 62 | ticket.id = line['id'] |
63 | ticket.summary = line['summary'] | 63 | ticket.summary = line['summary'] |
64 | - ticket.description = line['description'] | 64 | + ticket.description_ticket = line['description'] |
65 | ticket.milestone = line['milestone'] | 65 | ticket.milestone = line['milestone'] |
66 | ticket.priority = line['priority'] | 66 | ticket.priority = line['priority'] |
67 | ticket.component = line['component'] | 67 | ticket.component = line['component'] |
colab/proxy/trac/models.py
@@ -68,6 +68,7 @@ class Revision(models.Model, HitCounterModelMixin): | @@ -68,6 +68,7 @@ class Revision(models.Model, HitCounterModelMixin): | ||
68 | class Meta: | 68 | class Meta: |
69 | verbose_name = _('Attachment') | 69 | verbose_name = _('Attachment') |
70 | verbose_name_plural = _('Attachment') | 70 | verbose_name_plural = _('Attachment') |
71 | + db_table = 'trac_revision' | ||
71 | 72 | ||
72 | def get_absolute_url(self): | 73 | def get_absolute_url(self): |
73 | return u'/changeset/{}/{}'.format(self.rev, self.repository_name) | 74 | return u'/changeset/{}/{}'.format(self.rev, self.repository_name) |
@@ -84,7 +85,7 @@ class Ticket(models.Model, HitCounterModelMixin): | @@ -84,7 +85,7 @@ class Ticket(models.Model, HitCounterModelMixin): | ||
84 | type = 'ticket' | 85 | type = 'ticket' |
85 | id = models.IntegerField(primary_key=True) | 86 | id = models.IntegerField(primary_key=True) |
86 | summary = models.TextField(blank=True) | 87 | summary = models.TextField(blank=True) |
87 | - description = models.TextField(blank=True) | 88 | + description_ticket = models.TextField(blank=True) |
88 | milestone = models.TextField(blank=True) | 89 | milestone = models.TextField(blank=True) |
89 | priority = models.TextField(blank=True) | 90 | priority = models.TextField(blank=True) |
90 | component = models.TextField(blank=True) | 91 | component = models.TextField(blank=True) |
@@ -107,7 +108,7 @@ class Ticket(models.Model, HitCounterModelMixin): | @@ -107,7 +108,7 @@ class Ticket(models.Model, HitCounterModelMixin): | ||
107 | @property | 108 | @property |
108 | def description(self): | 109 | def description(self): |
109 | return u'{}\n{}\n{}\n{}\n{}\n{}\n{}'.format( | 110 | return u'{}\n{}\n{}\n{}\n{}\n{}\n{}'.format( |
110 | - self.description, self.milestone, self.component, self.severity, | 111 | + self.description_ticket, self.milestone, self.component, self.severity, |
111 | self.reporter, self.keywords, self.collaborators | 112 | self.reporter, self.keywords, self.collaborators |
112 | ) | 113 | ) |
113 | 114 | ||
@@ -150,7 +151,7 @@ class Wiki(Collaboration, HitCounterModelMixin): | @@ -150,7 +151,7 @@ class Wiki(Collaboration, HitCounterModelMixin): | ||
150 | verbose_name_plural = _('Attachment') | 151 | verbose_name_plural = _('Attachment') |
151 | 152 | ||
152 | def get_absolute_url(self): | 153 | def get_absolute_url(self): |
153 | - return u'/wiki/{}'.format(self.name) | 154 | + return u'/wiki/{}'.format(self.title) |
154 | 155 | ||
155 | def get_author(self): | 156 | def get_author(self): |
156 | try: | 157 | try: |
@@ -160,7 +161,7 @@ class Wiki(Collaboration, HitCounterModelMixin): | @@ -160,7 +161,7 @@ class Wiki(Collaboration, HitCounterModelMixin): | ||
160 | 161 | ||
161 | def get_modified_by(self): | 162 | def get_modified_by(self): |
162 | try: | 163 | try: |
163 | - return User.objects.get(username=self.modified_by) | 164 | + return User.objects.get(username=self.author) |
164 | except User.DoesNotExist: | 165 | except User.DoesNotExist: |
165 | return None | 166 | return None |
166 | 167 |
@@ -0,0 +1,205 @@ | @@ -0,0 +1,205 @@ | ||
1 | +""" | ||
2 | +Test Trac class. | ||
3 | +Objective: Test parameters and behavior. | ||
4 | +""" | ||
5 | +from colab.accounts.models import User | ||
6 | +from colab.proxy.trac.models import Attachment, Revision, Ticket, Wiki | ||
7 | +from django.test import TestCase | ||
8 | + | ||
9 | + | ||
10 | +class AttachmentTest(TestCase): | ||
11 | + | ||
12 | + def setUp(self): | ||
13 | + self.attachment = self.create_attachment() | ||
14 | + | ||
15 | + def tearDown(self): | ||
16 | + pass | ||
17 | + | ||
18 | + def create_attachment(self): | ||
19 | + attachment = Attachment() | ||
20 | + attachment.type = 'attachment' | ||
21 | + attachment.icon_name = 'file' | ||
22 | + attachment.url = 'example.com' | ||
23 | + attachment.attach_id = 'attach_id' | ||
24 | + attachment.used_by = 'used_by' | ||
25 | + attachment.filename = 'filename' | ||
26 | + attachment.author = 'author' | ||
27 | + attachment.title = 'title' | ||
28 | + attachment.description = 'description' | ||
29 | + attachment.modified = '1994-11-05T08:15:30-05:00' | ||
30 | + attachment.mimetype = 'mimetype' | ||
31 | + attachment.size = 20 | ||
32 | + attachment.save() | ||
33 | + | ||
34 | + return attachment | ||
35 | + | ||
36 | + def test_validade_filepath(self): | ||
37 | + file_path = '/mnt/trac/attachments/used_by/attach_id/filename' | ||
38 | + self.assertEqual(file_path, self.attachment.filepath) | ||
39 | + | ||
40 | + def test_validade_absolute_url(self): | ||
41 | + absolute_url = u'/raw-attachment/example.com' | ||
42 | + self.assertEqual(absolute_url, self.attachment.get_absolute_url()) | ||
43 | + | ||
44 | + def test_validade_author(self): | ||
45 | + author = 'author' | ||
46 | + self.user = create_user() | ||
47 | + self.assertEqual(author, str(self.attachment.get_author())) | ||
48 | + | ||
49 | + def test_invalidade_author(self): | ||
50 | + self.assertEqual(None, self.attachment.get_author()) | ||
51 | + | ||
52 | + | ||
53 | +class RevisionTest(TestCase): | ||
54 | + def setUp(self): | ||
55 | + self.revision = self.create_revision() | ||
56 | + | ||
57 | + def create_revision(self): | ||
58 | + revision = Revision() | ||
59 | + revision.update_field = 'created' | ||
60 | + revision.icon_name = 'align-right' | ||
61 | + revision.rev = 'rev' | ||
62 | + revision.author = 'author' | ||
63 | + revision.message = 'message' | ||
64 | + revision.description = 'description' | ||
65 | + revision.repository_name = 'repository' | ||
66 | + revision.created = '1994-11-05T08:15:30-05:00' | ||
67 | + revision.modified = '1994-11-05T08:15:30-05:00' | ||
68 | + revision.save() | ||
69 | + | ||
70 | + return revision | ||
71 | + | ||
72 | + def test_title(self): | ||
73 | + title = 'repository [rev]' | ||
74 | + self.assertEqual(title, self.revision.title) | ||
75 | + | ||
76 | + def test_get_absolute_url(self): | ||
77 | + absolute_url = '/changeset/rev/repository' | ||
78 | + self.assertEqual(absolute_url, self.revision.get_absolute_url()) | ||
79 | + | ||
80 | + def test_get_author(self): | ||
81 | + author = 'author' | ||
82 | + self.user = create_user() | ||
83 | + self.assertEqual(author, str(self.revision.get_author())) | ||
84 | + | ||
85 | + def test_invalid_get_author(self): | ||
86 | + self.assertEqual(None, self.revision.get_author()) | ||
87 | + | ||
88 | + | ||
89 | +class TicketTest(TestCase): | ||
90 | + def setUp(self): | ||
91 | + self.ticket = self.create_ticket() | ||
92 | + | ||
93 | + def create_ticket(self): | ||
94 | + ticket = Ticket() | ||
95 | + ticket.icon_name = 'tag' | ||
96 | + ticket.type = 'ticket' | ||
97 | + ticket.id = 20 | ||
98 | + ticket.summary = 'summary' | ||
99 | + ticket.description_ticket = 'description' | ||
100 | + ticket.milestone = 'milestone' | ||
101 | + ticket.priority = 'priority' | ||
102 | + ticket.component = 'component' | ||
103 | + ticket.version = 'version' | ||
104 | + ticket.severity = 'severity' | ||
105 | + ticket.reporter = 'reporter' | ||
106 | + ticket.author = 'author' | ||
107 | + ticket.status = 'status' | ||
108 | + ticket.tag = 'tag' | ||
109 | + ticket.keywords = 'keywords' | ||
110 | + ticket.collaborators = 'collaborators' | ||
111 | + ticket.created = '1994-11-05T08:15:30-05:00' | ||
112 | + ticket.modified = '1994-11-05T08:15:30-05:00' | ||
113 | + ticket.modified_by = 'author' | ||
114 | + ticket.save() | ||
115 | + | ||
116 | + return ticket | ||
117 | + | ||
118 | + def test_title(self): | ||
119 | + title = '#20 - summary' | ||
120 | + self.assertEqual(title, self.ticket.title) | ||
121 | + | ||
122 | + def test_description(self): | ||
123 | + description1 = u'description\nmilestone\ncomponent\nseverity' | ||
124 | + description2 = '\nreporter\nkeywords\ncollaborators' | ||
125 | + description_test = description1 + description2 | ||
126 | + self.assertEqual(description_test, self.ticket.description) | ||
127 | + | ||
128 | + def test_get_absolute_url(self): | ||
129 | + absolute_url = '/ticket/20' | ||
130 | + self.assertEqual(absolute_url, self.ticket.get_absolute_url()) | ||
131 | + | ||
132 | + def test_get_author(self): | ||
133 | + author = 'author' | ||
134 | + self.user = create_user() | ||
135 | + self.assertEqual(author, str(self.ticket.get_author())) | ||
136 | + | ||
137 | + def test_invalid_get_author(self): | ||
138 | + author = None | ||
139 | + self.assertEqual(author, self.ticket.get_author()) | ||
140 | + | ||
141 | + def test_get_modified_by(self): | ||
142 | + self.user = create_user() | ||
143 | + get_modified_by = str(self.ticket.get_modified_by()) | ||
144 | + self.assertEqual(self.ticket.modified_by, get_modified_by) | ||
145 | + | ||
146 | + def test_invalid_get_modified_by(self): | ||
147 | + get_modified_by = self.ticket.get_modified_by() | ||
148 | + self.assertEqual(None, get_modified_by) | ||
149 | + | ||
150 | + | ||
151 | +class WikiTest(TestCase): | ||
152 | + def setUp(self): | ||
153 | + self.wiki = self.create_wiki() | ||
154 | + | ||
155 | + def create_wiki(self): | ||
156 | + wiki = Wiki() | ||
157 | + wiki.type = "wiki" | ||
158 | + wiki.icon_name = "book" | ||
159 | + wiki.title = 'title' | ||
160 | + wiki.wiki_text = 'wiki_text' | ||
161 | + wiki.author = 'author' | ||
162 | + wiki.collaborators = 'collaborators' | ||
163 | + wiki.created = '1994-11-05T08:15:30-05:00' | ||
164 | + wiki.modified = '1994-11-05T08:15:30-05:00' | ||
165 | + wiki.save() | ||
166 | + | ||
167 | + return wiki | ||
168 | + | ||
169 | + def test_description(self): | ||
170 | + description_test = u'wiki_text\ncollaborators' | ||
171 | + self.assertEqual(description_test, self.wiki.description) | ||
172 | + | ||
173 | + def test_get_absolute_url(self): | ||
174 | + absolute_url = u'/wiki/title' | ||
175 | + self.assertEqual(absolute_url, self.wiki.get_absolute_url()) | ||
176 | + | ||
177 | + def test_get_author(self): | ||
178 | + author = 'author' | ||
179 | + self.user = create_user() | ||
180 | + self.assertEqual(author, str(self.wiki.get_author())) | ||
181 | + | ||
182 | + def test_invalid_get_author(self): | ||
183 | + author = None | ||
184 | + self.assertEqual(author, self.wiki.get_author()) | ||
185 | + | ||
186 | + def test_get_modified_by(self): | ||
187 | + self.user = create_user() | ||
188 | + get_modified_by = str(self.wiki.get_modified_by()) | ||
189 | + modified_by = "author" | ||
190 | + self.assertEqual(modified_by, get_modified_by) | ||
191 | + | ||
192 | + def test_invalid_get_modified_by(self): | ||
193 | + get_modified_by = self.wiki.get_modified_by() | ||
194 | + self.assertEqual(None, get_modified_by) | ||
195 | + | ||
196 | + | ||
197 | +def create_user(): | ||
198 | + user = User() | ||
199 | + user.username = "author" | ||
200 | + user.first_name = "FisrtName" | ||
201 | + user.last_name = "LastName" | ||
202 | + user.modified_by = "author" | ||
203 | + user.save() | ||
204 | + | ||
205 | + return user |