@@ -150,6 +150,40 @@ def setUp(self):
150
150
self .build_env .project = self .project
151
151
self .build_env .version = self .version
152
152
153
+ def test_get_theme_name (self ):
154
+ builder = MkdocsHTML (
155
+ build_env = self .build_env ,
156
+ python_env = None
157
+ )
158
+
159
+ # The default theme is mkdocs but in mkdocs>=1.0, theme is required
160
+ self .assertEqual (builder .get_theme_name ({}), 'mkdocs' )
161
+
162
+ # mkdocs<0.17 syntax
163
+ config = {
164
+ 'theme' : 'readthedocs' ,
165
+ }
166
+ self .assertEqual (builder .get_theme_name (config ), 'readthedocs' )
167
+
168
+ # mkdocs>=0.17 syntax
169
+ config = {
170
+ 'theme' : {
171
+ 'name' : 'test_theme' ,
172
+ },
173
+ }
174
+ self .assertEqual (builder .get_theme_name (config ), 'test_theme' )
175
+
176
+ # No theme but just a directory
177
+ config = {
178
+ 'theme_dir' : '/path/to/mydir' ,
179
+ }
180
+ self .assertEqual (builder .get_theme_name (config ), 'mydir' )
181
+ config = {
182
+ 'theme_dir' : '/path/to/mydir/' ,
183
+ }
184
+ self .assertEqual (builder .get_theme_name (config ), 'mydir' )
185
+
186
+
153
187
@patch ('readthedocs.doc_builder.base.BaseBuilder.run' )
154
188
@patch ('readthedocs.projects.models.Project.checkout_path' )
155
189
def test_append_conf_create_yaml (self , checkout_path , run ):
@@ -258,81 +292,6 @@ def test_append_conf_existing_yaml_on_root(self, checkout_path, run):
258
292
'mkdocs'
259
293
)
260
294
261
- @patch ('readthedocs.doc_builder.base.BaseBuilder.run' )
262
- @patch ('readthedocs.projects.models.Project.checkout_path' )
263
- def test_override_theme_new_style (self , checkout_path , run ):
264
- tmpdir = tempfile .mkdtemp ()
265
- os .mkdir (os .path .join (tmpdir , 'docs' ))
266
- yaml_file = os .path .join (tmpdir , 'mkdocs.yml' )
267
- yaml .safe_dump (
268
- {
269
- 'theme' : {
270
- 'name' : 'readthedocs' ,
271
- },
272
- 'site_name' : 'mkdocs' ,
273
- 'docs_dir' : 'docs' ,
274
- },
275
- open (yaml_file , 'w' )
276
- )
277
- checkout_path .return_value = tmpdir
278
-
279
- python_env = Virtualenv (
280
- version = self .version ,
281
- build_env = self .build_env ,
282
- config = None ,
283
- )
284
- self .searchbuilder = MkdocsHTML (
285
- build_env = self .build_env ,
286
- python_env = python_env ,
287
- )
288
- self .searchbuilder .append_conf ()
289
-
290
- run .assert_called_with ('cat' , 'mkdocs.yml' , cwd = mock .ANY )
291
-
292
- config = yaml .safe_load (open (yaml_file ))
293
- self .assertEqual (
294
- config ['theme' ],
295
- {
296
- 'name' : 'readthedocs' ,
297
- 'custom_dir' : BaseMkdocs .READTHEDOCS_TEMPLATE_OVERRIDE_DIR
298
- }
299
- )
300
-
301
- @patch ('readthedocs.doc_builder.base.BaseBuilder.run' )
302
- @patch ('readthedocs.projects.models.Project.checkout_path' )
303
- def test_override_theme_old_style (self , checkout_path , run ):
304
- tmpdir = tempfile .mkdtemp ()
305
- os .mkdir (os .path .join (tmpdir , 'docs' ))
306
- yaml_file = os .path .join (tmpdir , 'mkdocs.yml' )
307
- yaml .safe_dump (
308
- {
309
- 'theme' : 'readthedocs' ,
310
- 'site_name' : 'mkdocs' ,
311
- 'docs_dir' : 'docs' ,
312
- },
313
- open (yaml_file , 'w' )
314
- )
315
- checkout_path .return_value = tmpdir
316
-
317
- python_env = Virtualenv (
318
- version = self .version ,
319
- build_env = self .build_env ,
320
- config = None ,
321
- )
322
- self .searchbuilder = MkdocsHTML (
323
- build_env = self .build_env ,
324
- python_env = python_env ,
325
- )
326
- self .searchbuilder .append_conf ()
327
-
328
- run .assert_called_with ('cat' , 'mkdocs.yml' , cwd = mock .ANY )
329
-
330
- config = yaml .safe_load (open (yaml_file ))
331
- self .assertEqual (
332
- config ['theme_dir' ],
333
- BaseMkdocs .READTHEDOCS_TEMPLATE_OVERRIDE_DIR
334
- )
335
-
336
295
@patch ('readthedocs.doc_builder.base.BaseBuilder.run' )
337
296
@patch ('readthedocs.projects.models.Project.checkout_path' )
338
297
def test_dont_override_theme (self , checkout_path , run ):
0 commit comments