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 |