Merge "Make datasource row list work with name or id"

This commit is contained in:
Jenkins
2015-02-23 21:13:15 +00:00
committed by Gerrit Code Review
2 changed files with 11 additions and 4 deletions

View File

@@ -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

View File

@@ -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])