Skip to content

Commit a415319

Browse files
committed
added cli unit tests
1 parent 970febf commit a415319

File tree

2 files changed

+46
-2
lines changed

2 files changed

+46
-2
lines changed

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ reactivex==4.0.4
1414
starlette==0.22.0
1515
asyncclick==8.1.3.4
1616
pytest-profiling==1.7.0
17-
pytest-xdist==3.0.2
17+
pytest-xdist==3.0.2
18+
decoy==1.11.1

tests/rsocket/test_cli_command.py

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@
33
import tempfile
44

55
import pytest
6+
from decoy import Decoy
67

8+
from rsocket.awaitable.awaitable_rsocket import AwaitableRSocket
79
from rsocket.cli.command import parse_uri, build_composite_metadata, create_request_payload, get_metadata_value, \
810
create_setup_payload, normalize_data, normalize_limit_rate, RequestType, get_request_type, parse_headers, \
9-
normalize_metadata_mime_type
11+
normalize_metadata_mime_type, execute_request
1012
from rsocket.extensions.helpers import route, authenticate_simple, authenticate_bearer
1113
from rsocket.extensions.mimetypes import WellKnownMimeTypes
1214
from rsocket.frame import MAX_REQUEST_N
15+
from rsocket.helpers import create_future
1316
from rsocket.payload import Payload
1417
from tests.rsocket.helpers import create_data
1518

@@ -175,3 +178,43 @@ def test_normalize_metadata_mime_type(composite_items, metadata_mime_type, expec
175178
actual = normalize_metadata_mime_type(composite_items, metadata_mime_type)
176179

177180
assert actual == expected
181+
182+
183+
async def test_execute_request_response(decoy: Decoy):
184+
client = decoy.mock(cls=AwaitableRSocket)
185+
186+
decoy.when(await client.request_response(Payload())).then_return(Payload(b'abc'))
187+
188+
result = await execute_request(client, RequestType.response, 3, Payload())
189+
190+
assert result.data == b'abc'
191+
192+
193+
async def test_execute_request_stream(decoy: Decoy):
194+
client = decoy.mock(cls=AwaitableRSocket)
195+
196+
decoy.when(await client.request_stream(Payload(), limit_rate=3)).then_return([Payload(b'abc')])
197+
198+
result = await execute_request(client, RequestType.stream, 3, Payload())
199+
200+
assert result[0].data == b'abc'
201+
202+
203+
async def test_execute_request_channel(decoy: Decoy):
204+
client = decoy.mock(cls=AwaitableRSocket)
205+
206+
decoy.when(await client.request_channel(Payload(), limit_rate=3)).then_return([Payload(b'abc')])
207+
208+
result = await execute_request(client, RequestType.channel, 3, Payload())
209+
210+
assert result[0].data == b'abc'
211+
212+
213+
async def test_execute_request_fnf(decoy: Decoy):
214+
client = decoy.mock(cls=AwaitableRSocket)
215+
216+
decoy.when(client.fire_and_forget(Payload())).then_return(create_future(None))
217+
218+
result = await execute_request(client, RequestType.fnf, 3, Payload())
219+
220+
assert result is None

0 commit comments

Comments
 (0)