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']
        })
Exemple #2
0
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'])
Exemple #3
0
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
    }
Exemple #4
0
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)