Exemplo n.º 1
0
def test_list_skip_duplicates(distros: List[Distribution]):
    distros.return_value = [
        InMemoryDistribution(PGK_META),
        InMemoryDistribution(PGK_META),
    ]

    extensions = list_extensions()
    assert len(extensions) == 1
Exemplo n.º 2
0
def test_list_excludes_ctklib(distros: List[Distribution]):
    metadata = """Name: chaostoolkit-lib"""
    distros.return_value = [
        InMemoryDistribution(metadata)
    ]

    extensions = list_extensions()
    assert len(extensions) == 0
Exemplo n.º 3
0
def test_list_one_installed(distros: List[Distribution]):
    distros.return_value = [InMemoryDistribution(PGK_META)]

    extensions = list_extensions()
    assert len(extensions) == 1

    ext = extensions[0]
    assert ext.name == "chaostoolkit-some-stuff"
    assert ext.version == "0.1.0"
Exemplo n.º 4
0
def info(ctx: click.Context, target: str):
    """Display information about the Chaos Toolkit environment.

    Available targets are:

    * core: display the information about your version of the Chaos Toolkit

    * extensions: display the list of installed extensions and plugins

    * settings: display your current full settings
    """
    if target not in ["core", "settings", "extensions"]:
        raise click.BadArgumentUsage("Invalid target")

    if target == "core":
        fmt = "{:<20}{:<10}"
        click.secho(
            fmt.format("NAME", "VERSION"),
            fg='bright_blue')
        click.echo(fmt.format("CLI", __version__))
        click.echo(fmt.format("Core library", chaoslib_version))
    elif target == "extensions":
        fmt = "{:<40}{:<10}{:30}{:50}"
        click.secho(
            fmt.format("NAME", "VERSION", "LICENSE", "DESCRIPTION"),
            fg='bright_blue')
        extensions = list_extensions()
        for extension in extensions:
            summary = extension.summary.replace(
                "Chaos Toolkit Extension for ", "")[:50]
            click.echo(
                fmt.format(
                    extension.name, extension.version, extension.license,
                    summary))
    elif target == "settings":
        settings_path = ctx.obj["settings_path"]
        if not os.path.isfile(settings_path):
            click.echo("No settings file found at {}".format(settings_path))
            return

        with open(settings_path) as f:
            click.echo(f.read())
Exemplo n.º 5
0
def test_list_one_installed(environment: Environment):
    env = Environment(search_path=[])
    environment.return_value = env
    metadata = """Metadata-Version: 2.1
Name: chaostoolkit-some-stuff
Version: 0.1.0
Summary: Chaos Toolkit some package
Home-page: http://chaostoolkit.org
Author: chaostoolkit Team
Author-email: [email protected]
License: Apache License 2.0
"""

    env.add(
        Distribution(project_name="chaostoolkit-some-stuff",
                     version="0.1.0",
                     metadata=InMemoryMetadata({"PKG-INFO": metadata})))
    extensions = list_extensions()
    assert len(extensions) == 1

    ext = extensions[0]
    assert ext.name == "chaostoolkit-some-stuff"
    assert ext.version == "0.1.0"
Exemplo n.º 6
0
def test_list_none_when_none_installed(distros: List[Distribution]):
    distros.return_value = []
    extensions = list_extensions()
    assert extensions == []
Exemplo n.º 7
0
def test_list_none_when_none_installed(environment: Environment):
    extensions = list_extensions()
    assert extensions == []