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()
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()
def test_import_classes(rootdir): from sphinx.parsers import Parser, RSTParser from sphinx.util.i18n import CatalogInfo try: sys.path.append(rootdir / 'test-ext-inheritance_diagram') from example.sphinx import DummyClass # got exception for unknown class or module with pytest.raises(InheritanceException): import_classes('unknown', None) with pytest.raises(InheritanceException): import_classes('unknown.Unknown', None) # got exception InheritanceException for wrong class or module # not AttributeError (refs: #4019) with pytest.raises(InheritanceException): import_classes('unknown', '.') with pytest.raises(InheritanceException): import_classes('unknown.Unknown', '.') with pytest.raises(InheritanceException): import_classes('.', 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.parsers', None) assert set(classes) == {Parser, RSTParser} # specified class in the module classes = import_classes('sphinx.parsers.Parser', None) assert classes == [Parser] # specified class in current module classes = import_classes('Parser', 'sphinx.parsers') assert classes == [Parser] # relative module name to current module classes = import_classes('i18n.CatalogInfo', 'sphinx.util') assert classes == [CatalogInfo] # got exception for functions with pytest.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()