Skip to content

Commit e217589

Browse files
authored
Merge pull request #7093 from readthedocs/fix-unresolver-index
2 parents 3d77a0e + b3ce5dc commit e217589

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

readthedocs/core/unresolver.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ def unresolve(self, url):
5555
filename=kwargs.get('filename', ''),
5656
)
5757

58+
# Handle our backend storage not supporting directory indexes,
59+
# so we need to append index.html when appropriate.
60+
if not filename or filename.endswith('/'):
61+
# We need to add the index.html to find this actual file
62+
filename += 'index.html'
63+
5864
log.info(
5965
'Unresolver parsed: '
6066
'url=%s project=%s lang_slug=%s version_slug=%s filename=%s',

readthedocs/rtd_tests/tests/test_unresolver.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ def test_unresolver_domain(self):
4747
self.assertEqual(parts.project.slug, 'pip')
4848
self.assertEqual(parts.language_slug, 'en')
4949
self.assertEqual(parts.version_slug, 'latest')
50-
self.assertEqual(parts.filename, '')
50+
self.assertEqual(parts.filename, 'index.html')
5151

5252
def test_unresolver_single_version(self):
5353
self.pip.single_version = True
5454
parts = unresolve('http://pip.readthedocs.io/')
5555
self.assertEqual(parts.project.slug, 'pip')
5656
self.assertEqual(parts.language_slug, None)
5757
self.assertEqual(parts.version_slug, None)
58-
self.assertEqual(parts.filename, '')
58+
self.assertEqual(parts.filename, 'index.html')
5959

6060
def test_unresolver_subproject_alias(self):
6161
relation = self.pip.subprojects.first()
@@ -65,7 +65,7 @@ def test_unresolver_subproject_alias(self):
6565
self.assertEqual(parts.project.slug, 'sub')
6666
self.assertEqual(parts.language_slug, 'ja')
6767
self.assertEqual(parts.version_slug, 'latest')
68-
self.assertEqual(parts.filename, '')
68+
self.assertEqual(parts.filename, 'index.html')
6969

7070
def test_unresolver_external_version(self):
7171
ver = self.pip.versions.first()
@@ -75,7 +75,7 @@ def test_unresolver_external_version(self):
7575
self.assertEqual(parts.project.slug, 'pip')
7676
self.assertEqual(parts.language_slug, 'en')
7777
self.assertEqual(parts.version_slug, '10')
78-
self.assertEqual(parts.filename, '')
78+
self.assertEqual(parts.filename, 'index.html')
7979

8080
def test_unresolver_unknown_host(self):
8181
parts = unresolve('http://random.stuff.com/en/latest/')

0 commit comments

Comments
 (0)