Skip to content

Commit

Permalink
Merge pull request #9886 from tk0miya/9868_pytest_failing
Browse files Browse the repository at this point in the history
Fix #9868: 4.3.0: pytest is failing
  • Loading branch information
tk0miya committed Nov 25, 2021
2 parents 538e281 + dbba0ae commit aa0335a
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 9 deletions.
1 change: 1 addition & 0 deletions CHANGES
Expand Up @@ -25,6 +25,7 @@ Bugs fixed
having invalid __doc__ atribute
* #9872: html: Class namespace collision between autodoc signatures and
docutils-0.17
* #9868: imgmath: Crashed if the dvisvgm command failed to convert equation
* #9864: mathjax: Failed to render equations via MathJax v2. The loading method
of MathJax is back to "async" method again

Expand Down
10 changes: 5 additions & 5 deletions sphinx/ext/imgmath.py
Expand Up @@ -12,7 +12,6 @@
import re
import shutil
import subprocess
import sys
import tempfile
from os import path
from subprocess import PIPE, CalledProcessError
Expand Down Expand Up @@ -43,11 +42,11 @@
class MathExtError(SphinxError):
category = 'Math extension error'

def __init__(self, msg: str, stderr: bytes = None, stdout: bytes = None) -> None:
def __init__(self, msg: str, stderr: str = None, stdout: str = None) -> None:
if stderr:
msg += '\n[stderr]\n' + stderr.decode(sys.getdefaultencoding(), 'replace')
msg += '\n[stderr]\n' + stderr
if stdout:
msg += '\n[stdout]\n' + stdout.decode(sys.getdefaultencoding(), 'replace')
msg += '\n[stdout]\n' + stdout
super().__init__(msg)


Expand Down Expand Up @@ -135,7 +134,8 @@ def compile_math(latex: str, builder: Builder) -> str:
command.append('math.tex')

try:
subprocess.run(command, stdout=PIPE, stderr=PIPE, cwd=tempdir, check=True)
subprocess.run(command, stdout=PIPE, stderr=PIPE, cwd=tempdir, check=True,
encoding='ascii')
return path.join(tempdir, 'math.dvi')
except OSError as exc:
logger.warning(__('LaTeX command %r cannot be run (needed for math '
Expand Down
14 changes: 10 additions & 4 deletions tests/test_util_inspect.py
Expand Up @@ -16,7 +16,6 @@
import types
from inspect import Parameter

import _testcapi
import pytest

from sphinx.util import inspect
Expand Down Expand Up @@ -627,8 +626,6 @@ class Descriptor:
def __get__(self, obj, typ=None):
pass

testinstancemethod = _testcapi.instancemethod(str.__repr__)

assert inspect.isattributedescriptor(Base.prop) is True # property
assert inspect.isattributedescriptor(Base.meth) is False # method
assert inspect.isattributedescriptor(Base.staticmeth) is False # staticmethod
Expand All @@ -639,7 +636,16 @@ def __get__(self, obj, typ=None):
assert inspect.isattributedescriptor(dict.__dict__['fromkeys']) is False # ClassMethodDescriptorType # NOQA
assert inspect.isattributedescriptor(types.FrameType.f_locals) is True # GetSetDescriptorType # NOQA
assert inspect.isattributedescriptor(datetime.timedelta.days) is True # MemberDescriptorType # NOQA
assert inspect.isattributedescriptor(testinstancemethod) is False # instancemethod (C-API) # NOQA

try:
# _testcapi module cannot be importable in some distro
# refs: https://github.com/sphinx-doc/sphinx/issues/9868
import _testcapi

testinstancemethod = _testcapi.instancemethod(str.__repr__)
assert inspect.isattributedescriptor(testinstancemethod) is False # instancemethod (C-API) # NOQA
except ImportError:
pass


def test_isproperty(app):
Expand Down

0 comments on commit aa0335a

Please sign in to comment.