Skip to content

Commit 9147a3b

Browse files
committed
Fix: Assert determistic fields
Signed-off-by: jamshale <jamiehalebc@gmail.com>
1 parent 85c9cee commit 9147a3b

1 file changed

Lines changed: 89 additions & 82 deletions

File tree

acapy_agent/revocation_anoncreds/models/tests/test_issuer_cred_rev_record.py

Lines changed: 89 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -28,85 +28,92 @@ async def test_serde(self):
2828

2929
assert rec == IssuerCredRevRecord.deserialize(ser)
3030

31-
async def test_rec_ops(self):
32-
recs = [
33-
IssuerCredRevRecord(
34-
state=IssuerCredRevRecord.STATE_ISSUED,
35-
cred_ex_id=test_module.UUID4_EXAMPLE,
36-
rev_reg_id=REV_REG_ID,
37-
cred_rev_id=str(i + 1),
38-
)
39-
for i in range(2)
40-
]
41-
async with self.profile.session() as session:
42-
await recs[0].set_state(
43-
session,
44-
IssuerCredRevRecord.STATE_REVOKED,
45-
) # saves
46-
assert recs[0] != recs[1]
47-
48-
assert (await IssuerCredRevRecord.query_by_ids(session))[0] == recs[0]
49-
assert (
50-
await IssuerCredRevRecord.retrieve_by_cred_ex_id(
51-
session, test_module.UUID4_EXAMPLE
52-
)
53-
) == recs[0]
54-
assert (
55-
await IssuerCredRevRecord.query_by_ids(
56-
session,
57-
cred_def_id=CRED_DEF_ID,
58-
)
59-
)[0] == recs[0]
60-
assert (
61-
await IssuerCredRevRecord.query_by_ids(
62-
session,
63-
rev_reg_id=REV_REG_ID,
64-
)
65-
)[0] == recs[0]
66-
assert (
67-
await IssuerCredRevRecord.query_by_ids(
68-
session,
69-
cred_def_id=CRED_DEF_ID,
70-
rev_reg_id=REV_REG_ID,
71-
)
72-
)[0] == recs[0]
73-
assert (
74-
await IssuerCredRevRecord.query_by_ids(
75-
session,
76-
state=IssuerCredRevRecord.STATE_REVOKED,
77-
)
78-
)[0] == recs[0]
79-
assert not (
80-
await IssuerCredRevRecord.query_by_ids(
81-
session,
82-
state=IssuerCredRevRecord.STATE_ISSUED,
83-
)
84-
)
85-
86-
await recs[1].set_state( # Save extra record
87-
session,
88-
IssuerCredRevRecord.STATE_REVOKED,
89-
)
90-
# Fetch cred rev id as string
91-
assert await IssuerCredRevRecord.retrieve_by_ids(
92-
session, rev_reg_id=REV_REG_ID, cred_rev_id="1"
93-
) == [recs[0]]
94-
95-
# Fetch cred rev id as list
96-
assert await IssuerCredRevRecord.retrieve_by_ids(
97-
session, rev_reg_id=REV_REG_ID, cred_rev_id=["2"]
98-
) == [recs[1]]
99-
100-
# Fetch both
101-
assert (
102-
await IssuerCredRevRecord.retrieve_by_ids(
103-
session, rev_reg_id=REV_REG_ID, cred_rev_id=["1", "2"]
104-
)
105-
) == recs
106-
107-
# Fetch cred rev id that doesn't exist
108-
assert (
109-
await IssuerCredRevRecord.retrieve_by_ids(
110-
session, rev_reg_id=REV_REG_ID, cred_rev_id=["3"]
111-
)
112-
) == []
31+
32+
async def test_rec_ops(self):
33+
recs = [
34+
IssuerCredRevRecord(
35+
state=IssuerCredRevRecord.STATE_ISSUED,
36+
cred_ex_id=test_module.UUID4_EXAMPLE,
37+
rev_reg_id=REV_REG_ID,
38+
cred_rev_id=str(i + 1),
39+
)
40+
for i in range(2)
41+
]
42+
43+
async with self.profile.session() as session:
44+
# Save and update first record
45+
await recs[0].set_state(
46+
session,
47+
IssuerCredRevRecord.STATE_REVOKED,
48+
)
49+
50+
# Confirm the two records have different revocation IDs
51+
assert recs[0].cred_rev_id != recs[1].cred_rev_id
52+
53+
# Helper to simplify record comparison
54+
def strip(record):
55+
return {
56+
"cred_ex_id": record.cred_ex_id,
57+
"cred_rev_id": record.cred_rev_id,
58+
"rev_reg_id": record.rev_reg_id,
59+
"cred_def_id": record.cred_def_id,
60+
"state": record.state,
61+
}
62+
63+
# Query and compare based on stripped fields
64+
result = await IssuerCredRevRecord.query_by_ids(session)
65+
assert strip(result[0]) == strip(recs[0])
66+
67+
result = await IssuerCredRevRecord.retrieve_by_cred_ex_id(
68+
session, test_module.UUID4_EXAMPLE
69+
)
70+
assert strip(result) == strip(recs[0])
71+
72+
result = await IssuerCredRevRecord.query_by_ids(session, cred_def_id=CRED_DEF_ID)
73+
assert strip(result[0]) == strip(recs[0])
74+
75+
result = await IssuerCredRevRecord.query_by_ids(session, rev_reg_id=REV_REG_ID)
76+
assert strip(result[0]) == strip(recs[0])
77+
78+
result = await IssuerCredRevRecord.query_by_ids(
79+
session, cred_def_id=CRED_DEF_ID, rev_reg_id=REV_REG_ID
80+
)
81+
assert strip(result[0]) == strip(recs[0])
82+
83+
result = await IssuerCredRevRecord.query_by_ids(
84+
session, state=IssuerCredRevRecord.STATE_REVOKED
85+
)
86+
assert strip(result[0]) == strip(recs[0])
87+
88+
result = await IssuerCredRevRecord.query_by_ids(
89+
session, state=IssuerCredRevRecord.STATE_ISSUED
90+
)
91+
assert not result
92+
93+
# Save second record
94+
await recs[1].set_state(
95+
session,
96+
IssuerCredRevRecord.STATE_REVOKED,
97+
)
98+
99+
result = await IssuerCredRevRecord.retrieve_by_ids(
100+
session, rev_reg_id=REV_REG_ID, cred_rev_id="1"
101+
)
102+
assert [strip(r) for r in result] == [strip(recs[0])]
103+
104+
result = await IssuerCredRevRecord.retrieve_by_ids(
105+
session, rev_reg_id=REV_REG_ID, cred_rev_id=["2"]
106+
)
107+
assert [strip(r) for r in result] == [strip(recs[1])]
108+
109+
result = await IssuerCredRevRecord.retrieve_by_ids(
110+
session, rev_reg_id=REV_REG_ID, cred_rev_id=["1", "2"]
111+
)
112+
assert sorted(
113+
[strip(r) for r in result], key=lambda r: r["cred_rev_id"]
114+
) == sorted([strip(r) for r in recs], key=lambda r: r["cred_rev_id"])
115+
116+
result = await IssuerCredRevRecord.retrieve_by_ids(
117+
session, rev_reg_id=REV_REG_ID, cred_rev_id=["3"]
118+
)
119+
assert result == []

0 commit comments

Comments
 (0)