mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
logging: always show source locations as absolute paths (#10460)
This commit is contained in:
parent
6ef22d2613
commit
9c9a52d92b
@ -12,6 +12,7 @@ from docutils.utils import get_source_line
|
|||||||
|
|
||||||
from sphinx.errors import SphinxWarning
|
from sphinx.errors import SphinxWarning
|
||||||
from sphinx.util.console import colorize
|
from sphinx.util.console import colorize
|
||||||
|
from sphinx.util.osutil import abspath
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from sphinx.application import Sphinx
|
from sphinx.application import Sphinx
|
||||||
@ -514,6 +515,8 @@ class WarningLogRecordTranslator(SphinxLogRecordTranslator):
|
|||||||
|
|
||||||
def get_node_location(node: Node) -> Optional[str]:
|
def get_node_location(node: Node) -> Optional[str]:
|
||||||
(source, line) = get_source_line(node)
|
(source, line) = get_source_line(node)
|
||||||
|
if source:
|
||||||
|
source = abspath(source)
|
||||||
if source and line:
|
if source and line:
|
||||||
return "%s:%s" % (source, line)
|
return "%s:%s" % (source, line)
|
||||||
elif source:
|
elif source:
|
||||||
|
@ -2,13 +2,14 @@
|
|||||||
|
|
||||||
import codecs
|
import codecs
|
||||||
import os
|
import os
|
||||||
|
import os.path
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from docutils import nodes
|
from docutils import nodes
|
||||||
|
|
||||||
from sphinx.errors import SphinxWarning
|
from sphinx.errors import SphinxWarning
|
||||||
from sphinx.testing.util import strip_escseq
|
from sphinx.testing.util import strip_escseq
|
||||||
from sphinx.util import logging
|
from sphinx.util import logging, osutil
|
||||||
from sphinx.util.console import colorize
|
from sphinx.util.console import colorize
|
||||||
from sphinx.util.logging import is_suppressed_warning, prefixed_warnings
|
from sphinx.util.logging import is_suppressed_warning, prefixed_warnings
|
||||||
from sphinx.util.parallel import ParallelTasks
|
from sphinx.util.parallel import ParallelTasks
|
||||||
@ -379,3 +380,18 @@ def test_prefixed_warnings(app, status, warning):
|
|||||||
assert 'WARNING: Another PREFIX: message3' in warning.getvalue()
|
assert 'WARNING: Another PREFIX: message3' in warning.getvalue()
|
||||||
assert 'WARNING: PREFIX: message4' in warning.getvalue()
|
assert 'WARNING: PREFIX: message4' in warning.getvalue()
|
||||||
assert 'WARNING: message5' in warning.getvalue()
|
assert 'WARNING: message5' in warning.getvalue()
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_node_location_abspath():
|
||||||
|
# Ensure that node locations are reported as an absolute path,
|
||||||
|
# even if the source attribute is a relative path.
|
||||||
|
|
||||||
|
relative_filename = os.path.join('relative', 'path.txt')
|
||||||
|
absolute_filename = osutil.abspath(relative_filename)
|
||||||
|
|
||||||
|
n = nodes.Node()
|
||||||
|
n.source = relative_filename
|
||||||
|
|
||||||
|
location = logging.get_node_location(n)
|
||||||
|
|
||||||
|
assert location == absolute_filename + ':'
|
||||||
|
Loading…
Reference in New Issue
Block a user