Skip to content

Commit 0b15e2b

Browse files
Update unit tests, covering paging
1 parent 51f6d3e commit 0b15e2b

8 files changed

Lines changed: 30 additions & 8 deletions

File tree

coriolisclient/cli/transfer_executions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ def get_parser(self, prog_name):
195195
return parser
196196

197197
def take_action(self, args):
198-
sort_keys, sort_dirs = cli_utils.parse_sort_args(args.sort)
198+
sort_keys, sort_dirs = cli_utils.parse_sort_arg(args.sort)
199199
obj_list = self.app.client_manager.coriolis.transfer_executions.list(
200200
args.transfer,
201201
marker=args.marker,

coriolisclient/cli/utils.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ def _split_pool_mapping_arg(arg):
267267
'be of the form "INSTANCE_IDENTIFIER=MINION_POOL_ID".')
268268

269269

270-
def parse_sort_arg(sort: str) -> tuple[list, list]:
270+
def parse_sort_arg(sort: str | None) -> tuple[list, list]:
271271
"""Parse sort CLI argument.
272272
273273
:param sort: Comma-separated list of sort keys and directions in the form
@@ -277,6 +277,9 @@ def parse_sort_arg(sort: str) -> tuple[list, list]:
277277
"""
278278
sort_keys = []
279279
sort_dirs = []
280+
if not sort:
281+
return sort_keys, sort_dirs
282+
280283
for sort_entry in sort.split(','):
281284
sort_key, _sep, sort_dir = sort_entry.partition(':')
282285
if not sort_dir:

coriolisclient/tests/cli/test_deployments.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ def test_take_action(self):
334334
mock_fun.return_value = [
335335
v1_deployments.Deployment(mock.MagicMock(), DEPLOYMENT_LIST_DATA)]
336336

337-
columns, data = self.cli.take_action(mock.ANY)
337+
columns, data = self.cli.take_action(mock.MagicMock())
338338

339339
self.assertEqual(deployments.DeploymentFormatter().columns, columns)
340340
self.assertEqual([DEPLOYMENT_LIST_FORMATTED_DATA], list(data))

coriolisclient/tests/cli/test_transfer_executions.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ def test_take_action(
426426
args = mock.Mock()
427427
args.transfer = mock.sentinel.transfer
428428
mock_transfer_list = mock.Mock()
429+
args.sort = None
429430
self.mock_app.client_manager.coriolis.transfer_executions.list = \
430431
mock_transfer_list
431432

@@ -435,6 +436,12 @@ def test_take_action(
435436
mock_list_objects.return_value,
436437
result
437438
)
438-
mock_transfer_list.assert_called_once_with(mock.sentinel.transfer)
439+
mock_transfer_list.assert_called_once_with(
440+
mock.sentinel.transfer,
441+
marker=args.marker,
442+
limit=args.limit,
443+
sort_keys=mock.ANY,
444+
sort_dirs=mock.ANY,
445+
)
439446
mock_list_objects.assert_called_once_with(
440447
mock_transfer_list.return_value)

coriolisclient/tests/cli/test_utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,3 +323,13 @@ def test_add_minion_pool_args_to_parser(self):
323323
[{'instance_id': 'mock_instance_id', 'pool_id': 'mock_pool_id'}],
324324
args.instance_osmorphing_minion_pool_mappings
325325
)
326+
327+
@ddt.data(
328+
(None, ([], [])),
329+
("key0:asc,key1:desc,key2",
330+
(["key0", "key1", "key2"], ["asc", "desc", "desc"]))
331+
)
332+
@ddt.unpack
333+
def test_parse_sort_arg(self, sort_arg, exp_ret):
334+
ret = utils.parse_sort_arg(sort_arg)
335+
self.assertEqual(exp_ret, ret)

coriolisclient/tests/v1/test_deployments.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def test_list(self):
7575
result = self.deployments.list(detail=True)
7676
self.assertEqual(mock_list.return_value, result)
7777
mock_list.assert_called_once_with(
78-
'/deployments/detail', 'deployments')
78+
'/deployments/detail', 'deployments', query=[])
7979

8080
def test_get(self):
8181
deployment = mock.Mock(uuid=DEPLOYMENT_ID)

coriolisclient/tests/v1/test_transfer_executions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ def test_list(self, mock_list):
4949
result
5050
)
5151
mock_list.assert_called_once_with(
52-
'/transfers/%s/executions' % mock.sentinel.transfer, "executions")
52+
'/transfers/%s/executions' % mock.sentinel.transfer, "executions",
53+
query=[])
5354

5455
@mock.patch.object(transfer_executions.TransferExecutionManager, "_get")
5556
def test_get(self, mock_get):

coriolisclient/tests/v1/test_transfers.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def test_list(self, mock_list):
8585
mock_list.return_value,
8686
result
8787
)
88-
mock_list.assert_called_once_with("/transfers", "transfers")
88+
mock_list.assert_called_once_with("/transfers", "transfers", query=[])
8989

9090
@mock.patch.object(transfers.TransferManager, "_list")
9191
def test_list_details(self, mock_list):
@@ -95,7 +95,8 @@ def test_list_details(self, mock_list):
9595
mock_list.return_value,
9696
result
9797
)
98-
mock_list.assert_called_once_with("/transfers/detail", "transfers")
98+
mock_list.assert_called_once_with(
99+
"/transfers/detail", "transfers", query=[])
99100

100101
@mock.patch.object(transfers.TransferManager, "_get")
101102
def test_get(self, mock_get):

0 commit comments

Comments
 (0)