Deprecate evaluating Python 2 syntax in configuration files

This commit is contained in:
Jon Dufresne
2018-11-21 19:15:27 -08:00
parent 318cfadfe0
commit d99e2cae19
4 changed files with 62 additions and 9 deletions

View File

@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
"""
test_util_pycompat
~~~~~~~~~~~~~~~~~~
Tests sphinx.util.pycompat functions.
:copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import tempfile
from sphinx.testing.util import strip_escseq
from sphinx.util import logging
from sphinx.util.pycompat import execfile_
def test_execfile_python2(capsys, app, status, warning):
logging.setup(app, status, warning)
ns = {}
with tempfile.NamedTemporaryFile() as tmp:
tmp.write(b'print "hello"\n')
tmp.flush()
execfile_(tmp.name, ns)
msg = (
'Support for evaluating Python 2 syntax is deprecated '
'and will be removed in Sphinx 4.0. '
'Convert %s to Python 3 syntax.\n' % tmp.name)
assert msg in strip_escseq(warning.getvalue())
captured = capsys.readouterr()
assert captured.out == 'hello\n'
def test_execfile(capsys):
ns = {}
with tempfile.NamedTemporaryFile() as tmp:
tmp.write(b'print("hello")\n')
tmp.flush()
execfile_(tmp.name, ns)
captured = capsys.readouterr()
assert captured.out == 'hello\n'