예제 #1
0
def test_send_same_nyms_only_first_gets_written(be, do, poolNodesStarted,
                                                newStewardCli):

    be(newStewardCli)

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    _, anotherAbbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    # request 1
    newStewardCli.enterCmd("send NYM {dest}={nym} verkey={verkey}".format(
        dest=TARGET_NYM, nym=halfKeyIdentifier, verkey=abbrevVerkey))

    parameters = {'dest': halfKeyIdentifier, 'verkey': anotherAbbrevVerkey}

    # "enterCmd" does not immediately send to server, second request with same NYM
    # and different verkey should not get written to ledger.

    # request 2
    do('send NYM dest={dest} verkey={verkey}',
       mapper=parameters,
       expect=NYM_ADDED,
       within=10)

    parameters = {'dest': halfKeyIdentifier, 'verkey': abbrevVerkey}

    # check that second request didn't write to ledger and first verkey is
    # written
    do('send GET_NYM dest={dest}',
       mapper=parameters,
       expect=CURRENT_VERKEY_FOR_NYM,
       within=2)
예제 #2
0
def testSend2NymsSucceedsWhenBatched(
        be, do, poolNodesStarted, newStewardCli):

    be(newStewardCli)

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    _, anotherAbbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    newStewardCli.enterCmd("send NYM {dest}={nym} verkey={verkey}".
            format(dest=TARGET_NYM, nym=halfKeyIdentifier, verkey=abbrevVerkey))

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': anotherAbbrevVerkey
    }

    do('send NYM dest={dest} verkey={verkey}',
       mapper=parameters, expect=NYM_ADDED, within=10)

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey
    }

    do('send GET_NYM dest={dest}',
        mapper=parameters, expect=CURRENT_VERKEY_FOR_NYM, within=2)
