@@ -14,7 +14,7 @@ def test_parse_option_value(self):
1414 self .assertDictEqual ({"foo" : "bar" }, parse_option_value ('{"foo":"bar"}' ))
1515 self .assertDictEqual ({"an" : "object" , "or" : "dict" }, parse_option_value ('{"an":"object","or":"dict"}' ))
1616 self .assertListEqual (
17- ["this" , "will" , "be" , "read" , "as" ,"a" , "list" ],
17+ ["this" , "will" , "be" , "read" , "as" , "a" , "list" ],
1818 parse_option_value ('["this","will","be","read","as","a","list"]' )
1919 )
2020 self .assertListEqual (
@@ -62,6 +62,14 @@ def test_parse_args_kwargs(self):
6262 self .assertEqual (0 , len (args ))
6363 self .assertDictEqual ({"arg1" : "a1" , "arg2" : "a2" }, kwargs )
6464
65+ # should consume list values separated by spaces and commas
66+ args , kwargs = parse_args_kwargs (_list_args_test_func , ["l0a0,l0a1,l0a2" , "sa0" , "l1a0" , "sa2" , "l1a1,l1a2" , "l1a3" ])
67+ self .assertEqual (4 , len (args ))
68+ self .assertListEqual (["l0a0" , "l0a1" , "l0a2" ], args [0 ])
69+ self .assertEqual ("sa0" , args [1 ])
70+ self .assertListEqual (["l1a0" , "l1a1" , "l1a2" , "l1a3" ], args [2 ])
71+ self .assertEqual ("sa2" , args [3 ])
72+
6573 def test_group_params (self ):
6674 self .assertDictEqual ({}, group_params ([]))
6775 self .assertDictEqual ({"k1" : "v1" , "k2" : "v2" }, group_params ([("k1" , "v1" ), ("k2" , "v2" )]))
@@ -113,7 +121,9 @@ def test_merge_responses(self):
113121
114122 def test_normalize_list_params (self ):
115123 """ should normalize a list of parameters """
116- self .assertEqual (["f1" , "f2" , "f3" ], normalize_list_params (["f1,f2" , "f3" ]))
124+ self .assertListEqual (["f1" ], normalize_list_params ("f1" ))
125+ self .assertListEqual (["f1" , "f2" , "f3" ], normalize_list_params (["f1,f2" , "f3" ]))
126+ self .assertListEqual (["f1" , "f2" , "f3" ], normalize_list_params ("f1,f2,f3" ))
117127
118128 def test_chunker (self ):
119129 animals = ['cat' , 'dog' , 'rabbit' , 'duck' , 'bird' , 'cow' , 'gnu' , 'fish' ]
@@ -131,3 +141,21 @@ def _only_args_test_func(arg1, arg2):
131141
132142def _args_kwargs_test_func (arg1 , arg2 = None ):
133143 return arg1 , arg2
144+
145+
146+ def _list_args_test_func (fist_list_arg , non_list_arg , list_arg , non_list_arg2 ):
147+ """
148+ Function for testing list args.
149+
150+ :param fist_list_arg: first list argument
151+ :type fist_list_arg: list
152+ :param non_list_arg: some non-list argument
153+ :type non_list_arg: str
154+ :param list_arg: some list argument
155+ :type list_arg: list
156+ :param non_list_arg2: another non-list argument
157+ :type non_list_arg2: str
158+ :return: tuple of arguments
159+ :rtype: tuple
160+ """
161+ return fist_list_arg , non_list_arg , list_arg , non_list_arg2
0 commit comments