def test_can_install_same_package_twice_if_aliased(config, owned_pkg, test_assets_dir): aliased_pkg = Package( Namespace( uri="ipfs://QmbeVyFLSuEUxiXKwSsEjef6icpdTdA4kGG9BcrJXKNKUW", alias="owned-alias", ), config.ipfs_backend, ) install_package(owned_pkg, config) install_package(aliased_pkg, config) assert (config.ethpm_dir / "owned").is_dir() assert check_dir_trees_equal( config.ethpm_dir / "owned", test_assets_dir / "owned" / "ipfs_uri" / ETHPM_PACKAGES_DIR / "owned", ) assert (config.ethpm_dir / "owned-alias").is_dir() assert check_dir_trees_equal( config.ethpm_dir / "owned-alias", test_assets_dir / "owned" # noqa: W503 / "ipfs_uri_alias" # noqa: W503 / ETHPM_PACKAGES_DIR # noqa: W503 / "owned-alias", # noqa: W503 )
def test_install_package(args, pkg_name, install_type, config, test_assets_dir): pkg = Package(args, config.ipfs_backend) install_package(pkg, config) expected_package = test_assets_dir / pkg_name / install_type / ETHPM_PACKAGES_DIR assert check_dir_trees_equal(config.ethpm_dir, expected_package)
def install_to_ethpm_lock(pkg: Package, ethpm_lock: Path) -> None: if ethpm_lock.is_file(): old_lock = json.loads(ethpm_lock.read_text()) else: old_lock = {} ethpm_lock.touch() new_pkg_data = pkg.generate_ethpm_lock() new_lock = assoc(old_lock, pkg.alias, new_pkg_data) ethpm_lock.write_text( f"{json.dumps(new_lock, sort_keys=True, indent=4)}\n")
def install_action(args: argparse.Namespace) -> None: validate_install_cli_args(args) config = Config(args) package = Package(args, config.ipfs_backend) install_package(package, config) cli_logger.info( "%s package sourced from %s installed to %s.", package.alias, args.uri, config.ethpm_dir, )
def write_build_deps_to_disk(pkg: Package, pkg_dir: Path, ipfs_backend: BaseIPFSBackend) -> None: if "build_dependencies" in pkg.manifest: child_ethpm_dir = pkg_dir / ETHPM_PACKAGES_DIR child_ethpm_dir.mkdir() for name, uri in pkg.manifest["build_dependencies"].items(): dep_pkg = Package(Namespace(uri=uri, alias=""), ipfs_backend) tmp_dep_dir = child_ethpm_dir / name tmp_dep_dir.mkdir() validate_parent_directory(pkg_dir, tmp_dep_dir) write_pkg_installation_files(dep_pkg, tmp_dep_dir, ipfs_backend)
def test_package_with_registry_uri_with_alias(owned_pkg_data, ipfs_backend): args = Namespace(uri=owned_pkg_data["registry_uri"], alias="owned-alias") package = Package(args, ipfs_backend) assert package.alias == "owned-alias" assert package.install_uri == owned_pkg_data["registry_uri"] assert package.manifest_uri == owned_pkg_data["ipfs_uri"] assert package.registry_address == owned_pkg_data["registry_address"] assert package.resolved_content_hash == owned_pkg_data["content_hash"] assert package.raw_manifest == owned_pkg_data["raw_manifest"] assert package.manifest == owned_pkg_data["manifest"]
def test_package(owned_pkg_data, ipfs_backend): args = Namespace(uri=owned_pkg_data["ipfs_uri"]) package = Package(args, ipfs_backend) assert package.alias == "owned" assert package.install_uri == owned_pkg_data["ipfs_uri"] assert package.manifest_uri == owned_pkg_data["ipfs_uri"] assert package.registry_address is None assert package.resolved_content_hash == owned_pkg_data["content_hash"] assert package.raw_manifest == owned_pkg_data["raw_manifest"] assert package.manifest == owned_pkg_data["manifest"]
def wallet_pkg(config): args = Namespace( uri="ipfs://QmRMSm4k37mr2T3A2MGxAj2eAHGR5veibVt1t9Leh5waV1") return Package(args, config.ipfs_backend)
def owned_pkg(config): args = Namespace( uri="ipfs://QmbeVyFLSuEUxiXKwSsEjef6icpdTdA4kGG9BcrJXKNKUW") return Package(args, config.ipfs_backend)