Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,75 +38,85 @@ async def test_rec_ops(self):
)
for i in range(2)
]

async with self.profile.session() as session:
# Save and update first record
await recs[0].set_state(
session,
IssuerCredRevRecord.STATE_REVOKED,
) # saves
assert recs[0] != recs[1]

assert (await IssuerCredRevRecord.query_by_ids(session))[0] == recs[0]
assert (
await IssuerCredRevRecord.retrieve_by_cred_ex_id(
session, test_module.UUID4_EXAMPLE
)
) == recs[0]
assert (
await IssuerCredRevRecord.query_by_ids(
session,
cred_def_id=CRED_DEF_ID,
)
)[0] == recs[0]
assert (
await IssuerCredRevRecord.query_by_ids(
session,
rev_reg_id=REV_REG_ID,
)
)[0] == recs[0]
assert (
await IssuerCredRevRecord.query_by_ids(
session,
cred_def_id=CRED_DEF_ID,
rev_reg_id=REV_REG_ID,
)
)[0] == recs[0]
assert (
await IssuerCredRevRecord.query_by_ids(
session,
state=IssuerCredRevRecord.STATE_REVOKED,
)
)[0] == recs[0]
assert not (
await IssuerCredRevRecord.query_by_ids(
session,
state=IssuerCredRevRecord.STATE_ISSUED,
)
)

await recs[1].set_state( # Save extra record
# Confirm the two records have different revocation IDs
assert recs[0].cred_rev_id != recs[1].cred_rev_id

# Helper to simplify record comparison
def strip(record):
return {
"cred_ex_id": record.cred_ex_id,
"cred_rev_id": record.cred_rev_id,
"rev_reg_id": record.rev_reg_id,
"cred_def_id": record.cred_def_id,
"state": record.state,
}

# Query and compare based on stripped fields
result = await IssuerCredRevRecord.query_by_ids(session)
assert strip(result[0]) == strip(recs[0])

result = await IssuerCredRevRecord.retrieve_by_cred_ex_id(
session, test_module.UUID4_EXAMPLE
)
assert strip(result) == strip(recs[0])

result = await IssuerCredRevRecord.query_by_ids(
session, cred_def_id=CRED_DEF_ID
)
assert strip(result[0]) == strip(recs[0])

result = await IssuerCredRevRecord.query_by_ids(
session, rev_reg_id=REV_REG_ID
)
assert strip(result[0]) == strip(recs[0])

result = await IssuerCredRevRecord.query_by_ids(
session, cred_def_id=CRED_DEF_ID, rev_reg_id=REV_REG_ID
)
assert strip(result[0]) == strip(recs[0])

result = await IssuerCredRevRecord.query_by_ids(
session, state=IssuerCredRevRecord.STATE_REVOKED
)
assert strip(result[0]) == strip(recs[0])

result = await IssuerCredRevRecord.query_by_ids(
session, state=IssuerCredRevRecord.STATE_ISSUED
)
assert not result

# Save second record
await recs[1].set_state(
session,
IssuerCredRevRecord.STATE_REVOKED,
)
# Fetch cred rev id as string
assert await IssuerCredRevRecord.retrieve_by_ids(

result = await IssuerCredRevRecord.retrieve_by_ids(
session, rev_reg_id=REV_REG_ID, cred_rev_id="1"
) == [recs[0]]
)
assert [strip(r) for r in result] == [strip(recs[0])]

# Fetch cred rev id as list
assert await IssuerCredRevRecord.retrieve_by_ids(
result = await IssuerCredRevRecord.retrieve_by_ids(
session, rev_reg_id=REV_REG_ID, cred_rev_id=["2"]
) == [recs[1]]

# Fetch both
assert (
await IssuerCredRevRecord.retrieve_by_ids(
session, rev_reg_id=REV_REG_ID, cred_rev_id=["1", "2"]
)
) == recs

# Fetch cred rev id that doesn't exist
assert (
await IssuerCredRevRecord.retrieve_by_ids(
session, rev_reg_id=REV_REG_ID, cred_rev_id=["3"]
)
) == []
)
assert [strip(r) for r in result] == [strip(recs[1])]

result = await IssuerCredRevRecord.retrieve_by_ids(
session, rev_reg_id=REV_REG_ID, cred_rev_id=["1", "2"]
)
assert sorted(
[strip(r) for r in result], key=lambda r: r["cred_rev_id"]
) == sorted([strip(r) for r in recs], key=lambda r: r["cred_rev_id"])

result = await IssuerCredRevRecord.retrieve_by_ids(
session, rev_reg_id=REV_REG_ID, cred_rev_id=["3"]
)
assert result == []
Loading