def test_setup_wrong_order():
	try:
		Sphinx.extensions = ["sphinx.ext.autodoc"]  # type: ignore

		with pytest.raises(
				ExtensionError,
				match="'sphinx_toolbox.more_autodoc.augment_defaults' "
				"must be loaded before 'sphinx.ext.autodoc'.",
				):
			run_setup(augment_defaults.setup)

	finally:
		del Sphinx.extensions  # type: ignore
Esempio n. 2
0
def test_setup(advanced_file_regression: AdvancedFileRegressionFixture):
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        more_autosummary.setup)

    assert setup_ret == {"parallel_read_safe": True, "version": __version__}

    assert directives == {
        "autosummary": more_autosummary.PatchedAutosummary,
        "autoclass": AutodocDirective,
        "automodule": AutodocDirective,
        "autoclasssumm": more_autosummary.PatchedAutoDocSummDirective,
        "automodulesumm": more_autosummary.PatchedAutoDocSummDirective,
    }

    assert app.registry.documenters[
        "module"] == more_autosummary.PatchedAutoSummModuleDocumenter
    assert app.registry.documenters[
        "class"] == more_autosummary.PatchedAutoSummClassDocumenter

    assert not roles
    assert not additional_nodes

    assert app.config.values["autodocsumm_member_order"][:2] == (
        "alphabetical",
        "env",
    )

    assert app.config.values["autodocsumm_member_order"][2].candidates == (
        "alphabetic", "alphabetical", "bysource")
def test_setup():
	setup_ret, directives, roles, additional_nodes, app = run_setup(installation.setup)

	assert app.events.listeners == {
			"env-purge-doc": [
					EventListener(id=1, handler=installation.extensions_node_purger.purge_nodes, priority=500),
					],
			"env-get-outdated": [
					EventListener(
							id=0,
							handler=installation.installation_node_purger.get_outdated_docnames,
							priority=500
							),
					],
			"build-finished": [EventListener(id=3, handler=installation.copy_asset_files, priority=500)],
			"config-inited": [EventListener(id=2, handler=installation._on_config_inited, priority=510)],
			}

	assert app.config.values["conda_channels"] == ([], "env", [list])

	assert directives == {
			"installation": installation.InstallationDirective,
			"extensions": installation.ExtensionsDirective,
			}
	assert app.registry.source_parsers == {}

	assert app.registry.css_files == []
	assert app.registry.js_files == []

	installation._on_config_inited(app, app.config)  # type: ignore
	assert app.registry.css_files == [("sphinx_toolbox_installation.css", {})]
	assert app.registry.js_files == [("sphinx_toolbox_installation.js", {})]
Esempio n. 4
0
def test_setup() -> None:

    app: Sphinx
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        sphinxcontrib.extras_require.setup)

    assert setup_ret == {
        "version": __version__,
        "parallel_read_safe": True,
        "parallel_write_safe": True,
    }

    assert additional_nodes == set()

    assert app.config.values["package_root"] == (None, "env", [str])
    assert app.config.values["pypi_name"] == (None, "env", [str])

    assert directives == {"extras-require": ExtrasRequireDirective}

    assert app.events.listeners == {
        "env-purge-doc": [
            EventListener(id=0,
                          handler=extras_require_purger.purge_nodes,
                          priority=500)
        ],
    }
Esempio n. 5
0
def test_setup():
	setup_ret, directives, roles, additional_nodes, app = run_setup(github.setup)

	assert setup_ret == {"version": sphinx_toolbox.__version__, "parallel_read_safe": True}

	expected_additional_nodes: Set[Type[nodes.reference]] = {IssueNode, GitHubObjectLinkNode}
	assert additional_nodes == expected_additional_nodes
	assert app.registry.translation_handlers == {
			"html": {
					"IssueNode": (visit_issue_node, depart_issue_node),
					"GitHubObjectLinkNode": (visit_github_object_link_node, depart_github_object_link_node)
					},
			"latex": {
					"IssueNode": (_visit_issue_node_latex, _depart_issue_node_latex),
					"GitHubObjectLinkNode": (
							_visit_github_object_link_node_latex,
							_depart_github_object_link_node_latex,
							)
					},
			}

	# Moved to own setup function
	assert app.config.values["github_username"] == (None, "env", [str])
	assert app.config.values["github_repository"] == (None, "env", [str])

	assert app.events.listeners == {
			"config-inited": [EventListener(id=0, handler=github.validate_config, priority=850)],
			}

	assert directives == {}
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        shields.setup)

    assert setup_ret == {
        "version": sphinx_toolbox.__version__,
        "parallel_read_safe": True
    }

    assert additional_nodes == set()
    assert app.registry.translation_handlers == {}
    assert app.events.listeners == {}

    assert directives == {
        "rtfd-shield": shields.RTFDShield,
        "actions-shield": shields.GitHubActionsShield,
        "requires-io-shield": shields.RequiresIOShield,
        "coveralls-shield": shields.CoverallsShield,
        "codefactor-shield": shields.CodefactorShield,
        "pypi-shield": shields.PyPIShield,
        "github-shield": shields.GitHubShield,
        "maintained-shield": shields.MaintainedShield,
        "pre-commit-shield": shields.PreCommitShield,
        "pre-commit-ci-shield": shields.PreCommitCIShield,
    }
