Skip to content

Commit a5a7559

Browse files
committed
feat: unit tests for revocation event
Signed-off-by: jamshale <[email protected]>
1 parent d30db20 commit a5a7559

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

acapy_agent/protocols/issue_credential/v2_0/tests/test_routes.py

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1+
import re
12
from unittest import IsolatedAsyncioTestCase
23

34
from .....admin.request_context import AdminRequestContext
5+
from .....anoncreds.models.issuer_cred_rev_record import (
6+
IssuerCredRevRecord as IssuerCredRevAnoncredsRecord,
7+
)
48
from .....connections.models.conn_record import ConnRecord
9+
from .....core.event_bus import EventMetadata, EventWithMetadata, MockEventBus
510
from .....protocols.issue_credential.v2_0.models.cred_ex_record import V20CredExRecord
11+
from .....revocation.models.issuer_cred_rev_record import IssuerCredRevRecord
612
from .....tests import mock
713
from .....utils.testing import create_test_profile
814
from .....vc.ld_proofs.error import LinkedDataProofException
@@ -1914,3 +1920,88 @@ async def test_post_process_routes(self):
19141920
mock_app = mock.MagicMock(_state={"swagger_dict": {}})
19151921
test_module.post_process_routes(mock_app)
19161922
assert "tags" in mock_app._state["swagger_dict"]
1923+
1924+
def test_register_events(self):
1925+
# Make sure cred-revoked listener is added
1926+
event_bus = MockEventBus()
1927+
test_module.register_events(event_bus)
1928+
assert (
1929+
event_bus.topic_patterns_to_subscribers.get(
1930+
re.compile(r"^acapy::cred-revoked$")
1931+
)[0]
1932+
== test_module.cred_revoked
1933+
)
1934+
1935+
async def test_cred_revoked_both_cred_rev_records_without_cred_ex_id(self):
1936+
await test_module.cred_revoked(
1937+
self.profile,
1938+
EventWithMetadata(
1939+
"test",
1940+
IssuerCredRevRecord(),
1941+
EventMetadata(pattern=re.compile(r"^acapy::cred-revoked$"), match=None),
1942+
),
1943+
)
1944+
await test_module.cred_revoked(
1945+
self.profile,
1946+
EventWithMetadata(
1947+
"test",
1948+
IssuerCredRevAnoncredsRecord(),
1949+
EventMetadata(pattern=re.compile(r"^acapy::cred-revoked$"), match=None),
1950+
),
1951+
)
1952+
1953+
async def test_cred_revoked_not_version_2(self):
1954+
await test_module.cred_revoked(
1955+
self.profile,
1956+
EventWithMetadata(
1957+
"test",
1958+
IssuerCredRevAnoncredsRecord(
1959+
cred_ex_id="dummy", cred_ex_version=IssuerCredRevRecord.VERSION_1
1960+
),
1961+
EventMetadata(pattern=re.compile(r"^acapy::cred-revoked$"), match=None),
1962+
),
1963+
)
1964+
1965+
@mock.patch.object(
1966+
test_module.V20CredExRecord,
1967+
"retrieve_by_id",
1968+
mock.CoroutineMock(
1969+
return_value=test_module.V20CredExRecord(
1970+
cred_ex_id="dummy",
1971+
state=None,
1972+
)
1973+
),
1974+
)
1975+
@mock.patch.object(
1976+
test_module.V20CredExRecord,
1977+
"save",
1978+
mock.CoroutineMock(),
1979+
)
1980+
async def test_cred_revoked(self):
1981+
await test_module.cred_revoked(
1982+
self.profile,
1983+
EventWithMetadata(
1984+
"test",
1985+
IssuerCredRevAnoncredsRecord(
1986+
cred_ex_id="dummy", cred_ex_version=IssuerCredRevRecord.VERSION_2
1987+
),
1988+
EventMetadata(pattern=re.compile(r"^acapy::cred-revoked$"), match=None),
1989+
),
1990+
)
1991+
1992+
@mock.patch.object(
1993+
test_module.V20CredExRecord,
1994+
"retrieve_by_id",
1995+
mock.CoroutineMock(side_effect=test_module.StorageNotFoundError()),
1996+
)
1997+
async def test_cred_not_found(self):
1998+
await test_module.cred_revoked(
1999+
self.profile,
2000+
EventWithMetadata(
2001+
"test",
2002+
IssuerCredRevAnoncredsRecord(
2003+
cred_ex_id="dummy", cred_ex_version=IssuerCredRevRecord.VERSION_2
2004+
),
2005+
EventMetadata(pattern=re.compile(r"^acapy::cred-revoked$"), match=None),
2006+
),
2007+
)

0 commit comments

Comments
 (0)