def test_get_provider_developer_mode_env(monkeypatch, mock_is_developer_mode): mock_is_developer_mode.return_value = True monkeypatch.setenv("CHARMCRAFT_PROVIDER", "lxd") assert isinstance(get_provider(), LXDProvider) monkeypatch.setenv("CHARMCRAFT_PROVIDER", "multipass") assert isinstance(get_provider(), MultipassProvider)
def test_get_provider_snap_config(mock_is_snap, mock_snap_config): mock_is_snap.return_value = True mock_snap_config.return_value = CharmcraftSnapConfiguration(provider="lxd") assert isinstance(get_provider(), LXDProvider) mock_snap_config.return_value = CharmcraftSnapConfiguration(provider="multipass") assert isinstance(get_provider(), MultipassProvider)
def __init__(self, args, config): self.charmdir = args["from"] self.entrypoint = args["entrypoint"] self.requirement_paths = args["requirement"] self.force_packing = args["force"] self.debug = args["debug"] self.shell = args["shell"] self.shell_after = args["shell_after"] self.buildpath = self.charmdir / BUILD_DIRNAME self.config = config self.metadata = parse_metadata_yaml(self.charmdir) if self.config.parts: self._parts = self.config.parts.copy() else: # "parts" not declared, create an implicit "charm" part self._parts = {"charm": {"plugin": "charm"}} # a part named "charm" using plugin "charm" is special and has # predefined values set automatically. charm_part = self._parts.get("charm") if charm_part and charm_part.get("plugin") == "charm": self._special_charm_part = charm_part else: self._special_charm_part = None self.provider = get_provider()
def run(self, parsed_args): """Run the command.""" project_path = self.config.project.dirpath metadata = parse_metadata_yaml(project_path) emit.progress(f"Cleaning project {metadata.name!r}.") provider = get_provider() provider.clean_project_environments(charm_name=metadata.name, project_path=project_path) emit.message(f"Cleaned project {metadata.name!r}.")
def test_get_provider_default(): if sys.platform == "linux": assert isinstance(get_provider(), LXDProvider) else: assert isinstance(get_provider(), MultipassProvider)