def test_resolve_did(publisher_instance, metadata): # prep ddo # metadata = Metadata.get_example() publisher = publisher_instance.main_account # happy path original_ddo = publisher_instance.assets.create( metadata, publisher, activity_id=publisher.address, attributes='test123') did = original_ddo.did ddo = publisher_instance.assets.resolve(did).as_dictionary() original = original_ddo.as_dictionary() assert ddo['publicKey'] == original['publicKey'] assert ddo['authentication'] == original['authentication'] assert ddo['service'] assert original['service'] metadata = ddo['service'][0]['attributes'] if 'datePublished' in metadata['main']: metadata['main'].pop('datePublished') assert ddo['service'][0]['attributes']['main']['name'] == \ original['service'][0]['attributes']['main']['name'] assert ddo['service'][1] == original['service'][1] # Can't resolve unregistered asset unregistered_did = DID.encoded_did({"0": "0x00112233445566"}) with pytest.raises(DIDNotFound): publisher_instance.assets.resolve(unregistered_did) # Raise error on bad did invalid_did = "did:nv:0123456789" with pytest.raises(DIDNotFound): publisher_instance.assets.resolve(invalid_did) publisher_instance.assets.retire(did)
def asset1(): asset = _get_asset( 'https://raw.githubusercontent.com/nevermined-io/docs/master/docs/architecture/specs' '/examples/access/v0.1/ddo1.json') asset._did = DID.encoded_did(asset.proof['checksum']) yield asset metadata_provider.retire_all_assets()
def test_create_did(): proof = { "type": "DDOIntegritySignature", "created": "2016-02-08T16:02:20Z", "creator": "0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e", "signatureValue": "0xc9eeb2b8106e…6abfdc5d1192641b", "checksum": { "0": "0x52b5c93b82dd9e7ecc3d9fdf4755f7f69a54484941897dc517b4adfe3bbc3377", "1": "0x999999952b5c93b82dd9e7ecc3d9fdf4755f7f69a54484941897dc517b4adfe3" } } did = DID.encoded_did(proof['checksum']) assert did == 'did:nv:138fccf336883ae6312c9b8b375745a90be369454080e90985fb3e314ab0df25'
def test_create_ddo(metadata): pub_acc = get_publisher_account() ddo = DDO() ddo.add_service(ServiceTypes.METADATA, 'http://mymetadata.com', values=dict({"attributes": metadata}), index='0') checksums = dict() for service in ddo.services: checksums[str(service.index)] = checksum(service.main) ddo.add_proof(checksums, pub_acc) did = ddo.assign_did(DID.encoded_did(ddo.proof['checksum'])) ddo.proof['signatureValue'] = Keeper.sign_hash(did_to_id_bytes(did), pub_acc) ddo.add_public_key(did, pub_acc.address) ddo.add_authentication(did, PUBLIC_KEY_TYPE_RSA)
def asset2(): asset = _get_asset( 'https://raw.githubusercontent.com/nevermined-io/docs/master/docs/architecture/specs' '/examples/access/v0.1/ddo2-update.json') asset._did = DID.encoded_did(asset.proof['checksum']) return asset