Revision 4f31882e
b/lib/cli.py | ||
---|---|---|
259 | 259 |
NO_PREFIX = "no_" |
260 | 260 |
UN_PREFIX = "-" |
261 | 261 |
kv_dict = {} |
262 |
for elem in data.split(","): |
|
263 |
if "=" in elem: |
|
264 |
key, val = elem.split("=", 1) |
|
265 |
else: |
|
266 |
if elem.startswith(NO_PREFIX): |
|
267 |
key, val = elem[len(NO_PREFIX):], False |
|
268 |
elif elem.startswith(UN_PREFIX): |
|
269 |
key, val = elem[len(UN_PREFIX):], None |
|
262 |
if data: |
|
263 |
for elem in data.split(","): |
|
264 |
if "=" in elem: |
|
265 |
key, val = elem.split("=", 1) |
|
270 | 266 |
else: |
271 |
key, val = elem, True |
|
272 |
if key in kv_dict: |
|
273 |
raise errors.ParameterError("Duplicate key '%s' in option %s" % |
|
274 |
(key, opt)) |
|
275 |
kv_dict[key] = val |
|
267 |
if elem.startswith(NO_PREFIX): |
|
268 |
key, val = elem[len(NO_PREFIX):], False |
|
269 |
elif elem.startswith(UN_PREFIX): |
|
270 |
key, val = elem[len(UN_PREFIX):], None |
|
271 |
else: |
|
272 |
key, val = elem, True |
|
273 |
if key in kv_dict: |
|
274 |
raise errors.ParameterError("Duplicate key '%s' in option %s" % |
|
275 |
(key, opt)) |
|
276 |
kv_dict[key] = val |
|
276 | 277 |
return kv_dict |
277 | 278 |
|
278 | 279 |
|
b/test/ganeti.cli_unittest.py | ||
---|---|---|
75 | 75 |
self.failUnlessRaises(ParameterError, cli._SplitKeyVal, |
76 | 76 |
"option", data) |
77 | 77 |
|
78 |
def testEmptyData(self): |
|
79 |
"""Test how we handle splitting an empty string""" |
|
80 |
self.failUnlessEqual(cli._SplitKeyVal("option", ""), {}) |
|
81 |
|
|
78 | 82 |
|
79 | 83 |
class TestToStream(unittest.TestCase): |
80 | 84 |
"""Thes the ToStream functions""" |
Also available in: Unified diff