def test_content_raises(identity: PrivateIdentity) -> None: """Request content to create claims and endorsements for an unique asset.""" asset = Asset(asset_type_id="98765") with pytest.raises(TypeError) as exeinfo: asset.put_request_content(endorser=identity) assert ( str(exeinfo.value) == "missing required keyword argument needed for endorsement: 'claims'" )
def test_content_create_asset_request() -> None: """Request content to create an account.""" request_id = "123456" asset = Asset(asset_type_id="123456") content = json.loads(asset.put_request_content(request_id=request_id)) assert content == { "_type": "CreateAssetRequest", "assetId": asset.asset_id, "assetTypeId": asset.asset_type_id, "requestId": request_id, }
def test_content_create_account(quantity: typing.Union[str, int, float]) -> None: """Request content to create an account.""" request_id = "123456" asset = Asset(asset_type_id="123456", quantity=quantity) # type: ignore[arg-type] content = json.loads(asset.put_request_content(request_id=request_id)) assert content == { "_type": "CreateAssetRequest", "assetId": asset.asset_id, "assetTypeId": asset.asset_type_id, "quantity": str(int(float(quantity))), "requestId": request_id, }
def test_content_create_asset_claims_request() -> None: """Request content to create claims on an unique asset.""" request_id = "123456" claims = [b"claim-1", b"claim-2"] asset = Asset(asset_type_id="123456") content = json.loads( asset.put_request_content(claims=claims, request_id=request_id) ) hashed_claims = content.pop("claims") assert content == { "_type": "CreateAssetClaimsRequest", "subjectId": asset.asset_id, "subjectTypeId": asset.asset_type_id, "requestId": request_id, } assert len(hashed_claims) == len(claims) for hc in [hashed_claim(c) for c in claims]: assert hc in hashed_claims
def test_content_create_endorsements(identity: PrivateIdentity) -> None: """Request content to create claims and endorsements for an unique asset.""" request_id = "123456" claims = [b"claim-1", b"claim-2"] asset = Asset(asset_type_id="98765") content = json.loads( asset.put_request_content( claims=claims, endorser=identity, request_id=request_id ) ) endorsements = content.pop("endorsements") assert content == { "_type": "CreateAssetEndorsementsRequest", "subjectId": asset.asset_id, "subjectTypeId": asset.asset_type_id, "endorserId": identity.identity_id, "requestId": request_id, } for c, s in endorsements.items(): identity.verify_signature( s, ";".join((asset.asset_id, asset.asset_type_id, c)).encode() )