Exemple #1
0
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
    )
Exemple #2
0
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)
Exemple #3
0
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")
Exemple #4
0
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,
    )
Exemple #5
0
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)
Exemple #6
0
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"]
Exemple #7
0
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"]
Exemple #8
0
def wallet_pkg(config):
    args = Namespace(
        uri="ipfs://QmRMSm4k37mr2T3A2MGxAj2eAHGR5veibVt1t9Leh5waV1")
    return Package(args, config.ipfs_backend)
Exemple #9
0
def owned_pkg(config):
    args = Namespace(
        uri="ipfs://QmbeVyFLSuEUxiXKwSsEjef6icpdTdA4kGG9BcrJXKNKUW")
    return Package(args, config.ipfs_backend)