Skip to content

Commit 1626626

Browse files
authored
Merge pull request #6428 from readthedocs/davidfischer/use-cached-media-availability
Use media availability instead of querying the filesystem
2 parents 7ad669a + 36227a4 commit 1626626

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

readthedocs/builds/models.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -379,17 +379,18 @@ def get_downloads(self, pretty=False):
379379
def prettify(k):
380380
return k if pretty else k.lower()
381381

382-
if project.has_pdf(self.slug, version_type=self.type):
382+
if self.has_pdf:
383383
data[prettify('PDF')] = project.get_production_media_url(
384384
'pdf',
385385
self.slug,
386386
)
387-
if project.has_htmlzip(self.slug, version_type=self.type):
387+
388+
if self.has_htmlzip:
388389
data[prettify('HTML')] = project.get_production_media_url(
389390
'htmlzip',
390391
self.slug,
391392
)
392-
if project.has_epub(self.slug, version_type=self.type):
393+
if self.has_epub:
393394
data[prettify('Epub')] = project.get_production_media_url(
394395
'epub',
395396
self.slug,

readthedocs/rtd_tests/tests/test_footer.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from readthedocs.builds.models import Version
1313
from readthedocs.core.middleware import FooterNoSessionMiddleware
1414
from readthedocs.projects.models import Project
15-
from readthedocs.rtd_tests.mocks.paths import fake_paths_by_regex
1615

1716

1817
class Testmaker(APITestCase):
@@ -74,23 +73,25 @@ def test_footer_uses_version_compare(self):
7473
self.assertEqual(r.data['version_compare'], {'MOCKED': True})
7574

7675
def test_pdf_build_mentioned_in_footer(self):
77-
with fake_paths_by_regex(r'\.pdf$'):
78-
response = self.render()
76+
self.latest.has_pdf = True
77+
self.latest.save()
78+
79+
response = self.render()
7980
self.assertIn('pdf', response.data['html'])
8081

8182
def test_pdf_not_mentioned_in_footer_when_doesnt_exists(self):
82-
with fake_paths_by_regex(r'\.pdf$', exists=False):
83-
response = self.render()
83+
response = self.render()
8484
self.assertNotIn('pdf', response.data['html'])
8585

8686
def test_epub_build_mentioned_in_footer(self):
87-
with fake_paths_by_regex(r'\.epub$'):
88-
response = self.render()
87+
self.latest.has_epub = True
88+
self.latest.save()
89+
90+
response = self.render()
8991
self.assertIn('epub', response.data['html'])
9092

9193
def test_epub_not_mentioned_in_footer_when_doesnt_exists(self):
92-
with fake_paths_by_regex(r'\.epub$', exists=False):
93-
response = self.render()
94+
response = self.render()
9495
self.assertNotIn('epub', response.data['html'])
9596

9697
def test_no_session_logged_out(self):

readthedocs/rtd_tests/tests/test_version.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,15 @@ def test_version_does_not_support_wipe(self):
8282

8383
def test_version_supports_wipe(self):
8484
self.assertTrue(self.branch_version.supports_wipe)
85+
86+
def test_get_downloads(self):
87+
self.assertDictEqual(self.branch_version.get_downloads(), {})
88+
89+
self.branch_version.has_pdf = True
90+
self.branch_version.has_epub = True
91+
self.branch_version.save()
92+
expected = {
93+
'epub': '//readthedocs.org/projects/pip/downloads/epub/stable/',
94+
'pdf': '//readthedocs.org/projects/pip/downloads/pdf/stable/',
95+
}
96+
self.assertDictEqual(self.branch_version.get_downloads(), expected)

0 commit comments

Comments
 (0)