Skip to content

Commit b1bd9bc

Browse files
committed
added cli unit tests
1 parent 1e7eb8e commit b1bd9bc

File tree

2 files changed

+42
-3
lines changed

2 files changed

+42
-3
lines changed

tests/conftest.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ async def pipe_tcp(unused_tcp_port):
119119

120120

121121
@pytest.fixture
122-
async def lazy_pipe_tcp(aiohttp_raw_server, unused_tcp_port): # noqa: F811
122+
async def lazy_pipe_tcp(unused_tcp_port): # noqa: F811
123123
logging.info('Testing transport tcp (explicitly) on port %s (lazy)', unused_tcp_port)
124124

125125
yield functools.partial(pipe_factory_tcp, unused_tcp_port)

tests/rsocket/test_cli_command.py

+41-2
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
import io
22
import sys
33
import tempfile
4+
from asyncio import sleep
45

56
import pytest
7+
from asyncclick.testing import CliRunner
68
from decoy import Decoy
79

810
from rsocket.awaitable.awaitable_rsocket import AwaitableRSocket
911
from rsocket.cli.command import parse_uri, build_composite_metadata, create_request_payload, get_metadata_value, \
1012
create_setup_payload, normalize_data, normalize_limit_rate, RequestType, get_request_type, parse_headers, \
11-
normalize_metadata_mime_type, execute_request
13+
normalize_metadata_mime_type, execute_request, command
1214
from rsocket.extensions.helpers import route, authenticate_simple, authenticate_bearer
1315
from rsocket.extensions.mimetypes import WellKnownMimeTypes
1416
from rsocket.frame import MAX_REQUEST_N
15-
from rsocket.helpers import create_future
17+
from rsocket.helpers import create_future, create_response
1618
from rsocket.payload import Payload
19+
from rsocket.request_handler import BaseRequestHandler
1720
from tests.rsocket.helpers import create_data
21+
from tests.tools.fixtures_quart import pipe_factory_quart_websocket
22+
from tests.tools.fixtures_tcp import pipe_factory_tcp
1823

1924

2025
def test_parse_uri():
@@ -218,3 +223,37 @@ async def test_execute_request_fnf(decoy: Decoy):
218223
result = await execute_request(client, RequestType.fnf, 3, Payload())
219224

220225
assert result is None
226+
227+
228+
async def test_execute_command_tcp_request(unused_tcp_port):
229+
class Handler(BaseRequestHandler):
230+
async def request_response(self, request: Payload):
231+
await sleep(4)
232+
return create_response(b'response from test')
233+
234+
async with pipe_factory_tcp(unused_tcp_port,
235+
client_arguments={},
236+
server_arguments={'handler_factory': Handler}):
237+
runner = CliRunner()
238+
uri = f'tcp://localhost:{unused_tcp_port}'
239+
result = await runner.invoke(command, ['--request', uri])
240+
241+
assert result.stdout == 'response from test\n'
242+
assert result.exit_code == 0
243+
244+
245+
async def test_execute_command_websocket_request(unused_tcp_port):
246+
class Handler(BaseRequestHandler):
247+
async def request_response(self, request: Payload):
248+
await sleep(4)
249+
return create_response(b'response from test')
250+
251+
async with pipe_factory_quart_websocket(unused_tcp_port,
252+
client_arguments={},
253+
server_arguments={'handler_factory': Handler}):
254+
runner = CliRunner()
255+
uri = f'ws://localhost:{unused_tcp_port}'
256+
result = await runner.invoke(command, ['--request', uri])
257+
258+
assert result.stdout == 'response from test\n'
259+
assert result.exit_code == 0

0 commit comments

Comments
 (0)