|
| 1 | +import re |
1 | 2 | from unittest import IsolatedAsyncioTestCase |
2 | 3 |
|
3 | 4 | from .....admin.request_context import AdminRequestContext |
| 5 | +from .....anoncreds.models.issuer_cred_rev_record import ( |
| 6 | + IssuerCredRevRecord as IssuerCredRevAnoncredsRecord, |
| 7 | +) |
4 | 8 | from .....connections.models.conn_record import ConnRecord |
| 9 | +from .....core.event_bus import EventMetadata, EventWithMetadata, MockEventBus |
5 | 10 | from .....protocols.issue_credential.v2_0.models.cred_ex_record import V20CredExRecord |
| 11 | +from .....revocation.models.issuer_cred_rev_record import IssuerCredRevRecord |
6 | 12 | from .....tests import mock |
7 | 13 | from .....utils.testing import create_test_profile |
8 | 14 | from .....vc.ld_proofs.error import LinkedDataProofException |
@@ -1914,3 +1920,88 @@ async def test_post_process_routes(self): |
1914 | 1920 | mock_app = mock.MagicMock(_state={"swagger_dict": {}}) |
1915 | 1921 | test_module.post_process_routes(mock_app) |
1916 | 1922 | 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