Esempio n. 7
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        sidebar_links.setup)

    assert app.events.listeners == {}

    assert directives == {"sidebar-links": sidebar_links.SidebarLinksDirective}
    assert app.registry.source_parsers == {}
Esempio n. 8
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        no_docstring.setup)

    assert setup_ret == {"parallel_read_safe": True, "version": __version__}

    assert directives == {}
    assert roles == {}
    assert additional_nodes == set()
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        source.setup)

    assert roles == {"source": source.source_role}
    assert app.config.values["source_link_target"] == ("Sphinx", "env", [str])
    assert app.registry.source_parsers == {}
    assert app.events.listeners == {
        "config-inited": [EventListener(0, source._configure, 500)]
    }
Esempio n. 10
0
def test_setup():
	setup_ret, directives, roles, additional_nodes, app = run_setup(annotations.setup)

	assert setup_ret == {
			"version": __version__,
			"parallel_read_safe": True,
			}
	assert directives == {}
	assert roles == {}
	assert additional_nodes == set()
Esempio n. 11
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        generic_bases.setup)

    assert setup_ret == {"parallel_read_safe": True, "version": __version__}

    assert directives == {"autoclass": AutodocDirective}
    assert roles == {}
    assert additional_nodes == set()

    assert app.registry.documenters[
        "class"] == generic_bases.GenericBasesClassDocumenter
def test_setup(advanced_file_regression: AdvancedFileRegressionFixture):
	setup_ret, directives, roles, additional_nodes, app = run_setup(tabsize.setup)

	assert setup_ret == {"version": __version__, "parallel_read_safe": True}

	advanced_file_regression.check(
			pformat(
					app.registry.source_parsers,
					sort_dicts=True,
					),
			extension=".dict",
			encoding="UTF-8",
			)
Esempio n. 13
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(_css.setup)

    assert setup_ret == {
        "version": sphinx_toolbox.__version__,
        "parallel_read_safe": True
    }

    assert additional_nodes == set()
    assert app.registry.translation_handlers == {}
    assert app.events.listeners == {
        "build-finished": [EventListener(0, _css.copy_asset_files, 500)]
    }
    assert app.registry.css_files == [("css/sphinx-toolbox.css", {})]
Esempio n. 14
0
def test_setup():
	setup_ret, directives, roles, additional_nodes, app = run_setup(autotypeddict.setup)

	assert setup_ret == {"parallel_read_safe": True, "version": __version__}

	assert directives == {"autotypeddict": AutodocDirective}
	assert roles == {}
	assert additional_nodes == set()

	assert "typeddict" in app.registry.domains["py"].object_types
	assert "typeddict" in app.registry.domain_directives["py"]
	assert "typeddict" in app.registry.domain_roles["py"]

	assert app.registry.documenters["typeddict"] == autotypeddict.TypedDictDocumenter
def test_setup():
	try:
		Sphinx.extensions = []  # type: ignore

		setup_ret, directives, roles, additional_nodes, app = run_setup(augment_defaults.setup)

		assert setup_ret == {"parallel_read_safe": True, "version": __version__}

		assert directives == {}
		assert roles == {}
		assert additional_nodes == set()

	finally:
		del Sphinx.extensions  # type: ignore
