def test_source_paths_with_interface():
    original = TEST_MANIFEST.copy()
    original["sources"] = {
        "./contracts/foo.sol": "ipfs://testipfs-simple-source",
        "./interfaces/bar.sol": "ipfs://testipfs-simple-source",
    }

    processed = ethpm.process_manifest(original)
    assert sorted(
        processed["sources"]) == ["contracts/foo.sol", "interfaces/bar.sol"]

    original["sources"] = {
        "contracts/foo.sol": "ipfs://testipfs-simple-source",
        "interfaces/bar.sol": "ipfs://testipfs-simple-source",
    }
    assert processed == ethpm.process_manifest(original)
def test_source_paths():
    original = TEST_MANIFEST.copy()
    original["sources"] = {"./simple.sol": "ipfs://testipfs-simple-source"}

    processed = ethpm.process_manifest(original)
    assert list(processed["sources"]) == ["contracts/simple.sol"]

    original["sources"] = {
        "./contracts/simple.sol": "ipfs://testipfs-simple-source"
    }
    assert processed == ethpm.process_manifest(original)

    original["sources"] = {"simple.sol": "ipfs://testipfs-simple-source"}
    assert processed == ethpm.process_manifest(original)

    original["sources"] = {
        "contracts/simple.sol": "ipfs://testipfs-simple-source"
    }
    assert processed == ethpm.process_manifest(original)
示例#3
0
def test_pin_and_get(dep_project):
    package_config = ETHPM_CONFIG.copy()
    package_config["settings"]["include_dependencies"] = False
    manifest, uri = ethpm.create_manifest(dep_project._path, package_config, True)

    process = ethpm.process_manifest(manifest, uri)
    get = ethpm.get_manifest(uri)

    for key in list(process) + list(get):
        if type(process[key]) is str:
            assert process[key] == get[key]
            continue
        for k in list(process[key]) + list(get[key]):
            assert process[key][k] == get[key][k]
def test_invalid_manifest():
    with pytest.raises(InvalidManifest):
        ethpm.process_manifest({})
    with pytest.raises(InvalidManifest):
        ethpm.process_manifest({"manifest_version": "1"})