|
4 | 4 | from mock import patch
|
5 | 5 | from django.test import TestCase
|
6 | 6 | from django.contrib.auth.models import User
|
| 7 | +from django.contrib.staticfiles.templatetags.staticfiles import static |
7 | 8 | from django.contrib.messages import constants as message_const
|
| 9 | +from django.core.urlresolvers import reverse |
8 | 10 | from django.http.response import HttpResponseRedirect
|
9 | 11 | from django.views.generic.base import ContextMixin
|
10 | 12 | from django_dynamic_fixture import get
|
11 | 13 | from django_dynamic_fixture import new
|
12 | 14 |
|
13 | 15 | import six
|
14 | 16 |
|
15 |
| -from readthedocs.core.models import UserProfile |
| 17 | +from readthedocs.builds.models import Build, Version |
16 | 18 | from readthedocs.rtd_tests.base import (WizardTestCase, MockBuildTestCase,
|
17 | 19 | RequestFactoryTestMixin)
|
18 | 20 | from readthedocs.oauth.models import RemoteRepository
|
19 | 21 | from readthedocs.projects.exceptions import ProjectSpamError
|
20 |
| -from readthedocs.projects.forms import ProjectBasicsForm |
21 | 22 | from readthedocs.projects.models import Project, Domain
|
22 | 23 | from readthedocs.projects.views.private import ImportWizardView
|
23 | 24 | from readthedocs.projects.views.mixins import ProjectRelationMixin
|
@@ -418,3 +419,30 @@ def get_project_queryset(self):
|
418 | 419 | self.assertEqual(view.get_project(), self.project)
|
419 | 420 | self.assertEqual(view.get_queryset().first(), self.domain)
|
420 | 421 | self.assertEqual(view.get_context_data()['project'], self.project)
|
| 422 | + |
| 423 | + |
| 424 | +class TestBadges(TestCase): |
| 425 | + """Test a static badge asset is served for each build.""" |
| 426 | + |
| 427 | + def setUp(self): |
| 428 | + self.BADGE_PATH = 'projects/badges/%s.svg' |
| 429 | + self.project = get(Project, slug='badgey') |
| 430 | + self.version = Version.objects.get(project=self.project) |
| 431 | + self.badge_url = reverse('project_badge', args=[self.project.slug]) |
| 432 | + |
| 433 | + def test_unknown_badge(self): |
| 434 | + res = self.client.get(self.badge_url, {'version': self.version.slug}) |
| 435 | + static_badge = static(self.BADGE_PATH % 'unknown') |
| 436 | + self.assertEquals(res.url, static_badge) |
| 437 | + |
| 438 | + def test_passing_badge(self): |
| 439 | + get(Build, project=self.project, version=self.version, success=True) |
| 440 | + res = self.client.get(self.badge_url, {'version': self.version.slug}) |
| 441 | + static_badge = static(self.BADGE_PATH % 'passing') |
| 442 | + self.assertEquals(res.url, static_badge) |
| 443 | + |
| 444 | + def test_failing_badge(self): |
| 445 | + get(Build, project=self.project, version=self.version, success=False) |
| 446 | + res = self.client.get(self.badge_url, {'version': self.version.slug}) |
| 447 | + static_badge = static(self.BADGE_PATH % 'failing') |
| 448 | + self.assertEquals(res.url, static_badge) |
0 commit comments