@@ -143,6 +143,60 @@ def test_not_show_edit_on_github(self):
143
143
self .assertIn ('View' , response .data ['html' ])
144
144
self .assertNotIn ('Edit' , response .data ['html' ])
145
145
146
+ def test_index_pages_sphinx_htmldir (self ):
147
+ version = self .pip .versions .get (slug = LATEST )
148
+ version .documentation_type = 'sphinx_htmldir'
149
+ version .save ()
150
+
151
+ # A page with slug 'index' should render like /en/latest/
152
+ self .url = (
153
+ reverse ('footer_html' ) +
154
+ f'?project={ self .pip .slug } &version={ self .latest .slug } &page=index&docroot=/'
155
+ )
156
+ response = self .render ()
157
+ self .assertIn ('/en/latest/' , response .data ['html' ])
158
+ self .assertNotIn ('/en/latest/index.html' , response .data ['html' ])
159
+
160
+ # A page with slug 'foo/index' should render like /en/latest/foo/
161
+ self .url = (
162
+ reverse ('footer_html' ) +
163
+ f'?project={ self .pip .slug } &version={ self .latest .slug } &page=foo/index&docroot=/'
164
+ )
165
+ response = self .render ()
166
+ self .assertIn ('/en/latest/foo/' , response .data ['html' ])
167
+ self .assertNotIn ('/en/latest/foo.html' , response .data ['html' ])
168
+ self .assertNotIn ('/en/latest/foo/index.html' , response .data ['html' ])
169
+
170
+ # A page with slug 'foo/bar' should render like /en/latest/foo/bar/
171
+ self .url = (
172
+ reverse ('footer_html' ) +
173
+ f'?project={ self .pip .slug } &version={ self .latest .slug } &page=foo/bar&docroot=/'
174
+ )
175
+ response = self .render ()
176
+ self .assertIn ('/en/latest/foo/bar/' , response .data ['html' ])
177
+ self .assertNotIn ('/en/latest/foo/bar.html' , response .data ['html' ])
178
+ self .assertNotIn ('/en/latest/foo/bar/index.html' , response .data ['html' ])
179
+
180
+ # A page with slug 'foo/bar/index' should render like /en/latest/foo/bar/
181
+ self .url = (
182
+ reverse ('footer_html' ) +
183
+ f'?project={ self .pip .slug } &version={ self .latest .slug } &page=foo/bar/index&docroot=/'
184
+ )
185
+ response = self .render ()
186
+ self .assertIn ('/en/latest/foo/bar/' , response .data ['html' ])
187
+ self .assertNotIn ('/en/latest/foo/bar.html' , response .data ['html' ])
188
+ self .assertNotIn ('/en/latest/foo/bar/index.html' , response .data ['html' ])
189
+
190
+ # A page with slug 'foo/index/bar' should render like /en/latest/foo/index/bar/
191
+ self .url = (
192
+ reverse ('footer_html' ) +
193
+ f'?project={ self .pip .slug } &version={ self .latest .slug } &page=foo/index/bar&docroot=/'
194
+ )
195
+ response = self .render ()
196
+ self .assertIn ('/en/latest/foo/index/bar/' , response .data ['html' ])
197
+ self .assertNotIn ('/en/latest/foo/index/bar.html' , response .data ['html' ])
198
+ self .assertNotIn ('/en/latest/foo/index/bar/index.html' , response .data ['html' ])
199
+
146
200
147
201
class TestFooterHTML (BaseTestFooterHTML , TestCase ):
148
202
0 commit comments