Esempio n. 16
0
def test_setup():

    app: Sphinx
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        sphinxcontrib.toctree_plus.setup)

    assert setup_ret == {
        "version": __version__,
        "parallel_read_safe": True,
        "parallel_write_safe": True,
    }

    assert app.config.values["toctree_plus_types"] == ({
        "class", "function", "method"
    }, "env", [Iterable[str]])
def test_setup():
    result = run_setup(seed_intersphinx_mapping.setup)

    assert result.setup_ret == {
        "version": seed_intersphinx_mapping.__version__,
        "parallel_read_safe": True,
        "parallel_write_safe": True,
    }

    assert result.app.config["pkg_requirements_source"] == "requirements"
    assert result.app.config["repository_root"] == ".."
    assert result.app.events.listeners == {
        "config-inited":
        [EventListener(0, sphinx_seed_intersphinx_mapping, priority=850)],
    }
def test_setup():
	try:
		Sphinx.extensions = []  # type: ignore

		setup_ret, directives, roles, additional_nodes, app = run_setup(typehints.setup)

		assert setup_ret == {"parallel_read_safe": True, "version": __version__}

		assert app.config.values["hide_none_rtype"] == (False, "env", [bool])

		assert directives == {}
		assert roles == {}
		assert additional_nodes == set()

	finally:
		del Sphinx.extensions  # type: ignore
Esempio n. 19
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        issues.setup)

    assert setup_ret == {
        "version": sphinx_toolbox.__version__,
        "parallel_read_safe": True
    }
    assert roles == {
        "issue": issue_role,
        "pr": pull_role,
        "pull": pull_role,
    }

    assert additional_nodes == set()
    assert app.registry.translation_handlers == {}
Esempio n. 20
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        sphinx_toolbox.setup)

    assert setup_ret == {
        "version": sphinx_toolbox.__version__,
        "parallel_read_safe": True
    }

    assert additional_nodes == set()
    assert app.registry.translation_handlers == {}

    assert app.events.listeners == {
        "config-inited":
        [EventListener(id=0, handler=config.validate_config, priority=850)],
    }
Esempio n. 21
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        regex.setup)

    assert setup_ret == {"parallel_read_safe": True, "version": __version__}

    assert directives == {"autoregex": AutodocDirective}
    assert "regex" in roles
    assert isinstance(roles["regex"], regex.Regex)
    assert additional_nodes == {regex.RegexNode}

    assert app.registry.documenters["regex"] == regex.RegexDocumenter

    assert app.events.listeners == {
        "config-inited": [EventListener(0, regex.configure, 500)]
    }
    assert app.registry.css_files == []
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        rest_example.setup)

    assert app.events.listeners == {
        "env-purge-doc": [
            EventListener(id=0,
                          handler=rest_example_purger.purge_nodes,
                          priority=500),
        ],
    }

    assert directives == {
        "rest-example": reSTExampleDirective,
    }

    assert app.registry.source_parsers == {}
Esempio n. 23
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        assets.setup)

    assert setup_ret == {"parallel_read_safe": True, "version": __version__}

    assert directives == {}
    assert roles == {"asset": assets.asset_role}
    assert additional_nodes == {assets.AssetNode}

    assert app.registry.translation_handlers == {
        "html": {
            "AssetNode": (assets.visit_asset_node, assets.depart_asset_node)
        }
    }

    assert app.config.values["assets_dir"] == ("./assets", "env", [str])
    assert app.registry.source_parsers == {}
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        typevars.setup)

    assert setup_ret == {"parallel_read_safe": True, "version": __version__}

    assert directives == {"autotypevar": AutodocDirective}
    assert roles == {}
    assert additional_nodes == set()

    assert app.registry.documenters["typevar"] == typevars.TypeVarDocumenter

    assert app.events.listeners == {
        "config-inited":
        [EventListener(id=0, handler=typevars.validate_config, priority=850)],
    }

    assert app.config.values["no_unbound_typevars"] == (True, "env", [bool])
