def test_list_skip_duplicates(distros: List[Distribution]): distros.return_value = [ InMemoryDistribution(PGK_META), InMemoryDistribution(PGK_META), ] extensions = list_extensions() assert len(extensions) == 1
def test_list_excludes_ctklib(distros: List[Distribution]): metadata = """Name: chaostoolkit-lib""" distros.return_value = [ InMemoryDistribution(metadata) ] extensions = list_extensions() assert len(extensions) == 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"
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())
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"
def test_list_none_when_none_installed(distros: List[Distribution]): distros.return_value = [] extensions = list_extensions() assert extensions == []
def test_list_none_when_none_installed(environment: Environment): extensions = list_extensions() assert extensions == []