Sumit Naiksatam 3cbbf82073 Make list and dict input consistent, other fixes
With some recent changes, a dictionary argument could be provided
as:
key1,key2,key3

But list arguments had to be space separated:
"x1 x2 x3"

This patch makes this consistent, to always be comma separated. At the
same time backward compatibility is being preserved.

Some other bugs are also getting fixed on account of this clean up:
Closes-bug: 1505452
Closes-bug: 1452155
Closes-bug: 1482310
Closes-bug: 1505343
Closes-bug: 1501659
Closes-bug: 1452156
Closes-bug: 1486725
Closes-bug: 1403192

Change-Id: Ie9128e35fb75af71249dfdcfeef2c1f4f812f118
2015-10-16 03:29:44 -07:00

80 lines
3.1 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import testtools
from gbpclient.common import utils
class TestUtils(testtools.TestCase):
def test_string_to_dictionary(self):
input_str = 'key1'
expected = {'key1': ''}
self.assertEqual(expected, utils.str2dict(input_str))
input_str = 'key1,key2'
expected = {'key1': '', 'key2': ''}
self.assertEqual(expected, utils.str2dict(input_str))
input_str = 'key1=value1,key2'
expected = {'key1': 'value1', 'key2': ''}
self.assertEqual(expected, utils.str2dict(input_str))
input_str = 'key1=value1,key2=value2'
expected = {'key1': 'value1', 'key2': 'value2'}
self.assertEqual(expected, utils.str2dict(input_str))
def test_none_string_to_dictionary(self):
input_str = ''
expected = {}
self.assertEqual(expected, utils.str2dict(input_str))
input_str = None
expected = {}
self.assertEqual(expected, utils.str2dict(input_str))
def test_string_to_list(self):
input_str = 'key1'
expected = ['key1']
self.assertEqual(expected, utils.str2list(input_str))
input_str = 'key1, key2'
expected = ['key1', 'key2']
self.assertEqual(expected, utils.str2list(input_str))
input_str = 'key1,key2'
expected = ['key1', 'key2']
self.assertEqual(expected, utils.str2list(input_str))
input_str = 'key1,key2,'
expected = ['key1', 'key2']
self.assertEqual(expected, utils.str2list(input_str))
input_str = 'key1,key2,'
expected = ['key1', 'key2']
self.assertEqual(expected, utils.str2list(input_str))
input_str = ',key1,key2 '
expected = ['key1', 'key2']
self.assertEqual(expected, utils.str2list(input_str))
input_str = 'key1 key2'
expected = ['key1', 'key2']
self.assertEqual(expected, utils.str2list(input_str))
input_str = ' key1 key2 '
expected = ['key1', 'key2']
self.assertEqual(expected, utils.str2list(input_str))
input_str = 'key1 key2, key3 '
expected = ['key1', 'key2', 'key3']
self.assertEqual(expected, utils.str2list(input_str))
input_str = ' , key1 key2, , key3 '
expected = ['key1', 'key2', 'key3']
self.assertEqual(expected, utils.str2list(input_str))
def test_none_string_to_list(self):
input_str = ''
expected = []
self.assertEqual(expected, utils.str2list(input_str))
input_str = None
expected = []
self.assertEqual(expected, utils.str2list(input_str))