;
Ìâ"Ic               @   så   d  Z  d Z d Z d d l Z d d l m Z d „  Z d d d „ Z d	 „  Z d
 „  Z	 d d d d „Z
 d d d d „Z d d d „ Z d d d „ Z Gd „  d ƒ Z Gd „  d e j ƒ Z d „  Z e d k o e ƒ  n d S(   u?   Unit tests for the keyword only argument specified in PEP 3102.u	   Jiwon Seou   seojiwon at gmail dot comi    N(   u   run_unittestc             O   s   |  t  | ƒ t  | j ƒ  ƒ S(   N(   u   sumu   values(   u   pos_arg1u   argu   kwarg(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   posonly_sum   s    u   k1c             C   s   |  | S(   N(    (   u   k1u   k2(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   keywordonly_sum   s    c             C   s   |  | S(   N(    (   u   k1u   k2(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   keywordonly_nodefaults_sum   s    c             K   s   |  | t  | j ƒ  ƒ S(   N(   u   sumu   values(   u   k1u   k2u   kwarg(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   keywordonly_and_kwarg_sum   s    u   k2c            G   s   |  | | | t  | ƒ S(   N(   u   sum(   u   au   bu   k1u   k2u   arg(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   mixedargs_sum   s    c            O   s*   |  | | | t  | ƒ t  | j ƒ  ƒ S(   N(   u   sumu   values(   u   au   bu   k1u   k2u   argu   kwargs(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   mixedargs_sum2   s    u   reversec             G   s   t  t | ƒ d |  ƒS(   Nu   reverse(   u   sortedu   list(   u   reverseu   nums(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   sortnum   s    c             O   s   t  t | ƒ d |  ƒS(   Nu   reverse(   u   sortedu   list(   u   reverseu   wordsu   kwargs(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu	   sortwords   s    c             B   s/   |  Ee  Z d  d d „ Z d „  Z d „  Z d S(   u   k2i    c            C   s   | |  _  | |  _ d  S(   N(   u   k1u   k2(   u   selfu   k1u   k2(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   __init__   s    	c            C   s   | |  _  | |  _ d  S(   N(   u   k1u   k2(   u   selfu   p1u   k1u   k2(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   set"   s    	c             C   s   |  j  |  j S(   N(   u   k1u   k2(   u   self(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   sum%   s    N(   u   __name__u
   __module__u   __init__u   setu   sum(   u
   __locals__(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   Foo   s   
	u   Fooc             B   sV   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d S(	   c             C   s    d „  } |  j  t | | ƒ d  S(   Nc             S   s   t  |  d d ƒ d  S(   Nu   <test>u   single(   u   compile(   u   s(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   shouldRaiseSyntaxError*   s    (   u   assertRaisesu   SyntaxError(   u   selfu   codestru   shouldRaiseSyntaxError(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   assertRaisesSyntaxError)   s    	c             C   sl   |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ |  j  d ƒ d  S(	   Nu   def f(p, *):
  pass
u   def f(p1, *, p1=100):
  pass
u   def f(p1, *k1, k1=100):
  pass
u!   def f(p1, *, k1, k1=100):
  pass
u   def f(p1, *, **k1):
  pass
u   def f(p1, *, k1, **k1):
  pass
u!   def f(p1, *, None, **k1):
  pass
u$   def f(p, *, (k1, k2), **kw):
  pass
(   u   assertRaisesSyntaxError(   u   self(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu$   testSyntaxErrorForFunctionDefinition.   s    c          
   C   sÍ   d } x" t  d ƒ D] } | d | 7} q W| d 7} |  j | ƒ d } x" t  d ƒ D] } | d | 7} qU W| d 7} |  j | ƒ d } x" t  d ƒ D] } | d | 7} q— W| d 7} t | d	 d
 ƒ d  S(   Nu   def f(iÿ   u   i%d, u   *, key=100):
 pass
u   def foo(i,*,u   lastarg):
  pass
u
   def f(i,*,iý   u   <test>u   single(   u   rangeu   assertRaisesSyntaxErroru   compile(   u   selfu   fundefu   iu   fundef2u   fundef3(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   testSyntaxForManyArguments8   s$     
 
 
c             C   s   |  j  d ƒ |  j  d ƒ d  S(   Nu   f(p, k=1, p2)u   f(p, k1=50, *(1,2), k1=100)(   u   assertRaisesSyntaxError(   u   self(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   testSyntaxErrorForFunctionCallL   s    c             C   s­   |  j  t t d ƒ |  j  t t d ƒ |  j  t t d	 ƒ y$ t d d d d ƒ |  j d ƒ Wn t k
 o Yn Xy t d d ƒ |  j d ƒ Wn t k
 o Yn Xd  S(
   Nu   k2id   u   non_existing_argiÈ   u   should raise TypeErrori   (    (    (    (   u   assertRaisesu	   TypeErroru   keywordonly_sumu   keywordonly_nodefaults_sumu   Foou   fail(   u   self(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu2   testRaiseErrorFuncallWithUnexpectedKeywordArgumentP   s    c             C   s¨  |  j  d t d ƒ ƒ |  j  d t d i d d 6 ƒ |  j  d t d d Œ ƒ |  j  d t d d i d d 6Ž ƒ |  j  d t d d ƒ ƒ |  j  d t d d d d ƒ ƒ |  j  d t d d d d ƒ ƒ |  j  d t d d d d d	 d ƒ ƒ |  j  d t d d d d i d d
 6d d 6 ƒ |  j  d  t d d d ƒƒ |  j  d" t d d d d ƒƒ |  j  d% t d d d d d d ƒƒ |  j  d) t d d d d d d d ƒƒ |  j  d* t d d d ƒƒ |  j  d, t d d d d ƒƒ |  j  d/ t d d d d d d ƒƒ |  j  d3 t d d d d d d d ƒƒ |  j  d8 t d d d d d d d d	 d ƒƒ |  j  d= t d d d d d i d d 6d d	 6ƒ |  j  d t d d ƒ j ƒ  ƒ |  j  d> t d d d d ƒ j ƒ  ƒ |  j  d d d g t d d d ƒ ƒ |  j  d d d g t d d d d d? ƒƒ |  j  d
 d d g t
 d
 d d ƒ ƒ |  j  d d d
 g t
 d
 d d d d? ƒƒ |  j  d d d
 g t
 d
 d d d d? d d ƒƒ d  S(@   Ni   i   u   2i   i   u   4u   k2u   k1u   k3u   au   bi   i   u   reverseu   cu   ignorei   i   i   (   i   i   i   i   i
   (   i   i   i   i   i   i   i   i   i
   i   i   i   i   i   i
   i   i   i
   i   i   i   i   i   i   i
   i   i   i
   i   i   i   i
   i   i   i   i   i
   i   i   i   T(   u   assertEqualsu   posonly_sumu   keywordonly_sumu   keywordonly_and_kwarg_sumu   mixedargs_sumu   mixedargs_sum2u   Foou   sumu   sortnumu   Trueu	   sortwords(   u   self(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   testFunctionCall_   s>     #%	%(%(	%	*%%+%+c          
   C   sŽ   d d d d „} |  j  d | j j ƒ |  j  i d d 6| j ƒ i d d 6| _ y! | d d d ƒ|  j d ƒ Wn t k
 o Yn Xd  S(	   Nu   k2i    c            S   s   |  | | | S(   N(    (   u   p1u   p2u   k1u   k2(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   fooˆ   s    i   u   k1i   i
   u&   __kwdefaults__ is not properly changed(   u   assertEqualsu   __code__u   co_kwonlyargcountu   __kwdefaults__u   failu	   TypeError(   u   selfu   foo(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   testKwDefaults‡   s    c             C   s€   Gd „  d ƒ } |  j  | ƒ  j d d d d ƒ d ƒ |  j  | j | ƒ  d d d d ƒd ƒ |  j t | j d d d d ƒd  S(	   Nc             B   s#   |  Ee  Z d  d d d d „ Z d S(   u   k1i   u   k2i   c            S   s
   | | f S(   N(    (   u   selfu   k1u   k2(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   f–   s    N(   u   __name__u
   __module__u   f(   u
   __locals__(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   Example•   s   
u   Exampleu   k1i   u   k2i   (   i   i   (   i   i   (   u   assertEqualu   fu   assertRaisesu	   TypeError(   u   selfu   Example(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   test_kwonly_methods”   s    %(N(
   u   __name__u
   __module__u   assertRaisesSyntaxErroru$   testSyntaxErrorForFunctionDefinitionu   testSyntaxForManyArgumentsu   testSyntaxErrorForFunctionCallu2   testRaiseErrorFuncallWithUnexpectedKeywordArgumentu   testFunctionCallu   testKwDefaultsu   test_kwonly_methods(   u
   __locals__(    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   KeywordOnlyArgTestCase(   s   
		
				(	u   KeywordOnlyArgTestCasec               C   s   t  t ƒ d  S(   N(   u   run_unittestu   KeywordOnlyArgTestCase(    (    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu	   test_main   s    u   __main__F(   u   __doc__u
   __author__u	   __email__u   unittestu   test.supportu   run_unittestu   posonly_sumu   keywordonly_sumu   keywordonly_nodefaults_sumu   keywordonly_and_kwarg_sumu   mixedargs_sumu   mixedargs_sum2u   Falseu   sortnumu	   sortwordsu   Foou   TestCaseu   KeywordOnlyArgTestCaseu	   test_mainu   __name__(    (    (    u5   /mit/python/lib/python3.0/test/test_keywordonlyarg.pyu   <module>   s"   			
u	