Esempio n. 1
0
def test_extension():
    """
    Markdown output for a relatively complex Click application is correct.
    """
    md = Markdown(extensions=[mkdocs_click.makeExtension()])

    source = dedent("""
        ::: mkdocs-click
            :module: tests.app.cli
            :command: cli
        """)

    assert md.convert(source) == md.convert(EXPECTED)
Esempio n. 2
0
def test_extension(command, expected_name):
    """
    Markdown output for a relatively complex Click application is correct.
    """
    md = Markdown(extensions=[mkdocs_click.makeExtension()])

    source = dedent(f"""
        ::: mkdocs-click
            :module: tests.app.cli
            :command: {command}
        """)

    expected = EXPECTED.replace("cli", expected_name)

    assert md.convert(source) == md.convert(expected)
Esempio n. 3
0
def test_required_options(option):
    """
    The module and command options are required.
    """
    md = Markdown(extensions=[mkdocs_click.makeExtension()])

    source = dedent("""
        ::: mkdocs-click
            :module: tests.app.cli
            :command: cli
        """)

    source = source.replace(f":{option}:", ":somethingelse:")

    with pytest.raises(mkdocs_click.MkDocsClickException):
        md.convert(source)
Esempio n. 4
0
def test_prog_name():
    """
    The :prog_name: attribute determines the name to display for the command.
    """
    md = Markdown(extensions=[mkdocs_click.makeExtension()])

    source = dedent("""
        ::: mkdocs-click
            :module: tests.app.cli
            :command: cli
            :prog_name: custom
        """)

    expected = EXPECTED.replace("cli", "custom")

    assert md.convert(source) == md.convert(expected)
Esempio n. 5
0
def test_enhanced_titles():
    """
    If `attr_list` extension is registered, section titles are enhanced with full command paths.

    See: https://github.com/DataDog/mkdocs-click/issues/35
    """
    md = Markdown(extensions=["attr_list"])
    # Register our extension as a second step, so that we see `attr_list`.
    # This is what MkDocs does, so there's no hidden usage constraint here.
    md.registerExtensions([mkdocs_click.makeExtension()], {})

    source = dedent("""
        ::: mkdocs-click
            :module: tests.app.cli
            :command: cli
        """)

    assert md.convert(source) == md.convert(EXPECTED_ENHANCED)
Esempio n. 6
0
def test_depth():
    """
    The :depth: attribute increases the level of headers.
    """
    md = Markdown(extensions=[mkdocs_click.makeExtension()])

    source = dedent("""
        # CLI Reference

        ::: mkdocs-click
            :module: tests.app.cli
            :command: cli
            :depth: 1
        """)

    expected = f"# CLI Reference\n\n{EXPECTED.replace('# ', '## ')}"

    assert md.convert(source) == md.convert(expected)