Skip to content

Commit 562a6a1

Browse files
authored
Merge pull request #4895 from stsewd/remove-search-and-localmedia-param
Remove localmendia and search parameters
2 parents a3f561d + d8a8967 commit 562a6a1

File tree

3 files changed

+89
-40
lines changed

3 files changed

+89
-40
lines changed

readthedocs/projects/tasks.py

+21-28
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,6 @@
8383

8484
log = logging.getLogger(__name__)
8585

86-
HTML_ONLY = getattr(settings, 'HTML_ONLY_PROJECTS', ())
87-
8886

8987
class SyncRepositoryMixin(object):
9088

@@ -299,13 +297,11 @@ class UpdateDocsTaskStep(SyncRepositoryMixin):
299297
"""
300298

301299
def __init__(self, build_env=None, python_env=None, config=None,
302-
force=False, search=True, localmedia=True,
303-
build=None, project=None, version=None, task=None):
300+
force=False, build=None, project=None,
301+
version=None, task=None):
304302
self.build_env = build_env
305303
self.python_env = python_env
306304
self.build_force = force
307-
self.build_search = search
308-
self.build_localmedia = localmedia
309305
self.build = {}
310306
if build is not None:
311307
self.build = build
@@ -322,7 +318,7 @@ def __init__(self, build_env=None, python_env=None, config=None,
322318

323319
# pylint: disable=arguments-differ
324320
def run(self, pk, version_pk=None, build_pk=None, record=True,
325-
docker=None, search=True, force=False, localmedia=True, **__):
321+
docker=None, force=False, **__):
326322
"""
327323
Run a documentation sync n' build.
328324
@@ -345,9 +341,7 @@ def run(self, pk, version_pk=None, build_pk=None, record=True,
345341
:param record bool: record a build object in the database
346342
:param docker bool: use docker to build the project (if ``None``,
347343
``settings.DOCKER_ENABLE`` is used)
348-
:param search bool: update search
349344
:param force bool: force Sphinx build
350-
:param localmedia bool: update localmedia
351345
352346
:returns: whether build was successful or not
353347
@@ -360,8 +354,6 @@ def run(self, pk, version_pk=None, build_pk=None, record=True,
360354
self.project = self.get_project(pk)
361355
self.version = self.get_version(self.project, version_pk)
362356
self.build = self.get_build(build_pk)
363-
self.build_search = search
364-
self.build_localmedia = localmedia
365357
self.build_force = force
366358
self.config = None
367359

@@ -805,37 +797,38 @@ def build_docs_html(self):
805797

806798
def build_docs_search(self):
807799
"""Build search data."""
808-
# TODO rely on config parameter here when Project.documentation_type is
809-
# removed in #4638. Mkdocs has no search currently
810-
if self.project.documentation_type == 'mkdocs':
811-
return False
812-
return self.build_search
800+
# Search is always run in sphinx using the rtd-sphinx-extension.
801+
# Mkdocs has no search currently.
802+
if self.is_type_sphinx():
803+
return True
804+
return False
813805

814806
def build_docs_localmedia(self):
815807
"""Get local media files with separate build."""
816808
if 'htmlzip' not in self.config.formats:
817809
return False
818-
819-
if self.build_localmedia:
820-
if self.is_type_sphinx():
821-
return self.build_docs_class('sphinx_singlehtmllocalmedia')
810+
# We don't generate a zip for mkdocs currently.
811+
if self.is_type_sphinx():
812+
return self.build_docs_class('sphinx_singlehtmllocalmedia')
822813
return False
823814

824815
def build_docs_pdf(self):
825816
"""Build PDF docs."""
826-
if ('pdf' not in self.config.formats or
827-
self.project.slug in HTML_ONLY or
828-
not self.is_type_sphinx()):
817+
if 'pdf' not in self.config.formats:
829818
return False
830-
return self.build_docs_class('sphinx_pdf')
819+
# Mkdocs has no pdf generation currently.
820+
if self.is_type_sphinx():
821+
return self.build_docs_class('sphinx_pdf')
822+
return False
831823

832824
def build_docs_epub(self):
833825
"""Build ePub docs."""
834-
if ('epub' not in self.config.formats or
835-
self.project.slug in HTML_ONLY or
836-
not self.is_type_sphinx()):
826+
if 'epub' not in self.config.formats:
837827
return False
838-
return self.build_docs_class('sphinx_epub')
828+
# Mkdocs has no epub generation currently.
829+
if self.is_type_sphinx():
830+
return self.build_docs_class('sphinx_epub')
831+
return False
839832

840833
def build_docs_class(self, builder_class):
841834
"""

readthedocs/rtd_tests/mocks/environment.py

+10
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ def __init__(self):
3434
'readthedocs.doc_builder.backends.sphinx.HtmlBuilder.build'),
3535
'html_move': mock.patch(
3636
'readthedocs.doc_builder.backends.sphinx.HtmlBuilder.move'),
37+
'localmedia_build': mock.patch(
38+
'readthedocs.doc_builder.backends.sphinx.LocalMediaBuilder.build'),
39+
'localmedia_move': mock.patch(
40+
'readthedocs.doc_builder.backends.sphinx.LocalMediaBuilder.move'),
3741
'pdf_build': mock.patch(
3842
'readthedocs.doc_builder.backends.sphinx.PdfBuilder.build'),
3943
'pdf_move': mock.patch(
@@ -42,6 +46,12 @@ def __init__(self):
4246
'readthedocs.doc_builder.backends.sphinx.EpubBuilder.build'),
4347
'epub_move': mock.patch(
4448
'readthedocs.doc_builder.backends.sphinx.EpubBuilder.move'),
49+
'move_mkdocs': mock.patch(
50+
'readthedocs.doc_builder.backends.mkdocs.BaseMkdocs.move'),
51+
'append_conf_mkdocs': mock.patch(
52+
'readthedocs.doc_builder.backends.mkdocs.BaseMkdocs.append_conf'),
53+
'html_build_mkdocs': mock.patch(
54+
'readthedocs.doc_builder.backends.mkdocs.MkdocsHTML.build'),
4555
'glob': mock.patch('readthedocs.doc_builder.backends.sphinx.glob'),
4656

4757
'docker': mock.patch('readthedocs.doc_builder.environments.APIClient'),

readthedocs/rtd_tests/tests/test_builds.py

+58-12
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ def test_build(self, load_config):
4949
build_env = LocalBuildEnvironment(project=project, version=version, build={})
5050
python_env = Virtualenv(version=version, build_env=build_env)
5151
config = load_yaml_config(version)
52-
task = UpdateDocsTaskStep(build_env=build_env, project=project, python_env=python_env,
53-
version=version, search=False, localmedia=False, config=config)
52+
task = UpdateDocsTaskStep(
53+
build_env=build_env, project=project, python_env=python_env,
54+
version=version, config=config
55+
)
5456
task.build_docs()
5557

5658
# Get command and check first part of command list is a call to sphinx
@@ -75,8 +77,10 @@ def test_build_respects_pdf_flag(self, load_config):
7577
build_env = LocalBuildEnvironment(project=project, version=version, build={})
7678
python_env = Virtualenv(version=version, build_env=build_env)
7779
config = load_yaml_config(version)
78-
task = UpdateDocsTaskStep(build_env=build_env, project=project, python_env=python_env,
79-
version=version, search=False, localmedia=False, config=config)
80+
task = UpdateDocsTaskStep(
81+
build_env=build_env, project=project, python_env=python_env,
82+
version=version, config=config
83+
)
8084

8185
task.build_docs()
8286

@@ -86,6 +90,40 @@ def test_build_respects_pdf_flag(self, load_config):
8690
# PDF however was disabled and therefore not built.
8791
self.assertFalse(self.mocks.epub_build.called)
8892

93+
@mock.patch('readthedocs.doc_builder.config.load_config')
94+
def test_dont_localmedia_build_pdf_epub_search_in_mkdocs(self, load_config):
95+
load_config.side_effect = create_load()
96+
project = get(
97+
Project,
98+
slug='project-1',
99+
documentation_type='mkdocs',
100+
enable_pdf_build=True,
101+
enable_epub_build=True,
102+
versions=[fixture()]
103+
)
104+
version = project.versions.all().first()
105+
106+
build_env = LocalBuildEnvironment(
107+
project=project,
108+
version=version,
109+
build={}
110+
)
111+
python_env = Virtualenv(version=version, build_env=build_env)
112+
config = load_yaml_config(version)
113+
task = UpdateDocsTaskStep(
114+
build_env=build_env, project=project, python_env=python_env,
115+
version=version, config=config
116+
)
117+
118+
task.build_docs()
119+
120+
# Only html for mkdocs was built
121+
self.mocks.html_build_mkdocs.assert_called_once()
122+
self.mocks.html_build.assert_not_called()
123+
self.mocks.localmedia_build.assert_not_called()
124+
self.mocks.pdf_build.assert_not_called()
125+
self.mocks.epub_build.assert_not_called()
126+
89127
@mock.patch('readthedocs.doc_builder.config.load_config')
90128
def test_build_respects_epub_flag(self, load_config):
91129
'''Test build with epub enabled'''
@@ -102,8 +140,10 @@ def test_build_respects_epub_flag(self, load_config):
102140
build_env = LocalBuildEnvironment(project=project, version=version, build={})
103141
python_env = Virtualenv(version=version, build_env=build_env)
104142
config = load_yaml_config(version)
105-
task = UpdateDocsTaskStep(build_env=build_env, project=project, python_env=python_env,
106-
version=version, search=False, localmedia=False, config=config)
143+
task = UpdateDocsTaskStep(
144+
build_env=build_env, project=project, python_env=python_env,
145+
version=version, config=config
146+
)
107147
task.build_docs()
108148

109149
# The HTML and the Epub format were built.
@@ -129,8 +169,10 @@ def test_build_respects_yaml(self, load_config):
129169
python_env = Virtualenv(version=version, build_env=build_env)
130170

131171
config = load_yaml_config(version)
132-
task = UpdateDocsTaskStep(build_env=build_env, project=project, python_env=python_env,
133-
version=version, search=False, localmedia=False, config=config)
172+
task = UpdateDocsTaskStep(
173+
build_env=build_env, project=project, python_env=python_env,
174+
version=version, config=config
175+
)
134176
task.build_docs()
135177

136178
# The HTML and the Epub format were built.
@@ -160,8 +202,10 @@ def test_build_pdf_latex_failures(self, load_config):
160202
build_env = LocalBuildEnvironment(project=project, version=version, build={})
161203
python_env = Virtualenv(version=version, build_env=build_env)
162204
config = load_yaml_config(version)
163-
task = UpdateDocsTaskStep(build_env=build_env, project=project, python_env=python_env,
164-
version=version, search=False, localmedia=False, config=config)
205+
task = UpdateDocsTaskStep(
206+
build_env=build_env, project=project, python_env=python_env,
207+
version=version, config=config
208+
)
165209

166210
# Mock out the separate calls to Popen using an iterable side_effect
167211
returns = [
@@ -204,8 +248,10 @@ def test_build_pdf_latex_not_failure(self, load_config):
204248
build_env = LocalBuildEnvironment(project=project, version=version, build={})
205249
python_env = Virtualenv(version=version, build_env=build_env)
206250
config = load_yaml_config(version)
207-
task = UpdateDocsTaskStep(build_env=build_env, project=project, python_env=python_env,
208-
version=version, search=False, localmedia=False, config=config)
251+
task = UpdateDocsTaskStep(
252+
build_env=build_env, project=project, python_env=python_env,
253+
version=version, config=config
254+
)
209255

210256
# Mock out the separate calls to Popen using an iterable side_effect
211257
returns = [

0 commit comments

Comments
 (0)