@@ -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