Пример #1
0
def test_vcx_deserialize_connection_fulfill_credential():
    try:
        Vcxdemo.init(VCXCONFIG_PATH)
    except VcxError as e:
        assert False

    frank = Vcxdemo(SOURCE_ID, details=DETAILS)
    frank.deserialize_connection('connection.dat')
    assert type(frank.connection) == Connection
    # Credential
    frank.create_credential(SCHEMA_SEQ_NUMBER, DETAILS[1],
                            'Planet Express Info')
    assert type(frank.credential) == IssuerCredential
    frank.update_credential_state()
    assert frank.state['credential'] == State.Initialized
    frank.issue_credential_offer()
    assert frank.state['credential'] == State.OfferSent
    frank.wait_for_credential_state(State.RequestReceived)
    assert frank.state['credential'] == State.RequestReceived
    # write credential out to credential2.dat
    try:
        with open('credential.dat', 'w') as out_file:
            json.dump(frank.serialize_credential(), out_file)
    except IOError as e:
        print('error writing to credential.dat: %s' % e)
Пример #2
0
def test_demo():
    random_enterprise_name = get_random_name()
    genesis_path = settings['genesis_path']
    enterprise_config = {
        'institution_name': random_enterprise_name,
        'institution_logo_url':
        'https://robohash.org/' + random_enterprise_name,
        'genesis_path': genesis_path,
        'wallet_name': settings['wallet_name'],
        'wallet_key': settings['wallet_key']
    }
    vcx_config_json = update_json_values(enterprise_config, config_dev)
    assert vcx_config_json['institution_name'] == random_enterprise_name
    write_json_to_file(vcx_config_json, 'utils/vcxconfig.json', sort_keys=True)

    schema_name = 'Club Membership'
    init_vcxdemo(VCXCONFIG_PATH)
    credential_name = 'Club Membership'
    schema_source_id = random_enterprise_name
    credential_def_source_id = random_enterprise_name
    connection_source_id = random_enterprise_name
    assert len(Vcxdemo.schemas) == 0
    util_create_schema(schema_source_id, schema_name)
    write_json_to_file(Vcxdemo.serialize_schema(0), 'schema.dat')

    # Write Connection to file
    assert len(Vcxdemo.schemas) == 1
    s0 = Vcxdemo.get_schema_attr_list(0)

    # Create Credential Def on Ledger (and wallet)
    schema_sequence_number = Vcxdemo.get_schema_sequence_number(0)
    Vcxdemo.create_credential_def(credential_def_source_id, credential_name,
                                  schema_sequence_number)
    assert len(Vcxdemo.credential_defs) > 0
    assert Vcxdemo.credential_defs[credential_name]

    customer1 = Vcxdemo(connection_source_id)

    # Connection
    assert customer1.state['connection'] == State.Undefined
    customer1.connect()
    assert type(customer1.connection) == Connection
    assert customer1.state['connection'] == State.Accepted
    # Write Connection to file
    write_json_to_file(customer1.serialize_connection(), 'connection.dat')

    # Credential
    customer1.create_credential(Vcxdemo.get_schema_sequence_number(0),
                                DETAILS[0], credential_name)
    assert type(customer1.credential) == IssuerCredential
    customer1.update_credential_state()
    assert customer1.state['credential'] == State.Initialized
    # Write Credential to file
    write_json_to_file(customer1.serialize_credential(), 'credential.dat')
    customer1.update_credential_state()
    assert customer1.state['credential'] == State.Initialized
    customer1.issue_credential_offer()
    customer1.update_credential_state()
    assert customer1.state['credential'] == State.OfferSent
    customer1.wait_for_credential_state(State.RequestReceived)
    print("About to send credential offer...")
    # time.sleep(5)
    customer1.send_issuer_credential()
    print("Waiting for credential state to become accepted")
    customer1.wait_for_credential_state(State.Accepted)
    print("Credential State became accepted")
    time.sleep(5)
    # Proof
    proof_id = '222'
    proof_attr = Vcxdemo.format_proof_attrs(
        Vcxdemo.did, Vcxdemo.get_schema_sequence_number(0),
        Vcxdemo.get_schema_attr_list(0)['attr_names'])
    source_id = 'Club Membership'

    request_proof(customer1, source_id, proof_attr, proof_id)