예제 #3
0
def testSendNymSucceedsForOmittedRole(be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {'dest': halfKeyIdentifier, 'verkey': abbrevVerkey}

    be(trusteeCli)
    do('send NYM dest={dest} verkey={verkey}',
       mapper=parameters,
       expect=NYM_ADDED,
       within=2)
def testSendNymFailsIfRoleIsUnknown(be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': 'SUPERVISOR'
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters, expect=ERROR, within=2)
def testSendNymSucceedsForOmittedRole(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey
    }

    be(trusteeCli)
    do('send NYM dest={dest} verkey={verkey}',
       mapper=parameters, expect=NYM_ADDED, within=2)
예제 #6
0
def testSendGetNymSucceedsForExistingUuidDest(be, do, poolNodesStarted,
                                              trusteeCli):

    uuidIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    addNym(be, do, trusteeCli, idr=uuidIdentifier, verkey=abbrevVerkey)

    parameters = {'dest': uuidIdentifier, 'verkey': abbrevVerkey}

    be(trusteeCli)
    do('send GET_NYM dest={dest}',
       mapper=parameters,
       expect=CURRENT_VERKEY_FOR_NYM,
       within=2)
예제 #7
0
def testSendGetNymHasInvalidSyntaxIfUnknownParameterIsPassed(
        be, do, poolNodesStarted, trusteeCli):

    uuidIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    addNym(be, do, trusteeCli, idr=uuidIdentifier, verkey=abbrevVerkey)

    parameters = {'dest': uuidIdentifier, 'extra': 42}

    be(trusteeCli)
    do('send GET_NYM dest={dest} extra={extra}',
       mapper=parameters,
       expect=INVALID_SYNTAX,
       within=2)
def testSendGetNymSucceedsForExistingUuidDest(
        be, do, poolNodesStarted, trusteeCli):

    uuidIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    addNym(be, do, trusteeCli, idr=uuidIdentifier, verkey=abbrevVerkey)

    parameters = {
        'dest': uuidIdentifier,
        'verkey': abbrevVerkey
    }

    be(trusteeCli)
    do('send GET_NYM dest={dest}',
       mapper=parameters, expect=CURRENT_VERKEY_FOR_NYM, within=2)
def testSendNymHasInvalidSyntaxIfParametersOrderIsWrong(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM verkey={verkey} role={role} dest={dest}',
       mapper=parameters, expect=INVALID_SYNTAX, within=2)
def testSendNymFailsIfRoleIsSpecifiedUsingNumericCode(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': Roles.TRUST_ANCHOR.value
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters, expect=ERROR, within=2)
def testSendNymSucceedsForHalfKeyIdentifierAndAbbrevVerkey(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters, expect=NYM_ADDED, within=2)
def testSendNymFailsIfAbbrevVerkeyDoesNotContainTilde(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey.replace('~', ''),
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters, expect=ERROR, within=2)
def testSendNymFailsIfAbbrevVerkeyContainsNonBase58Characters(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey[:6] + '/' + abbrevVerkey[7:],
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters, expect=ERROR, within=2)
def testSendGetNymHasInvalidSyntaxIfUnknownParameterIsPassed(
        be, do, poolNodesStarted, trusteeCli):

    uuidIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    addNym(be, do, trusteeCli, idr=uuidIdentifier, verkey=abbrevVerkey)

    parameters = {
        'dest': uuidIdentifier,
        'extra': 42
    }

    be(trusteeCli)
    do('send GET_NYM dest={dest} extra={extra}',
       mapper=parameters, expect=INVALID_SYNTAX, within=2)
예제 #15
0
def test_send_different_nyms_succeeds_when_batched(be, do, poolNodesStarted,
                                                   newStewardCli):

    be(newStewardCli)

    idr_1, verkey_1 = createHalfKeyIdentifierAndAbbrevVerkey()
    idr_2, verkey_2 = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {'dest': idr_1, 'verkey': verkey_1}

    # request 1
    newStewardCli.enterCmd("send NYM dest={dest} verkey={verkey}".format(
        dest=idr_1, verkey=verkey_1))

    parameters = {'dest': idr_2, 'verkey': verkey_2}

    # two different nyms, batched, both should be written
    # request 2
    do('send NYM dest={dest} verkey={verkey}',
       mapper=parameters,
       expect=NYM_ADDED,
       within=10)

    parameters = {'dest': idr_1, 'verkey': verkey_1}

    do('send GET_NYM dest={dest}',
       mapper=parameters,
       expect=CURRENT_VERKEY_FOR_NYM,
       within=2)

    parameters = {'dest': idr_2, 'verkey': verkey_2}

    do('send GET_NYM dest={dest}',
       mapper=parameters,
       expect=CURRENT_VERKEY_FOR_NYM,
       within=2)
예제 #16
0
def testSendNymFailsIfRoleIsUnknown(be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': 'SUPERVISOR'
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters,
       expect=ERROR,
       within=2)
def testSendGetNymFailsIfDestIsPassedInHexFormat(
        be, do, poolNodesStarted, trusteeCli):

    uuidIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    addNym(be, do, trusteeCli, idr=uuidIdentifier, verkey=abbrevVerkey)

    hexEncodedUuidIdentifier = hexlify(friendlyToRaw(uuidIdentifier)).decode()

    parameters = {
        'dest': hexEncodedUuidIdentifier
    }

    be(trusteeCli)
    do('send GET_NYM dest={dest}',
       mapper=parameters, expect="should not contain the following chars", within=2)
예제 #18
0
def testSendGetNymFailsIfDestIsPassedInHexFormat(be, do, poolNodesStarted,
                                                 trusteeCli):

    uuidIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
    addNym(be, do, trusteeCli, idr=uuidIdentifier, verkey=abbrevVerkey)

    hexEncodedUuidIdentifier = hexlify(friendlyToRaw(uuidIdentifier)).decode()

    parameters = {'dest': hexEncodedUuidIdentifier}

    be(trusteeCli)
    do('send GET_NYM dest={dest}',
       mapper=parameters,
       expect="should not contain the following chars",
       within=2)
예제 #19
0
def testSendNymFailsIfAbbrevVerkeyContainsNonBase58Characters(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey[:6] + '/' + abbrevVerkey[7:],
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters,
       expect=ERROR,
       within=2)
예제 #20
0
def testSendNymFailsIfAbbrevVerkeyDoesNotContainTilde(be, do, poolNodesStarted,
                                                      trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey.replace('~', ''),
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters,
       expect=ERROR,
       within=2)
예제 #21
0
def testSendNymHasInvalidSyntaxIfParametersOrderIsWrong(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM verkey={verkey} role={role} dest={dest}',
       mapper=parameters,
       expect=INVALID_SYNTAX,
       within=2)
예제 #22
0
def testSendNymFailsIfRoleIsSpecifiedUsingNumericCode(be, do, poolNodesStarted,
                                                      trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': Roles.TRUST_ANCHOR.value
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters,
       expect=ERROR,
       within=2)
예제 #23
0
def testSendNymSucceedsForHalfKeyIdentifierAndAbbrevVerkey(
        be, do, poolNodesStarted, trusteeCli):

    halfKeyIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()

    parameters = {
        'dest': halfKeyIdentifier,
        'verkey': abbrevVerkey,
        'role': Roles.TRUST_ANCHOR.name
    }

    be(trusteeCli)
    do('send NYM dest={dest} role={role} verkey={verkey}',
       mapper=parameters,
       expect=NYM_ADDED,
       within=2)
def testSendAttribSucceedsForExistingDidDest(be, do, poolNodesStarted,
                                             localTrusteeCli):

    seed = randomSeed()
    idr, verkey = createHalfKeyIdentifierAndAbbrevVerkey(seed=seed)

    userCli = localTrusteeCli
    addNym(be, do, userCli, idr=idr, verkey=verkey)
    newKey(be, do, userCli, seed=seed.decode())

    sendAttribParameters = {'dest': idr, 'raw': json.dumps({'name': 'Alice'})}

    be(userCli)
    do('send ATTRIB dest={dest} raw={raw}',
       mapper=sendAttribParameters,
       expect=ATTRIBUTE_ADDED,
       within=2)
예제 #25
0
def testSendGetNymFailsIfDestIsPassedInHexFormat(be, do, poolNodesStarted,
                                                 trusteeCli):

    # Sometimes hex representation can use only base58 compatible characters
    while True:
        uuidIdentifier, abbrevVerkey = createHalfKeyIdentifierAndAbbrevVerkey()
        hexEncodedUuidIdentifier = hexlify(
            friendlyToRaw(uuidIdentifier)).decode()
        if not check_str_is_base58_compatible(hexEncodedUuidIdentifier):
            break

    addNym(be, do, trusteeCli, idr=uuidIdentifier, verkey=abbrevVerkey)

    parameters = {'dest': hexEncodedUuidIdentifier}

    be(trusteeCli)
    do('send GET_NYM dest={dest}',
       mapper=parameters,
       expect="should not contain the following chars",
       within=2)