1""" 2 test_api_translator 3 ~~~~~~~~~~~~~~~~~~~ 4 5 Test the Sphinx API for translator. 6 7 :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. 8 :license: BSD, see LICENSE for details. 9""" 10 11import sys 12 13import pytest 14 15from sphinx.util import docutils 16 17 18@pytest.fixture(scope='module', autouse=True) 19def setup_module(rootdir): 20 p = rootdir / 'test-api-set-translator' 21 sys.path.insert(0, p) 22 yield 23 sys.path.remove(p) 24 25 26@pytest.mark.sphinx('html') 27def test_html_translator(app, status, warning): 28 # no set_translator() 29 translator_class = app.builder.get_translator_class() 30 assert translator_class 31 if docutils.__version_info__ < (0, 13): 32 assert translator_class.__name__ == 'HTMLTranslator' 33 else: 34 assert translator_class.__name__ == 'HTML5Translator' 35 36 37@pytest.mark.sphinx('html', testroot='api-set-translator') 38def test_html_with_set_translator_for_html_(app, status, warning): 39 # use set_translator() 40 translator_class = app.builder.get_translator_class() 41 assert translator_class 42 assert translator_class.__name__ == 'ConfHTMLTranslator' 43 44 45@pytest.mark.sphinx('singlehtml', testroot='api-set-translator') 46def test_singlehtml_set_translator_for_singlehtml(app, status, warning): 47 translator_class = app.builder.get_translator_class() 48 assert translator_class 49 assert translator_class.__name__ == 'ConfSingleHTMLTranslator' 50 51 52@pytest.mark.sphinx('pickle', testroot='api-set-translator') 53def test_pickle_set_translator_for_pickle(app, status, warning): 54 translator_class = app.builder.get_translator_class() 55 assert translator_class 56 assert translator_class.__name__ == 'ConfPickleTranslator' 57 58 59@pytest.mark.sphinx('json', testroot='api-set-translator') 60def test_json_set_translator_for_json(app, status, warning): 61 translator_class = app.builder.get_translator_class() 62 assert translator_class 63 assert translator_class.__name__ == 'ConfJsonTranslator' 64 65 66@pytest.mark.sphinx('latex', testroot='api-set-translator') 67def test_html_with_set_translator_for_latex(app, status, warning): 68 translator_class = app.builder.get_translator_class() 69 assert translator_class 70 assert translator_class.__name__ == 'ConfLaTeXTranslator' 71 72 73@pytest.mark.sphinx('man', testroot='api-set-translator') 74def test_html_with_set_translator_for_man(app, status, warning): 75 translator_class = app.builder.get_translator_class() 76 assert translator_class 77 assert translator_class.__name__ == 'ConfManualPageTranslator' 78 79 80@pytest.mark.sphinx('texinfo', testroot='api-set-translator') 81def test_html_with_set_translator_for_texinfo(app, status, warning): 82 translator_class = app.builder.get_translator_class() 83 assert translator_class 84 assert translator_class.__name__ == 'ConfTexinfoTranslator' 85 86 87@pytest.mark.sphinx('text', testroot='api-set-translator') 88def test_html_with_set_translator_for_text(app, status, warning): 89 translator_class = app.builder.get_translator_class() 90 assert translator_class 91 assert translator_class.__name__ == 'ConfTextTranslator' 92 93 94@pytest.mark.sphinx('xml', testroot='api-set-translator') 95def test_html_with_set_translator_for_xml(app, status, warning): 96 translator_class = app.builder.get_translator_class() 97 assert translator_class 98 assert translator_class.__name__ == 'ConfXMLTranslator' 99 100 101@pytest.mark.sphinx('pseudoxml', testroot='api-set-translator') 102def test_html_with_set_translator_for_pseudoxml(app, status, warning): 103 translator_class = app.builder.get_translator_class() 104 assert translator_class 105 assert translator_class.__name__ == 'ConfPseudoXMLTranslator' 106