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)
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)
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)
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 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)
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)
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)
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)
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 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 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 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)
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)