def full_doc(doc_keys, doc_did, doc_proof, doc_controller): return RegisterDocument( did=doc_did, purpose=DIDType.TWIN, proof=doc_proof, revoked=True, metadata=Metadata.build('a label', 'a comment', 'http://a/url'), creator='did:iotics:iotHHHHKpPGWyEC4FFo4d6oyzVVk6MEEEEgY', spec_version=SUPPORTED_VERSIONS[0], update_time=get_unix_time_ms(), controller=doc_controller, public_keys={ doc_keys['#pub_key1'].name: doc_keys['#pub_key1'], doc_keys['#pub_key2'].name: doc_keys['#pub_key2'] }, auth_keys={ doc_keys['#auth_key1'].name: doc_keys['#auth_key1'], doc_keys['#auth_key2'].name: doc_keys['#auth_key2'] }, control_delegation_proof={ doc_keys['#deleg_control_key1'].name: doc_keys['#deleg_control_key1'], doc_keys['#deleg_control_key2'].name: doc_keys['#deleg_control_key2'] }, auth_delegation_proof={ doc_keys['#deleg_auth_key1'].name: doc_keys['#deleg_auth_key1'], doc_keys['#deleg_auth_key2'].name: doc_keys['#deleg_auth_key2'] })
def test_can_build_a_register_doc_with_full_data(doc_keys, doc_did, doc_proof, doc_controller): now_before_create = get_unix_time_ms() metadata = Metadata.build('a label', 'a comment', 'http://a/url') spec_version = SUPPORTED_VERSIONS[0] creator = 'did:iotics:iotHHHHKpPGWyEC4FFo4d6oyzVVk6MEEEEgY' new_doc = RegisterDocumentBuilder() \ .add_public_key(doc_keys['#pub_key1'].name, doc_keys['#pub_key1'].base58, doc_keys['#pub_key1'].revoked) \ .add_public_key_obj(doc_keys['#pub_key2']) \ .add_authentication_key(doc_keys['#auth_key1'].name, doc_keys['#auth_key1'].base58, doc_keys['#auth_key1'].revoked) \ .add_authentication_key_obj(doc_keys['#auth_key2']) \ .add_control_delegation(doc_keys['#deleg_control_key1'].name, doc_keys['#deleg_control_key1'].controller, doc_keys['#deleg_control_key1'].proof, doc_keys['#deleg_control_key1'].revoked) \ .add_control_delegation_obj(doc_keys['#deleg_control_key2']) \ .add_authentication_delegation(doc_keys['#deleg_auth_key1'].name, doc_keys['#deleg_auth_key1'].controller, doc_keys['#deleg_auth_key1'].proof, doc_keys['#deleg_auth_key1'].revoked) \ .add_authentication_delegation_obj(doc_keys['#deleg_auth_key2']) \ .build(did=doc_did, purpose=DIDType.TWIN, proof=doc_proof, revoked=True, metadata=metadata, creator=creator, spec_version=spec_version, controller=doc_controller) assert new_doc.did == doc_did assert new_doc.proof == doc_proof assert new_doc.purpose == DIDType.TWIN assert new_doc.revoked assert new_doc.spec_version == spec_version assert new_doc.metadata == metadata assert new_doc.creator == creator assert now_before_create <= new_doc.update_time <= get_unix_time_ms() assert new_doc.controller == doc_controller assert len(new_doc.public_keys) == 2 compare_key(doc_keys['#pub_key1'], new_doc.public_keys['#pub_key1']) compare_key(doc_keys['#pub_key2'], new_doc.public_keys['#pub_key2']) assert len(new_doc.auth_keys) == 2 compare_key(doc_keys['#auth_key1'], new_doc.auth_keys['#auth_key1']) compare_key(doc_keys['#auth_key2'], new_doc.auth_keys['#auth_key2']) assert len(new_doc.control_delegation_proof) == 2 compare_delegation(doc_keys['#deleg_control_key1'], new_doc.control_delegation_proof['#deleg_control_key1']) compare_delegation(doc_keys['#deleg_control_key2'], new_doc.control_delegation_proof['#deleg_control_key2']) assert len(new_doc.public_keys) == 2 compare_delegation(doc_keys['#deleg_auth_key1'], new_doc.auth_delegation_proof['#deleg_auth_key1']) compare_delegation(doc_keys['#deleg_auth_key2'], new_doc.auth_delegation_proof['#deleg_auth_key2'])
def test_can_build_doc_metadata(): label = 'a label' comment = 'a comment' url = 'http://an/url' metadata = Metadata.build(label, comment, url) assert metadata.label == label assert metadata.comment == comment assert metadata.url == url assert metadata.to_dict() == { 'label': label, 'comment': comment, 'url': url }
def test_build_doc_metadata_raises_validaion_error_in_invalid_data( invalid_input): params = dict(label='a label', comment='a comment', url='http://an/url') params.update(invalid_input) with pytest.raises(IdentityValidationError): Metadata.build(**params)