summaryrefslogtreecommitdiff
path: root/tests/test_setup_command.py
diff options
context:
space:
mode:
authorAdam Turner <9087854+aa-turner@users.noreply.github.com>2023-03-05 15:55:30 +0000
committerAdam Turner <9087854+aa-turner@users.noreply.github.com>2023-03-05 19:03:06 +0000
commit44326fe2476db44e8c2a60d9326c9c3ac2865c03 (patch)
tree8abf1abe10a6b007140a0033f9d7e80e19325419 /tests/test_setup_command.py
parent43e681e88ff304f8fab4f8858087c1398bec7a35 (diff)
downloadsphinx-git-44326fe2476db44e8c2a60d9326c9c3ac2865c03.tar.gz
Remove tests that rely on setuptools
Diffstat (limited to 'tests/test_setup_command.py')
-rw-r--r--tests/test_setup_command.py141
1 files changed, 0 insertions, 141 deletions
diff --git a/tests/test_setup_command.py b/tests/test_setup_command.py
deleted file mode 100644
index 897718874..000000000
--- a/tests/test_setup_command.py
+++ /dev/null
@@ -1,141 +0,0 @@
-"""Test setup_command for distutils."""
-
-import os
-import subprocess
-import sys
-from collections import namedtuple
-from textwrap import dedent
-
-import pytest
-
-import sphinx
-
-try:
- from contextlib import chdir
-except ImportError:
- from sphinx.util.osutil import _chdir as chdir
-
-
-@pytest.fixture()
-def setup_command(request, tempdir, rootdir):
- """
- Run `setup.py build_sphinx` with args and kwargs,
- pass it to the test and clean up properly.
- """
- marker = request.node.get_closest_marker('setup_command')
- args = marker.args if marker else []
-
- pkgrootdir = tempdir / 'test-setup'
- (rootdir / 'test-setup').copytree(pkgrootdir)
-
- with chdir(pkgrootdir):
- pythonpath = os.path.dirname(os.path.dirname(sphinx.__file__))
- if os.getenv('PYTHONPATH'):
- pythonpath = os.getenv('PYTHONPATH') + os.pathsep + pythonpath
- command = [sys.executable, 'setup.py', 'build_sphinx']
- command.extend(args)
-
- proc = subprocess.Popen(
- command,
- env=dict(os.environ, PYTHONPATH=pythonpath, PYTHONWARNINGS='default'),
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- yield namedtuple('setup', 'pkgroot,proc')(pkgrootdir, proc)
-
-
-def test_build_sphinx(setup_command):
- proc = setup_command.proc
- out, err = proc.communicate()
- print(out.decode())
- print(err.decode())
- assert proc.returncode == 0
-
-
-@pytest.mark.setup_command('-b', 'html,man')
-def test_build_sphinx_multiple_builders(setup_command):
- proc = setup_command.proc
- out, err = proc.communicate()
- print(out.decode())
- print(err.decode())
- assert proc.returncode == 0
-
-
-@pytest.mark.setup_command('-b', 'html,bar')
-def test_build_sphinx_multiple_invalid_builders(setup_command):
- proc = setup_command.proc
- out, err = proc.communicate()
- print(out.decode())
- print(err.decode())
- assert proc.returncode == 1
-
-
-@pytest.fixture()
-def _nonascii_srcdir(request, setup_command):
- mb_name = '\u65e5\u672c\u8a9e'
- srcdir = (setup_command.pkgroot / 'doc')
- try:
- (srcdir / mb_name).makedirs()
- except UnicodeEncodeError:
- from sphinx.testing.path import FILESYSTEMENCODING
- pytest.skip(
- 'non-ASCII filename not supported on this filesystem encoding: '
- '%s' % FILESYSTEMENCODING)
-
- (srcdir / mb_name / (mb_name + '.txt')).write_text(dedent("""
- multi byte file name page
- ==========================
- """), encoding='utf8')
-
- root_doc = srcdir / 'index.txt'
- root_doc.write_bytes((root_doc.read_text(encoding='utf8') + dedent("""
- .. toctree::
-
- %(mb_name)s/%(mb_name)s
- """ % locals())).encode())
-
-
-@pytest.mark.usefixtures('_nonascii_srcdir')
-def test_build_sphinx_with_nonascii_path(setup_command):
- proc = setup_command.proc
- out, err = proc.communicate()
- print(out.decode())
- print(err.decode())
- assert proc.returncode == 0
-
-
-@pytest.mark.setup_command('-b', 'linkcheck')
-def test_build_sphinx_return_nonzero_status(setup_command):
- srcdir = (setup_command.pkgroot / 'doc')
- (srcdir / 'contents.txt').write_text(
- 'http://localhost.unexistentdomain/index.html',
- encoding='utf8')
- proc = setup_command.proc
- out, err = proc.communicate()
- print(out.decode())
- print(err.decode())
- assert proc.returncode != 0, 'expect non-zero status for setup.py'
-
-
-def test_build_sphinx_warning_return_zero_status(setup_command):
- srcdir = (setup_command.pkgroot / 'doc')
- (srcdir / 'contents.txt').write_text(
- 'See :ref:`unexisting-reference-label`',
- encoding='utf8')
- proc = setup_command.proc
- out, err = proc.communicate()
- print(out.decode())
- print(err.decode())
- assert proc.returncode == 0
-
-
-@pytest.mark.setup_command('--warning-is-error')
-def test_build_sphinx_warning_is_error_return_nonzero_status(setup_command):
- srcdir = (setup_command.pkgroot / 'doc')
- (srcdir / 'contents.txt').write_text(
- 'See :ref:`unexisting-reference-label`',
- encoding='utf8')
- proc = setup_command.proc
- out, err = proc.communicate()
- print(out.decode())
- print(err.decode())
- assert proc.returncode != 0, 'expect non-zero status for setup.py'