def test_deserialize_x_multiple_material_properties(): with pytest.raises(ValueError): VerificationMethod.deserialize( { "id": "did:example:123#vm-3", "controller": "did:example:123", "type": "EcdsaSecp256k1RecoveryMethod2020", "blockchainAccountId": ( "0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb@eip155:1" ), "publicKeyBase58": "abc123", } )
def test_validator_allow_missing_controller(): vmethod = VerificationMethod.deserialize( { "id": "did:example:123#keys-1", "type": "Ed25519Signature2018", "publicKeyBase58": "12345", }, ) assert vmethod.controller == "did:example:123" with pytest.raises(ValueError): vmethod = VerificationMethod.deserialize( { "type": "Ed25519Signature2018", "publicKeyBase58": "12345", }, )
def test_infer_material(): vmethod_raw = { "id": "did:example:123#vm-3", "controller": "did:example:123", "type": "EcdsaSecp256k1RecoveryMethod2020", "blockchainAccountId": "0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb@eip155:1", } vmethod = VerificationMethod.deserialize(vmethod_raw) assert vmethod.material == vmethod_raw["blockchainAccountId"]
def test_validator_allow_controller_list(): vmethod = VerificationMethod.deserialize( { "id": "did:example:123#keys-1", "type": "Ed25519Signature2018", "controller": ["did:example:123"], "publicKeyBase58": "12345", }, ) assert vmethod.controller == "did:example:123"
def test_unknown_material(): vmethod = VerificationMethod.deserialize( { "id": "did:example:123#vm-3", "controller": "did:example:123", "type": "EcdsaSecp256k1RecoveryMethod2020", "unknownMaterial": "0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb@eip155:1", } ) with pytest.raises(VerificationMaterialUnknown): vmethod.material
def test_deserialized_member_types(): vmethod = VerificationMethod.deserialize(VMETHOD0) assert isinstance(vmethod.id, DIDUrl) assert isinstance(vmethod.controller, DID)
def test_serialization_x(invalid_vmethod_raw): with pytest.raises(ValueError): VerificationMethod.deserialize(invalid_vmethod_raw)
def test_serialization(vmethod_raw): vmethod = VerificationMethod.deserialize(vmethod_raw) assert vmethod.id == DIDUrl.parse(vmethod_raw["id"]) assert vmethod.type == vmethod_raw["type"] assert vmethod.controller == DID(vmethod_raw["controller"]) assert vmethod.serialize() == vmethod_raw