mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Fix again: NFC/NFD normalizing problem. Closes #1142
This commit is contained in:
82
tests/test_setup_command.py
Normal file
82
tests/test_setup_command.py
Normal file
@@ -0,0 +1,82 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
test_setup_command
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Test setup_command for distutils.
|
||||
|
||||
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
from functools import wraps
|
||||
import tempfile
|
||||
|
||||
from util import with_tempdir, test_roots
|
||||
from path import path
|
||||
from textwrap import dedent
|
||||
|
||||
root = test_roots / 'test-setup'
|
||||
|
||||
|
||||
def with_setup_command(root, *args, **kwds):
|
||||
"""
|
||||
Run `setup.py build_sphinx` with args and kwargs,
|
||||
pass it to the test and clean up properly.
|
||||
"""
|
||||
def generator(func):
|
||||
@wraps(func)
|
||||
def deco(*args2, **kwargs2):
|
||||
tempdir = path(tempfile.mkdtemp())
|
||||
pkgrootdir = (tempdir / 'root')
|
||||
root.copytree(pkgrootdir)
|
||||
cwd = os.getcwd()
|
||||
os.chdir(pkgrootdir)
|
||||
command = [sys.executable, 'setup.py', 'build_sphinx']
|
||||
command.extend(args)
|
||||
try:
|
||||
proc = subprocess.Popen(
|
||||
command,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE)
|
||||
func(pkgrootdir, proc, *args, **kwds)
|
||||
finally:
|
||||
tempdir.rmtree()
|
||||
os.chdir(cwd)
|
||||
return deco
|
||||
return generator
|
||||
|
||||
|
||||
@with_setup_command(root)
|
||||
def test_build_sphinx(pkgroot, proc):
|
||||
out, err = proc.communicate()
|
||||
print(out)
|
||||
print(err)
|
||||
assert proc.returncode == 0
|
||||
|
||||
|
||||
@with_setup_command(root)
|
||||
def test_build_sphinx_with_multibyte_path(pkgroot, proc):
|
||||
mb_name = u'\u65e5\u672c\u8a9e'
|
||||
srcdir = (pkgroot / 'doc')
|
||||
(srcdir / mb_name).makedirs()
|
||||
(srcdir / mb_name / (mb_name + '.txt')).write_text(dedent("""
|
||||
multi byte file name page
|
||||
==========================
|
||||
"""))
|
||||
|
||||
master_doc = srcdir / 'contents.txt'
|
||||
master_doc.write_bytes((master_doc.text() + dedent("""
|
||||
.. toctree::
|
||||
|
||||
%(mb_name)s/%(mb_name)s
|
||||
""" % locals())
|
||||
).encode('utf-8'))
|
||||
|
||||
out, err = proc.communicate()
|
||||
print(out)
|
||||
print(err)
|
||||
assert proc.returncode == 0
|
Reference in New Issue
Block a user