Skip to content

Commit 95639d4

Browse files
Jenkinsopenstack-gerrit
authored andcommitted
Merge "deal with -c option when the list result is empty."
2 parents 47f827d + 060057c commit 95639d4

3 files changed

Lines changed: 35 additions & 1 deletion

File tree

quantum_test.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ quantum net-show $network_id || die "fail to show network $network_id"
3232
quantum net-update $network --admin_state_up False || die "fail to update network $network"
3333
quantum net-update $network_id --admin_state_up True || die "fail to update network $network_id"
3434

35+
quantum net-list -c id -- --id fakeid || die "fail to list networks with column selection on empty list"
36+
3537
# test the CRUD of subnet
3638
subnet=mysubnet1
3739
cidr=10.0.1.3/24
@@ -122,4 +124,4 @@ else
122124
die "without valid context on server, quota delete command should fail."
123125
fi
124126
quantum quota-list || die "fail to update quota for self"
125-
fi
127+
fi

quantumclient/quantum/v2_0/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,8 @@ def get_data(self, parsed_args):
362362
if collection in data:
363363
info = data[collection]
364364
_columns = len(info) > 0 and sorted(info[0].keys()) or []
365+
if not _columns:
366+
parsed_args.columns = []
365367
return (_columns, (utils.get_item_properties(
366368
s, _columns, formatters=self._formatters, )
367369
for s in info), )

quantumclient/tests/unit/test_cli20_network.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import sys
1919

2020
from quantumclient.common import exceptions
21+
from quantumclient.tests.unit import test_cli20
2122
from quantumclient.tests.unit.test_cli20 import CLITestV20Base
2223
from quantumclient.tests.unit.test_cli20 import MyApp
2324
from quantumclient.quantum.v2_0.network import CreateNetwork
@@ -79,6 +80,35 @@ def test_create_network_state(self):
7980
position_names, position_values,
8081
admin_state_up=False)
8182

83+
def test_lsit_nets_empty_with_column(self):
84+
resources = "networks"
85+
cmd = ListNetwork(MyApp(sys.stdout), None)
86+
self.mox.StubOutWithMock(cmd, "get_client")
87+
self.mox.StubOutWithMock(self.client.httpclient, "request")
88+
cmd.get_client().MultipleTimes().AndReturn(self.client)
89+
reses = {resources: []}
90+
resstr = self.client.serialize(reses)
91+
# url method body
92+
query = "id=myfakeid"
93+
args = ['-c', 'id', '--', '--id', 'myfakeid']
94+
path = getattr(self.client, resources + "_path")
95+
self.client.httpclient.request(
96+
test_cli20.end_url(path, query), 'GET',
97+
body=None,
98+
headers=test_cli20.ContainsKeyValue(
99+
'X-Auth-Token',
100+
test_cli20.TOKEN)).AndReturn(
101+
(test_cli20.MyResp(200), resstr))
102+
self.mox.ReplayAll()
103+
cmd_parser = cmd.get_parser("list_" + resources)
104+
105+
parsed_args = cmd_parser.parse_args(args)
106+
cmd.run(parsed_args)
107+
self.mox.VerifyAll()
108+
self.mox.UnsetStubs()
109+
_str = self.fake_stdout.make_string()
110+
self.assertEquals('\n', _str)
111+
82112
def test_list_nets_detail(self):
83113
"""list nets: -D."""
84114
resources = "networks"

0 commit comments

Comments
 (0)