Skip to content

Commit 4382f5a

Browse files
sonivijaykVijay Sonijamshale
authored
Sonivijayk/fix/issue 3990 revoke indy cred post askar anoncres upgrade (#4017)
* deleted txn.handle.remove() call Signed-off-by: Vijay Soni <vijaysoni@sonivijay.com> * added regression test post txn.handle.remove() removal Signed-off-by: Vijay Soni <vijaysoni@sonivijay.com> * linting Signed-off-by: Vijay Soni <vijaysoni@sonivijay.com> --------- Signed-off-by: Vijay Soni <vijaysoni@sonivijay.com> Signed-off-by: Vijay K Soni <vijay.k.soni@outlook.com> Co-authored-by: Vijay Soni <vijaysoni@sonivijay.com> Co-authored-by: jamshale <31809382+jamshale@users.noreply.github.com>
1 parent 097f2de commit 4382f5a

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

acapy_agent/wallet/tests/test_anoncreds_upgrade.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import asyncio
2+
import json
23
from time import time
34
from unittest import IsolatedAsyncioTestCase
45

56
from anoncreds import CredentialDefinitionPrivate, KeyCorrectnessProof
67
from aries_askar import AskarError
78

89
from ...anoncreds.issuer import CATEGORY_CRED_DEF_PRIVATE
10+
from ...anoncreds.models.revocation import RevList
911
from ...askar.profile import AskarProfileSession
1012
from ...cache.base import BaseCache
1113
from ...indy.credx.issuer import CATEGORY_CRED_DEF_KEY_PROOF
@@ -14,6 +16,7 @@
1416
from ...messaging.schemas.util import SCHEMA_SENT_RECORD_TYPE
1517
from ...multitenant.base import BaseMultitenantManager
1618
from ...multitenant.manager import MultitenantManager
19+
from ...revocation.models.issuer_cred_rev_record import IssuerCredRevRecord
1720
from ...storage.base import BaseStorage
1821
from ...storage.record import StorageRecord
1922
from ...storage.type import (
@@ -403,3 +406,42 @@ async def test_failed_upgrade(self):
403406
)
404407
# Storage type should not be updated
405408
assert storage_type_record.value == "askar"
409+
410+
async def test_upgrade_preserves_issuer_cred_rev_records(self):
411+
cred_ex_id = "legacy-cred-ex-1"
412+
rev_reg_id = "rev-reg-1"
413+
cred_rev_id = "1"
414+
async with self.profile.session() as session:
415+
record = IssuerCredRevRecord(
416+
cred_ex_id=cred_ex_id,
417+
rev_reg_id=rev_reg_id,
418+
cred_rev_id=cred_rev_id,
419+
)
420+
await record.save(session)
421+
storage_record = StorageRecord(
422+
IssuerCredRevRecord.RECORD_TYPE,
423+
json.dumps(record.serialize()),
424+
tags={"cred_rev_id": cred_rev_id},
425+
id=record.record_id,
426+
)
427+
rev_list = RevList(
428+
issuer_id="issuer",
429+
rev_reg_def_id=rev_reg_id,
430+
revocation_list=[0],
431+
current_accumulator="accum",
432+
)
433+
rev_list_upgrade_obj = anoncreds_upgrade.RevListUpgradeObj(
434+
rev_list=rev_list,
435+
pending=None,
436+
rev_reg_def_id=rev_reg_id,
437+
cred_rev_records=[storage_record],
438+
)
439+
await anoncreds_upgrade.upgrade_and_delete_rev_entry_records(
440+
session, rev_list_upgrade_obj
441+
)
442+
443+
async with self.profile.session() as session:
444+
retrieved = await IssuerCredRevRecord.retrieve_by_cred_ex_id(
445+
session, cred_ex_id
446+
)
447+
assert retrieved.cred_rev_id == cred_rev_id

0 commit comments

Comments
 (0)