diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2016-11-23 13:31:02 +0900 |
---|---|---|
committer | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2016-11-23 13:31:02 +0900 |
commit | e63afbc60ec6534f3f09bb5cad1f5400da0988f1 (patch) | |
tree | d269de11f798dede9f6216829d1cb4f98081d352 /tests/test_ext_inheritance_diagram.py | |
parent | 43fe104501912077dde3890b392a2518f784bef9 (diff) | |
parent | 0ee524e3922089b7ffbd6081c92968ae7dd510c7 (diff) | |
download | sphinx-git-e63afbc60ec6534f3f09bb5cad1f5400da0988f1.tar.gz |
Merge branch '1.5-release'
Diffstat (limited to 'tests/test_ext_inheritance_diagram.py')
-rw-r--r-- | tests/test_ext_inheritance_diagram.py | 50 |
1 files changed, 48 insertions, 2 deletions
diff --git a/tests/test_ext_inheritance_diagram.py b/tests/test_ext_inheritance_diagram.py index bf1bbbac0..968bb1473 100644 --- a/tests/test_ext_inheritance_diagram.py +++ b/tests/test_ext_inheritance_diagram.py @@ -9,9 +9,10 @@ :license: BSD, see LICENSE for details. """ -import re -from util import with_app +import sys +from util import with_app, rootdir, raises from test_ext_graphviz import skip_if_graphviz_not_found +from sphinx.ext.inheritance_diagram import InheritanceException, import_classes @with_app('html', testroot='ext-inheritance_diagram') @@ -40,3 +41,48 @@ def test_inheritance_diagram_latex(app, status, warning): '\\\\includegraphics{inheritance-\\w+.pdf}\n' '\\\\caption{Test Foo!}\\\\label{index:id1}\\\\end{figure}') assert re.search(pattern, content, re.M) + + +def test_import_classes(): + from sphinx.application import Sphinx, TemplateBridge + from sphinx.util.i18n import CatalogInfo + + try: + sys.path.append(rootdir / 'roots/test-ext-inheritance_diagram') + from example.sphinx import DummyClass + + # got exception for unknown class or module + raises(InheritanceException, import_classes, 'unknown', None) + raises(InheritanceException, import_classes, 'unknown.Unknown', None) + + # a module having no classes + classes = import_classes('sphinx', None) + assert classes == [] + + classes = import_classes('sphinx', 'foo') + assert classes == [] + + # all of classes in the module + classes = import_classes('sphinx.application', None) + assert set(classes) == set([Sphinx, TemplateBridge]) + + # specified class in the module + classes = import_classes('sphinx.application.Sphinx', None) + assert classes == [Sphinx] + + # specified class in current module + classes = import_classes('Sphinx', 'sphinx.application') + assert classes == [Sphinx] + + # relative module name to current module + classes = import_classes('i18n.CatalogInfo', 'sphinx.util') + assert classes == [CatalogInfo] + + # got exception for functions + raises(InheritanceException, import_classes, 'encode_uri', 'sphinx.util') + + # import submodule on current module (refs: #3164) + classes = import_classes('sphinx', 'example') + assert classes == [DummyClass] + finally: + sys.path.pop() |