diff --git a/tests/test_build_htmlhelp.py b/tests/test_build_htmlhelp.py
index 5a47ca580..78c698ec4 100644
--- a/tests/test_build_htmlhelp.py
+++ b/tests/test_build_htmlhelp.py
@@ -6,39 +6,20 @@
:license: BSD, see LICENSE for details.
"""
-import os.path
import re
-import sys
-from subprocess import Popen, PIPE
import pytest
-from sphinx.util.osutil import cd
-
-@pytest.mark.skipif(sys.platform != "win32",
- reason="hhc.exe only available on Windows.")
@pytest.mark.sphinx('htmlhelp', testroot='build-htmlhelp')
-def test_chm():
- # run make.bat
- with cd(r".\roots\test-build-htmlhelp"):
- try:
- p = Popen(['make.bat'],
- stdout=PIPE, stderr=PIPE)
- except:
- raise
- else:
- p.communicate()
+def test_chm(app):
+ app.build()
# check .hhk file
- this_path = os.path.dirname(os.path.abspath(__file__))
- hhk_file = os.path.join(this_path, 'roots', 'test-build-htmlhelp',
- 'build', 'htmlhelp', 'test.hhk')
- if not os.path.isfile(hhk_file):
- print(".chm build failed, please install HTML Help Workshop.")
- return
+ outname = app.builder.config.htmlhelp_basename
+ hhk_path = str(app.outdir / outname + '.hhk')
- with open(hhk_file, 'rb') as f:
+ with open(hhk_path, 'rb') as f:
data = f.read()
m = re.search(br'[xX][0-9a-fA-F]+;', data)
assert m == None, 'Hex escaping exists in .hhk file: ' + str(m.group(0))