def test_autosummary_class_template_overloading(make_app, app_params): args, kwargs = app_params app = make_app(*args, **kwargs) setup_documenters(app) app.builder.build_update() result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').text() assert 'autosummary/class.rst method block overloading' in result
def test_layout_overloading(make_app, app_params): args, kwargs = app_params app = make_app(*args, **kwargs) setup_documenters(app) app.builder.build_update() result = (app.outdir / 'index.html').text() assert '<!-- layout overloading -->' in result
def test_layout_overloading(make_app, app_params): args, kwargs = app_params app = make_app(*args, **kwargs) setup_documenters(app) app.builder.build_update() result = (app.outdir / 'contents.html').text(encoding='utf-8') assert '<!-- layout overloading -->' in result
def test_autosummary_class_template_overloading(make_app, app_params): args, kwargs = app_params app = make_app(*args, **kwargs) setup_documenters(app) app.builder.build_update() result = (app.outdir / 'generated' / 'sphinx.application.TemplateBridge.html').text( encoding='utf-8') assert 'autosummary/class.rst method block overloading' in result
def get_autosummary_api(): import shutil from sphinx.ext.autosummary import import_by_name from sphinx.ext.autosummary.generate import DummyApplication, setup_documenters, generate_autosummary_docs sources = ['api.rst'] output_dir = './tmp_generated' app = DummyApplication() setup_documenters(app) generate_autosummary_docs(sources, output_dir, app=app) autosummary_api = {} for module_name in _modules: try: module = importlib.import_module(module_name) module_item = ModuleItem(module) autosummary_api[module_name] = module_item except ImportError as err: print(f'module {module_name} could not be imported: {err}') autosummary_api[module_name] = err for generated_rst_file in os.listdir(output_dir): qualname, ext = os.path.splitext(generated_rst_file) qualname, obj, parent, module_name = import_by_name(qualname) module_item = autosummary_api[module_name] name = qualname.split('.')[-1] if inspect.isclass(obj) and name in module_item.classes: continue if inspect.isclass(parent): class_name = parent.__name__ if class_name not in module_item.classes: module_item.insert_element(class_name, parent) class_item = module_item.classes[class_name] class_item.insert_element(name, obj) else: module_item.insert_element(name, obj) if os.path.exists(output_dir): shutil.rmtree(output_dir) return autosummary_api
def get_autosummary_api(): import shutil from sphinx.ext.autosummary import import_by_name from sphinx.ext.autosummary.generate import DummyApplication, setup_documenters, generate_autosummary_docs sources = ['api.rst'] output_dir = './tmp_generated' app = DummyApplication() setup_documenters(app) generate_autosummary_docs(sources, output_dir, app=app) autosummary_api = {} for module_name in _modules: try: module = importlib.import_module(module_name) module_item = ModuleItem(module) autosummary_api[module_name] = module_item except ImportError as err: print('module {} could not be imported: {}'.format(module_name, err)) autosummary_api[module_name] = err for generated_rst_file in os.listdir(output_dir): qualname, ext = os.path.splitext(generated_rst_file) qualname, obj, parent, module_name = import_by_name(qualname) module_item = autosummary_api[module_name] name = qualname.split('.')[-1] if inspect.isclass(obj) and name in module_item.classes: continue if inspect.isclass(parent): class_name = parent.__name__ if class_name not in module_item.classes: module_item.insert_element(class_name, parent) class_item = module_item.classes[class_name] class_item.insert_element(name, obj) else: module_item.insert_element(name, obj) if os.path.exists(output_dir): shutil.rmtree(output_dir) return autosummary_api