Merge "deal with -c option when the list result is empty."

This commit is contained in:
Jenkins
2012-08-12 21:30:58 +00:00
committed by Gerrit Code Review
3 changed files with 35 additions and 1 deletions

View File

@@ -32,6 +32,8 @@ quantum net-show $network_id || die "fail to show network $network_id"
quantum net-update $network --admin_state_up False || die "fail to update network $network"
quantum net-update $network_id --admin_state_up True || die "fail to update network $network_id"
quantum net-list -c id -- --id fakeid || die "fail to list networks with column selection on empty list"
# test the CRUD of subnet
subnet=mysubnet1
cidr=10.0.1.3/24
@@ -122,4 +124,4 @@ else
die "without valid context on server, quota delete command should fail."
fi
quantum quota-list || die "fail to update quota for self"
fi
fi

View File

@@ -362,6 +362,8 @@ class ListCommand(QuantumCommand, lister.Lister):
if collection in data:
info = data[collection]
_columns = len(info) > 0 and sorted(info[0].keys()) or []
if not _columns:
parsed_args.columns = []
return (_columns, (utils.get_item_properties(
s, _columns, formatters=self._formatters, )
for s in info), )

View File

@@ -18,6 +18,7 @@
import sys
from quantumclient.common import exceptions
from quantumclient.tests.unit import test_cli20
from quantumclient.tests.unit.test_cli20 import CLITestV20Base
from quantumclient.tests.unit.test_cli20 import MyApp
from quantumclient.quantum.v2_0.network import CreateNetwork
@@ -79,6 +80,35 @@ class CLITestV20Network(CLITestV20Base):
position_names, position_values,
admin_state_up=False)
def test_lsit_nets_empty_with_column(self):
resources = "networks"
cmd = ListNetwork(MyApp(sys.stdout), None)
self.mox.StubOutWithMock(cmd, "get_client")
self.mox.StubOutWithMock(self.client.httpclient, "request")
cmd.get_client().MultipleTimes().AndReturn(self.client)
reses = {resources: []}
resstr = self.client.serialize(reses)
# url method body
query = "id=myfakeid"
args = ['-c', 'id', '--', '--id', 'myfakeid']
path = getattr(self.client, resources + "_path")
self.client.httpclient.request(
test_cli20.end_url(path, query), 'GET',
body=None,
headers=test_cli20.ContainsKeyValue(
'X-Auth-Token',
test_cli20.TOKEN)).AndReturn(
(test_cli20.MyResp(200), resstr))
self.mox.ReplayAll()
cmd_parser = cmd.get_parser("list_" + resources)
parsed_args = cmd_parser.parse_args(args)
cmd.run(parsed_args)
self.mox.VerifyAll()
self.mox.UnsetStubs()
_str = self.fake_stdout.make_string()
self.assertEquals('\n', _str)
def test_list_nets_detail(self):
"""list nets: -D."""
resources = "networks"