def test_client_cant_send_schema(looper, txnPoolNodeSet, sdk_wallet_client, sdk_wallet_trust_anchor, sdk_pool_handle): # Trust anchor can create schema in any case _, identifier = sdk_wallet_trust_anchor _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "another_name", "2.0", json.dumps(["first", "last"]))) request = looper.loop.run_until_complete( build_schema_request(identifier, schema_json)) sdk_get_and_check_replies(looper, [ sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_trust_anchor, request) ]) # Client cant create schema if ANYONE_CAN_WRITE flag set to True _, identifier = sdk_wallet_client _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "another_name", "2.0", json.dumps(["first", "last"]))) request = looper.loop.run_until_complete( build_schema_request(identifier, schema_json)) sdk_get_bad_response( looper, [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request)], RequestRejectedException, 'None role cannot add schema')
def test_client_can_send_schema(looper, txnPoolNodeSet, sdk_wallet_client, sdk_wallet_trust_anchor, sdk_pool_handle, tconf): # Trust anchor can create schema in any case _, identifier = sdk_wallet_trust_anchor _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"]))) request = looper.loop.run_until_complete( build_schema_request(identifier, schema_json)) sdk_get_and_check_replies(looper, [ sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_trust_anchor, request) ]) # Client can create schema if WRITES_REQUIRE_TRUST_ANCHOR flag set to False _, identifier = sdk_wallet_client _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"]))) request = looper.loop.run_until_complete( build_schema_request(identifier, schema_json)) sdk_get_and_check_replies( looper, [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request)])
def sdk_write_schema(looper, sdk_pool_handle, sdk_wallet_client, multi_attribute=[], name="", version=""): _, identifier = sdk_wallet_client if multi_attribute: _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, name, version, json.dumps(multi_attribute))) else: _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"]))) request = looper.loop.run_until_complete(build_schema_request(identifier, schema_json)) return schema_json, \ sdk_get_reply(looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request))[1]
def sdk_build_schema(self, identifier=None, sdk_wallet=None): sdk_wallet = sdk_wallet or self._wallet_steward identifier = identifier or sdk_wallet[1] _, schema_json = self._looper.loop.run_until_complete( issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"]))) request = self._looper.loop.run_until_complete(build_schema_request(identifier, schema_json)) return request
def test_send_claim_def_schema_and_claim_def_in_one_batch( looper, tconf, sdk_pool_handle, nodeSet, sdk_wallet_trustee): with max_3pc_batch_limits(tconf, size=2) as tconf: initial_seq_no = nodeSet[0].domainLedger.size wallet_handle, identifier = sdk_wallet_trustee # send SCHEMA _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "name2", "2.0", json.dumps(["first", "last"]))) schema_req_json = looper.loop.run_until_complete( build_schema_request(identifier, schema_json)) schema_req = sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_trustee, schema_req_json) # send CLAIM_DEF _, claim_def_json = looper.loop.run_until_complete( issuer_create_and_store_credential_def( wallet_handle, identifier, schema_json, "some_tag", "CL", json.dumps({"support_revocation": True}))) claim_def_req_json = looper.loop.run_until_complete( build_cred_def_request(identifier, claim_def_json)) claim_def_req_json = modify_field(claim_def_req_json, initial_seq_no + 1, OPERATION, REF) claim_def_req = sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_trustee, claim_def_req_json) # check both are written sdk_get_and_check_replies(looper, [schema_req, claim_def_req])
def test_client_cant_send_schema(looper, txnPoolNodeSet, sdk_wallet_client, sdk_wallet_endorser, sdk_pool_handle): # Endorser can create schema _, identifier = sdk_wallet_endorser _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "another_name", "2.0", json.dumps(["first", "last"]))) request = looper.loop.run_until_complete(build_schema_request(identifier, schema_json)) sdk_get_and_check_replies(looper, [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_endorser, request)]) # Client cant create schema _, identifier = sdk_wallet_client _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "another_name", "2.0", json.dumps(["first", "last"]))) request = looper.loop.run_until_complete(build_schema_request(identifier, schema_json)) sdk_get_bad_response(looper, [sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_client, request)], RequestRejectedException, 'Rule for this action is')
def sdk_build_schema_request(looper, sdk_wallet_client, attributes=[], name="", version=""): _, identifier = sdk_wallet_client _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, name, version, json.dumps(attributes))) return looper.loop.run_until_complete( build_schema_request(identifier, schema_json))
def req(request, looper, sdk_pool_handle, sdk_wallet_steward): wallet_handle, identifier = sdk_wallet_steward if request.param == "ATTRIB": raw = json.dumps({'answer': 42}) request_json = looper.loop.run_until_complete( build_attrib_request(identifier, identifier, raw=raw, xhash=None, enc=None)) elif request.param == "SCHEMA": _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, "name", "1.0", json.dumps(["first", "last"]))) request_json = looper.loop.run_until_complete( build_schema_request(identifier, schema_json)) elif request.param == "RS_SCHEMA": rs_schema = {'@id': "fakeId234e", '@type': "0od"} request_json = build_rs_schema_request(identifier, rs_schema, "ISO18023_Drivers_License", "1.1") elif request.param == "CLAIM_DEF": schema_json, _ = sdk_write_schema(looper, sdk_pool_handle, sdk_wallet_steward) schema_id = json.loads(schema_json)['id'] request = looper.loop.run_until_complete( build_get_schema_request(identifier, schema_id)) reply = sdk_get_reply( looper, sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward, request))[1] _, schema_json = looper.loop.run_until_complete( parse_get_schema_response(json.dumps(reply))) _, definition_json = looper.loop.run_until_complete( issuer_create_and_store_credential_def( wallet_handle, identifier, schema_json, "some_tag", "CL", json.dumps({"support_revocation": True}))) request_json = looper.loop.run_until_complete( build_cred_def_request(identifier, definition_json)) elif request.param == "NYM": idr, verkey = createHalfKeyIdentifierAndAbbrevVerkey() request_json = looper.loop.run_until_complete( build_nym_request(identifier, idr, verkey, None, None)) req_signed = looper.loop.run_until_complete( sign_request(wallet_handle, identifier, request_json)) return Request(**json.loads(req_signed))
def sdk_write_schema_and_check(looper, sdk_pool_handle, sdk_wallet_steward, attributes=[], name="", version=""): _, identifier = sdk_wallet_steward _, schema_json = looper.loop.run_until_complete( issuer_create_schema(identifier, name, version, json.dumps(attributes))) request = looper.loop.run_until_complete( build_schema_request(identifier, schema_json)) req = sdk_sign_and_submit_req(sdk_pool_handle, sdk_wallet_steward, request) rep = sdk_get_and_check_replies(looper, [req]) return rep