Exemple #1
0
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'"
    )
Exemple #2
0
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,
    }
Exemple #3
0
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,
    }
Exemple #4
0
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
Exemple #5
0
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()
        )