@ -52,15 +52,15 @@ Here we add keyword arguments
>> > f ( 1 , 2 , * * { ' a ' : - 1 , ' b ' : 5 } , * * { ' a ' : 4 , ' c ' : 6 } )
Traceback ( most recent call last ) :
. . .
TypeError : f ( ) got multiple values for keyword argument ' a '
TypeError : test . test_extcall . f ( ) got multiple values for keyword argument ' a '
>> > f ( 1 , 2 , * * { ' a ' : - 1 , ' b ' : 5 } , a = 4 , c = 6 )
Traceback ( most recent call last ) :
. . .
TypeError : f ( ) got multiple values for keyword argument ' a '
TypeError : test . test_extcall . f ( ) got multiple values for keyword argument ' a '
>> > f ( 1 , 2 , a = 3 , * * { ' a ' : 4 } , * * { ' a ' : 5 } )
Traceback ( most recent call last ) :
. . .
TypeError : f ( ) got multiple values for keyword argument ' a '
TypeError : test . test_extcall . f ( ) got multiple values for keyword argument ' a '
>> > f ( 1 , 2 , 3 , * [ 4 , 5 ] , * * { ' a ' : 6 , ' b ' : 7 } )
( 1 , 2 , 3 , 4 , 5 ) { ' a ' : 6 , ' b ' : 7 }
>> > f ( 1 , 2 , 3 , x = 4 , y = 5 , * ( 6 , 7 ) , * * { ' a ' : 8 , ' b ' : 9 } )
@ -118,7 +118,7 @@ Verify clearing of SF bug #733667
>> > g ( * Nothing ( ) )
Traceback ( most recent call last ) :
. . .
TypeError : g ( ) argument after * must be an iterable , not Nothing
TypeError : test . test_extcall . g ( ) argument after * must be an iterable , not Nothing
>> > class Nothing :
. . . def __len__ ( self ) : return 5
@ -127,7 +127,7 @@ Verify clearing of SF bug #733667
>> > g ( * Nothing ( ) )
Traceback ( most recent call last ) :
. . .
TypeError : g ( ) argument after * must be an iterable , not Nothing
TypeError : test . test_extcall . g ( ) argument after * must be an iterable , not Nothing
>> > class Nothing ( ) :
. . . def __len__ ( self ) : return 5
@ -247,17 +247,17 @@ What about willful misconduct?
>> > h ( * h )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * must be an iterable , not function
TypeError : test . test_extcall . h ( ) argument after * must be an iterable , not function
>> > h ( 1 , * h )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * must be an iterable , not function
TypeError : test . test_extcall . h ( ) argument after * must be an iterable , not function
>> > h ( * [ 1 ] , * h )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * must be an iterable , not function
TypeError : test . test_extcall . h ( ) argument after * must be an iterable , not function
>> > dir ( * h )
Traceback ( most recent call last ) :
@ -268,38 +268,38 @@ What about willful misconduct?
>> > nothing ( * h )
Traceback ( most recent call last ) :
. . .
TypeError : NoneType object argument after * must be an iterable , \
TypeError : None argument after * must be an iterable , \
not function
>> > h ( * * h )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * * must be a mapping , not function
TypeError : test . test_extcall . h ( ) argument after * * must be a mapping , not function
>> > h ( * * [ ] )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * * must be a mapping , not list
TypeError : test . test_extcall . h ( ) argument after * * must be a mapping , not list
>> > h ( a = 1 , * * h )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * * must be a mapping , not function
TypeError : test . test_extcall . h ( ) argument after * * must be a mapping , not function
>> > h ( a = 1 , * * [ ] )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * * must be a mapping , not list
TypeError : test . test_extcall . h ( ) argument after * * must be a mapping , not list
>> > h ( * * { ' a ' : 1 } , * * h )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * * must be a mapping , not function
TypeError : test . test_extcall . h ( ) argument after * * must be a mapping , not function
>> > h ( * * { ' a ' : 1 } , * * [ ] )
Traceback ( most recent call last ) :
. . .
TypeError : h ( ) argument after * * must be a mapping , not list
TypeError : test . test_extcall . h ( ) argument after * * must be a mapping , not list
>> > dir ( * * h )
Traceback ( most recent call last ) :
@ -309,7 +309,7 @@ not function
>> > nothing ( * * h )
Traceback ( most recent call last ) :
. . .
TypeError : NoneType object argument after * * must be a mapping , \
TypeError : None argument after * * must be a mapping , \
not function
>> > dir ( b = 1 , * * { ' b ' : 1 } )
@ -351,17 +351,17 @@ Test a kwargs mapping with duplicated keys.
>> > g ( * * MultiDict ( [ ( ' x ' , 1 ) , ( ' x ' , 2 ) ] ) )
Traceback ( most recent call last ) :
. . .
TypeError : g ( ) got multiple values for keyword argument ' x '
TypeError : test . test_extcall . g ( ) got multiple values for keyword argument ' x '
>> > g ( a = 3 , * * MultiDict ( [ ( ' x ' , 1 ) , ( ' x ' , 2 ) ] ) )
Traceback ( most recent call last ) :
. . .
TypeError : g ( ) got multiple values for keyword argument ' x '
TypeError : test . test_extcall . g ( ) got multiple values for keyword argument ' x '
>> > g ( * * MultiDict ( [ ( ' a ' , 3 ) ] ) , * * MultiDict ( [ ( ' x ' , 1 ) , ( ' x ' , 2 ) ] ) )
Traceback ( most recent call last ) :
. . .
TypeError : g ( ) got multiple values for keyword argument ' x '
TypeError : test . test_extcall . g ( ) got multiple values for keyword argument ' x '
Another helper function