Merge "Make datasource row list work with name or id"
This commit is contained in:
@@ -202,11 +202,15 @@ class ListDatasourceRows(lister.Lister):
|
||||
def take_action(self, parsed_args):
|
||||
self.log.debug('take_action(%s)' % parsed_args)
|
||||
client = self.app.client_manager.congressclient
|
||||
results = client.list_datasource_rows(parsed_args.datasource_name,
|
||||
|
||||
results = client.list_datasources()
|
||||
datasource_id = get_resource_id_from_name(parsed_args.datasource_name,
|
||||
results)
|
||||
results = client.list_datasource_rows(datasource_id,
|
||||
parsed_args.table)['results']
|
||||
if results:
|
||||
columns = client.show_datasource_table_schema(
|
||||
parsed_args.datasource_name, parsed_args.table)['columns']
|
||||
datasource_id, parsed_args.table)['columns']
|
||||
columns = [col['name'] for col in columns]
|
||||
else:
|
||||
columns = ['data'] # doesn't matter because the rows are empty
|
||||
|
||||
@@ -182,15 +182,18 @@ class TestListDatasourceRows(common.TestCongressBase):
|
||||
|
||||
client = self.app.client_manager.congressclient
|
||||
lister = mock.Mock(return_value=response)
|
||||
self.app.client_manager.congressclient.list_datasources = mock.Mock()
|
||||
client.list_datasource_rows = lister
|
||||
schema_lister = mock.Mock(return_value=schema_response)
|
||||
client.show_datasource_table_schema = schema_lister
|
||||
cmd = datasource.ListDatasourceRows(self.app, self.namespace)
|
||||
|
||||
parsed_args = self.check_parser(cmd, arglist, verifylist)
|
||||
result = cmd.take_action(parsed_args)
|
||||
with mock.patch.object(datasource, "get_resource_id_from_name",
|
||||
return_value="id"):
|
||||
result = cmd.take_action(parsed_args)
|
||||
|
||||
lister.assert_called_with(datasource_name, table_name)
|
||||
lister.assert_called_with('id', table_name)
|
||||
self.assertEqual(['ID', 'name'], result[0])
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user