diff options
| author | Melissa Li <li.melissa.kun@gmail.com> | 2021-02-18 23:02:29 -0500 |
|---|---|---|
| committer | Melissa Li <li.melissa.kun@gmail.com> | 2021-02-19 17:11:54 -0500 |
| commit | 37a6284c9fcd71a3d4b2fe5dbc802fcf5cbe0786 (patch) | |
| tree | e85e4323f7598363ed6c0c1fcaee49c5e6919f64 /setuptools | |
| parent | e1ffc2abbae4f2aa78dd09ee9827d754b7702b7b (diff) | |
| download | python-setuptools-git-37a6284c9fcd71a3d4b2fe5dbc802fcf5cbe0786.tar.gz | |
Fix sphinx upload_docs
Diffstat (limited to 'setuptools')
| -rw-r--r-- | setuptools/command/upload_docs.py | 7 | ||||
| -rw-r--r-- | setuptools/tests/requirements.txt | 1 | ||||
| -rw-r--r-- | setuptools/tests/test_sphinx_upload_docs.py | 42 |
3 files changed, 48 insertions, 2 deletions
diff --git a/setuptools/command/upload_docs.py b/setuptools/command/upload_docs.py index 2559458a..95383319 100644 --- a/setuptools/command/upload_docs.py +++ b/setuptools/command/upload_docs.py @@ -2,7 +2,7 @@ """upload_docs Implements a Distutils 'upload_docs' subcommand (upload documentation to -PyPI's pythonhosted.org). +sites other than PyPi such as devpi). """ from base64 import standard_b64encode @@ -59,7 +59,10 @@ class upload_docs(upload): if self.upload_dir is None: if self.has_sphinx(): build_sphinx = self.get_finalized_command('build_sphinx') - self.target_dir = build_sphinx.builder_target_dir + for (builder, builder_dir) in build_sphinx.builder_target_dirs: + if builder == "html": + self.target_dir = builder_dir + break else: build = self.get_finalized_command('build') self.target_dir = os.path.join(build.build_base, 'docs') diff --git a/setuptools/tests/requirements.txt b/setuptools/tests/requirements.txt index d0d07f70..b2d84a94 100644 --- a/setuptools/tests/requirements.txt +++ b/setuptools/tests/requirements.txt @@ -11,3 +11,4 @@ paver; python_version>="3.6" futures; python_version=="2.7" pip>=19.1 # For proper file:// URLs support. jaraco.envs +sphinx diff --git a/setuptools/tests/test_sphinx_upload_docs.py b/setuptools/tests/test_sphinx_upload_docs.py new file mode 100644 index 00000000..4287b00e --- /dev/null +++ b/setuptools/tests/test_sphinx_upload_docs.py @@ -0,0 +1,42 @@ +import pytest +import os + +from setuptools.command.upload_docs import upload_docs +from setuptools.dist import Distribution + + +@pytest.fixture +def sphinx_doc_sample_project(tmpdir_cwd): + # setup.py + with open('setup.py', 'wt') as f: + f.write('from setuptools import setup; setup()\n') + + os.makedirs('build/docs') + + # A test conf.py for Sphinx + with open('build/docs/conf.py', 'w') as f: + f.write("project = 'test'") + + # A test index.rst for Sphinx + with open('build/docs/index.rst', 'w') as f: + f.write(".. toctree::\ + :maxdepth: 2\ + :caption: Contents:") + + +@pytest.mark.usefixtures('sphinx_doc_sample_project') +@pytest.mark.usefixtures('user_override') +class TestSphinxUploadDocs: + def test_sphinx_doc(self): + params = dict( + name='foo', + packages=['test'], + ) + dist = Distribution(params) + + cmd = upload_docs(dist) + + cmd.initialize_options() + assert cmd.upload_dir is None + assert cmd.has_sphinx() is True + cmd.finalize_options() |
