Skip to content

Commit 12b06d6

Browse files
committed
AriesAgentControllerBase unit tests added.
* TODO come up with tests (eg via mocks) for pubsub * maybe this should be done in AriesAgentController tests anyway
1 parent 56b7580 commit 12b06d6

File tree

2 files changed

+133
-0
lines changed

2 files changed

+133
-0
lines changed

libs/aries-basic-controller/aries_basic_controller/tests/__init__.py

Whitespace-only changes.
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
import pytest
2+
import pytest_asyncio
3+
from aiohttp import (
4+
ClientSession,
5+
)
6+
7+
from ..aries_controller_base import AriesAgentControllerBase
8+
from ..controllers.connections import ConnectionsController
9+
from ..controllers.messaging import MessagingController
10+
from ..controllers.mediation import MediationController
11+
from ..controllers.schema import SchemaController
12+
from ..controllers.wallet import WalletController
13+
from ..controllers.definitions import DefinitionsController
14+
from ..controllers.issuer import IssuerController
15+
from ..controllers.proof import ProofController
16+
from ..controllers.ledger import LedgerController
17+
from ..controllers.credential import CredentialController
18+
from ..controllers.server import ServerController
19+
from ..controllers.oob import OOBController
20+
from ..controllers.action_menu import ActionMenuController
21+
from ..controllers.revocation import RevocationController
22+
23+
# @pytest.fixture()
24+
# def base_controller(**kwargs):
25+
# return AriesAgentControllerBase(**kwargs)
26+
27+
class TestAriesAgentControllerBase():
28+
29+
@pytest.mark.asyncio
30+
async def test_init_args_missing(self):
31+
with pytest.raises(TypeError) as te:
32+
AriesAgentControllerBase()
33+
assert "__init__() missing 1 required positional argument: 'admin_url'" \
34+
in str(tf.value)
35+
36+
@pytest.mark.asyncio
37+
async def test_default_args(self):
38+
ac = AriesAgentControllerBase(admin_url="0.0.0.0")
39+
assert ac.admin_url == "0.0.0.0"
40+
assert ac.api_key == None
41+
assert ac.webhook_site == None
42+
assert ac.connections_controller == None
43+
assert type(ac.client_session) == ClientSession
44+
assert type(ac.connections) == ConnectionsController
45+
assert type(ac.messaging) == MessagingController
46+
assert type(ac.proofs) == ProofController
47+
assert type(ac.ledger) == LedgerController
48+
assert type(ac.credentials) == CredentialController
49+
assert type(ac.server) == ServerController
50+
assert type(ac.oob) == OOBController
51+
assert type(ac.mediation) == MediationController
52+
assert type(ac.schema) == SchemaController
53+
assert type(ac.wallet) == WalletController
54+
assert type(ac.definitions) == DefinitionsController
55+
assert type(ac.issuer) == IssuerController
56+
assert type(ac.action_menu) == ActionMenuController
57+
assert type(ac.revocations) == RevocationController
58+
await ac.terminate()
59+
60+
@pytest.mark.asyncio
61+
async def test_headers(self):
62+
api_key = "123456789"
63+
ac = AriesAgentControllerBase(admin_url="", api_key=api_key)
64+
exp_headers = {"X-API-Key": api_key}
65+
assert ac.headers == exp_headers
66+
await ac.terminate()
67+
68+
@pytest.mark.asyncio
69+
async def test_init_webhook_server(self):
70+
ac = AriesAgentControllerBase(admin_url="0.0.0.0")
71+
with pytest.raises(NotImplementedError):
72+
ac.init_webhook_server()
73+
await ac.terminate()
74+
75+
@pytest.mark.asyncio
76+
async def test_update_api_key(self):
77+
api_key = "123456789"
78+
ac = AriesAgentControllerBase(admin_url="", api_key=api_key)
79+
exp_headers = {"X-API-Key": api_key}
80+
assert ac.headers == exp_headers
81+
assert ac.client_session.headers == exp_headers
82+
83+
new_api_key = "987654321"
84+
ac.update_api_key(new_api_key)
85+
new_exp_headers = {"X-API-Key": new_api_key}
86+
assert ac.headers == new_exp_headers
87+
assert ac.client_session.headers == new_exp_headers
88+
89+
await ac.terminate()
90+
91+
@pytest.mark.asyncio
92+
async def test_remove_api_key(self):
93+
api_key = "123456789"
94+
ac = AriesAgentControllerBase(admin_url="", api_key=api_key)
95+
exp_headers = {"X-API-Key": api_key}
96+
ac.remove_api_key()
97+
assert ac.headers == {}
98+
assert ac.client_session.headers == {}
99+
await ac.terminate()
100+
101+
# TODO create mock for pubsub listening webhooks
102+
# Maybe this makes more sense in aries_controller
103+
@pytest.mark.asyncio
104+
async def test_register_listners(self):
105+
pass
106+
107+
@pytest.mark.asyncio
108+
async def test_add_listener(self):
109+
pass
110+
111+
@pytest.mark.asyncio
112+
async def test_remove_listener(self):
113+
pass
114+
115+
@pytest.mark.asyncio
116+
async def test_remove_all_listeners(self):
117+
pass
118+
119+
@pytest.mark.asyncio
120+
async def test_listen_webhooks(self):
121+
ac = AriesAgentControllerBase(admin_url="0.0.0.0")
122+
with pytest.raises(NotImplementedError):
123+
await ac.listen_webhooks()
124+
await ac.terminate()
125+
126+
@pytest.mark.asyncio
127+
async def test_terminate(self):
128+
ac = AriesAgentControllerBase(admin_url="0.0.0.0")
129+
await ac.terminate()
130+
assert ac.client_session.closed == True
131+
with pytest.raises(AttributeError):
132+
assert ac.webhook_server == None
133+
await ac.terminate()

0 commit comments

Comments
 (0)