def test_testing():
    setup_ret, directives, roles, additional_nodes, app = run_setup(__setup)

    assert app.registry.builders["FakeBuilder"] == FakeBuilder

    assert app.config.values["source_link_target"] == ("Sphinx", "env", [str])
    assert app.config.values["github_username"] == (None, "env", [str])
    assert app.config.values["rebuild_true"] == (None, "env", ())
    assert app.config.values["rebuild_false"] == (None, '', ())

    assert app.events.events["my-event"] == ''
    assert app.registry.translators["my-translator"] is FakeNodeVisitor

    assert additional_nodes == {IssueNode}
    assert app.registry.translation_handlers == {
        "html": {
            "IssueNode": (visit_issue_node, depart_issue_node)
        }
    }

    assert roles == {"source": source_role}

    assert app.registry.domains["FakeDomain"] == FakeDomain
    assert app.registry.domain_roles.setdefault("FakeDomain",
                                                {})["source"] is source_role

    assert app.registry.transforms == [FakeTransform]
    assert app.registry.post_transforms == [FakeTransform]

    assert app.registry.latex_packages == [
        ("booktabs", None),
        ("glossaries", "acronyms"),
    ]
    assert app.registry.latex_packages_after_hyperref == [("chemformula", None)
                                                          ]

    assert lexer_classes["my-lexer"] == FakeLexer
    assert app.registry.autodoc_attrgettrs[FakeLexer] is get_fake_lexer
    assert app.registry.source_suffix[".py"] == "python"
    assert app.html_themes == {"domdf_sphinx_theme": '.'}
    assert app.events.listeners["config-inited"] == [
        EventListener(id=0, handler=validate_config, priority=850)
    ]
    assert setup_ret == {"version": 12345, "parallel_read_safe": True}
def test_setup():
    original_make_field = sphinx.util.docfields.TypedField.make_field

    try:

        setup_ret, directives, roles, additional_nodes, app = run_setup(
            param_dash.setup)

        assert setup_ret == {
            "version": sphinx_toolbox.__version__,
            "parallel_read_safe": True
        }

        assert directives == {}
        assert additional_nodes == set()
        assert app.registry.translation_handlers == {}
        assert app.events.listeners == {}
    finally:
        sphinx.util.docfields.TypedField.make_field = original_make_field  # type: ignore
Esempio n. 27
0
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        sourcelink.setup)

    assert setup_ret == {"parallel_read_safe": True, "version": __version__}

    assert directives == {}
    assert roles == {}
    assert additional_nodes == set()

    _listener = [
        EventListener(id=0,
                      handler=sourcelink.sourcelinks_process_docstring,
                      priority=500)
    ]
    assert app.events.listeners == {"autodoc-process-docstring": _listener}

    assert app.config.values["autodoc_show_sourcelink"] == (False, "env",
                                                            [bool])
Esempio n. 28
0
def test_setup():
	setup_ret, directives, roles, additional_nodes, app = run_setup(variables.setup)

	assert setup_ret == {"parallel_read_safe": True, "version": __version__}

	assert directives == {
			"autovariable": AutodocDirective,
			"autoattribute": AutodocDirective,
			"autoinstanceattribute": AutodocDirective,
			"autoslotsattribute": AutodocDirective,
			}

	assert roles == {}
	assert additional_nodes == set()

	assert app.registry.documenters["variable"] == variables.VariableDocumenter
	assert app.registry.documenters["attribute"] == variables.TypedAttributeDocumenter
	assert app.registry.documenters["instanceattribute"] == variables.InstanceAttributeDocumenter
	assert app.registry.documenters["slotsattribute"] == variables.SlotsAttributeDocumenter
Esempio n. 29
0
def test_setup():
	setup_ret, directives, roles, additional_nodes, app = run_setup(code.setup)

	assert setup_ret == {"parallel_read_safe": True, "version": __version__}

	assert directives == {
			"code-block": code.CodeBlock,
			"sourcecode": code.CodeBlock,
			"code-cell": code.CodeCell,
			"output-cell": code.OutputCell,
			}

	assert not roles

	assert additional_nodes == {code.Prompt}

	assert app.events.listeners == {
			"build-finished": [EventListener(id=1, handler=code.copy_asset_files, priority=500)],
			"config-inited": [EventListener(id=0, handler=code.configure, priority=500)],
			}
def test_setup():
    setup_ret, directives, roles, additional_nodes, app = run_setup(
        sphinx_panels_tabs.setup)

    assert setup_ret == {
        "version": sphinx_toolbox.__version__,
        "parallel_read_safe": True
    }

    assert directives == {}
    assert additional_nodes == set()

    assert app.registry.translation_handlers == {
        "html": {
            "container": (sphinx_panels_tabs.visit_container,
                          sphinx_panels_tabs.depart_container)
        }
    }

    assert app.events.listeners == {}