diff --git a/CHANGES b/CHANGES index 4006913c17b..4e98b2c8ab4 100644 --- a/CHANGES +++ b/CHANGES @@ -19,6 +19,7 @@ Features added template variable ``sphinx_version_tuple`` * #9445: py domain: ``:py:property:`` directive supports ``:classmethod:`` option to describe the class property +* #9524: test: SphinxTestApp can take ``builddir`` as an argument * #9535: C and C++, support more fundamental types, including GNU extensions. Bugs fixed diff --git a/sphinx/testing/util.py b/sphinx/testing/util.py index bfbb1071c5f..941184fe712 100644 --- a/sphinx/testing/util.py +++ b/sphinx/testing/util.py @@ -102,14 +102,17 @@ class SphinxTestApp(application.Sphinx): _status: StringIO = None _warning: StringIO = None - def __init__(self, buildername: str = 'html', srcdir: path = None, freshenv: bool = False, - confoverrides: Dict = None, status: IO = None, warning: IO = None, - tags: List[str] = None, docutilsconf: str = None, parallel: int = 0) -> None: + def __init__(self, buildername: str = 'html', srcdir: path = None, builddir: path = None, + freshenv: bool = False, confoverrides: Dict = None, status: IO = None, + warning: IO = None, tags: List[str] = None, docutilsconf: str = None, + parallel: int = 0) -> None: if docutilsconf is not None: (srcdir / 'docutils.conf').write_text(docutilsconf) - builddir = srcdir / '_build' + if builddir is None: + builddir = srcdir / '_build' + confdir = srcdir outdir = builddir.joinpath(buildername) outdir.makedirs(exist_ok=True)