diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2019-02-15 01:44:12 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2019-02-15 01:44:32 +0900 |
commit | 3b49f9fe3dc980c2c53933d1ea88b7611202790d (patch) | |
tree | 1c442b0034ba60a90fc9840196bed203ffb1727c /tests/test_build_htmlhelp.py | |
parent | cd542fb2af2088fa63e4afb4ba83a12d04f830fb (diff) | |
download | sphinx-git-3b49f9fe3dc980c2c53933d1ea88b7611202790d.tar.gz |
Separate htmlhelp to sphinxcontrib package
Diffstat (limited to 'tests/test_build_htmlhelp.py')
-rw-r--r-- | tests/test_build_htmlhelp.py | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/tests/test_build_htmlhelp.py b/tests/test_build_htmlhelp.py deleted file mode 100644 index 4ad244a4e..000000000 --- a/tests/test_build_htmlhelp.py +++ /dev/null @@ -1,131 +0,0 @@ -""" - test_build_htmlhelp - ~~~~~~~~~~~~~~~~~~~ - - Test the HTML Help builder and check output against XPath. - - :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -import re - -import pytest -from html5lib import HTMLParser - -from sphinx.builders.htmlhelp import chm_htmlescape, default_htmlhelp_basename -from sphinx.config import Config - - -@pytest.mark.sphinx('htmlhelp', testroot='basic') -def test_build_htmlhelp(app, status, warning): - app.build() - - hhp = (app.outdir / 'pythondoc.hhp').text() - assert 'Compiled file=pythondoc.chm' in hhp - assert 'Contents file=pythondoc.hhc' in hhp - assert 'Default Window=pythondoc' in hhp - assert 'Default topic=index.html' in hhp - assert 'Full text search stop list file=pythondoc.stp' in hhp - assert 'Index file=pythondoc.hhk' in hhp - assert 'Language=0x409' in hhp - assert 'Title=Python documentation' in hhp - assert ('pythondoc="Python documentation","pythondoc.hhc",' - '"pythondoc.hhk","index.html","index.html",,,,,' - '0x63520,220,0x10384e,[0,0,1024,768],,,,,,,0' in hhp) - - files = ['genindex.html', 'index.html', '_static\\alabaster.css', '_static\\basic.css', - '_static\\custom.css', '_static\\file.png', '_static\\minus.png', - '_static\\plus.png', '_static\\pygments.css'] - assert '[FILES]\n%s' % '\n'.join(files) in hhp - - -@pytest.mark.sphinx('htmlhelp', testroot='basic') -def test_default_htmlhelp_file_suffix(app, warning): - assert app.builder.out_suffix == '.html' - - -@pytest.mark.sphinx('htmlhelp', testroot='basic', - confoverrides={'htmlhelp_file_suffix': '.htm'}) -def test_htmlhelp_file_suffix(app, warning): - assert app.builder.out_suffix == '.htm' - - -def test_default_htmlhelp_basename(): - config = Config({'project': 'Sphinx Documentation'}) - config.init_values() - assert default_htmlhelp_basename(config) == 'sphinxdoc' - - -@pytest.mark.sphinx('htmlhelp', testroot='build-htmlhelp') -def test_chm(app): - app.build() - - # check .hhk file - outname = app.builder.config.htmlhelp_basename - hhk_path = str(app.outdir / outname + '.hhk') - - with open(hhk_path, 'rb') as f: - data = f.read() - m = re.search(br'&#[xX][0-9a-fA-F]+;', data) - assert m is None, 'Hex escaping exists in .hhk file: ' + str(m.group(0)) - - -@pytest.mark.sphinx('htmlhelp', testroot='htmlhelp-hhc') -def test_htmlhelp_hhc(app): - app.build() - - def assert_sitemap(node, name, filename): - assert node.tag == 'object' - assert len(node) == 2 - assert node[0].tag == 'param' - assert node[0].attrib == {'name': 'Name', 'value': name} - assert node[1].tag == 'param' - assert node[1].attrib == {'name': 'Local', 'value': filename} - - # .hhc file - hhc = (app.outdir / 'pythondoc.hhc').text() - tree = HTMLParser(namespaceHTMLElements=False).parse(hhc) - items = tree.find('.//body/ul') - assert len(items) == 4 - - # index - assert items[0].tag == 'li' - assert len(items[0]) == 1 - assert_sitemap(items[0][0], "Sphinx's documentation", 'index.html') - - # py-modindex - assert items[1].tag == 'li' - assert len(items[1]) == 1 - assert_sitemap(items[1][0], 'Python Module Index', 'py-modindex.html') - - # toctree - assert items[2].tag == 'li' - assert len(items[2]) == 2 - assert_sitemap(items[2][0], 'foo', 'foo.html') - - assert items[2][1].tag == 'ul' - assert len(items[2][1]) == 1 - assert items[2][1][0].tag == 'li' - assert_sitemap(items[2][1][0][0], 'bar', 'bar.html') - - assert items[3].tag == 'li' - assert len(items[3]) == 1 - assert_sitemap(items[3][0], 'baz', 'baz.html') - - # single quotes should be escaped as decimal (') - assert "Sphinx's documentation" in hhc - - -def test_chm_htmlescape(): - assert chm_htmlescape('Hello world') == 'Hello world' - assert chm_htmlescape(u'Unicode 文字') == u'Unicode 文字' - assert chm_htmlescape('E') == '&#x45' - - assert chm_htmlescape('<Hello> "world"') == '<Hello> "world"' - assert chm_htmlescape('<Hello> "world"', True) == '<Hello> "world"' - assert chm_htmlescape('<Hello> "world"', False) == '<Hello> "world"' - - assert chm_htmlescape("Hello 'world'") == "Hello 'world'" - assert chm_htmlescape("Hello 'world'", True) == "Hello 'world'" - assert chm_htmlescape("Hello 'world'", False) == "Hello 'world'" |