;
"Ic               @   s   d  d l  m Z d  d l Z d  d l Z Gd   d e j  Z Gd   d e  Z Gd   d e  Z Gd	   d
 e  Z Gd   d e  Z	 Gd   d e  Z
 d   Z e d k o e   n d S(   i    (   u   supportNc             B   s    |  Ee  Z d    Z d   Z d S(   c             C   s;   Gd   d  } d   } |   |  _  | |  _ | |  _ d  S(   Nc             B   s   |  Ee  Z d    Z d S(   c             S   s   d  S(   N(    (   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   a   s    N(   u   __name__u
   __module__u   a(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   F   s   
u   Fc               S   s   d S(   Ni   (    (    (    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   b
   s    (   u   fiu   Fu   b(   u   selfu   Fu   b(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   setUp   s
    		c             C   s   y t  | | |  Wn | k
 o Yn X|  j d | | f  y t | |  Wn | k
 o Yn X|  j d |  d  S(   Nu!   shouldn't be able to set %s to %ru   shouldn't be able to del %s(   u   setattru   failu   delattr(   u   selfu   obju   nameu   valueu
   exceptions(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   cannot_set_attr   s    N(   u   __name__u
   __module__u   setUpu   cannot_set_attr(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   FuncAttrsTest   s   
	
u   FuncAttrsTestc             B   s_   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	 S(
   c             C   s   |  j  |  j j t  d  S(   N(   u   assertEqualu   bu
   __module__u   __name__(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_module!   s    c             C   s`   d |  j  _ |  j d t |  j   k d  d |  j j _ |  j d t |  j j  k d  d  S(   Ni   u
   known_attru+   set attributes not in dir listing of methoduE   set attribute on function implementations, should show up in next dir(   u   bu
   known_attru   assert_u   diru   Fu   au   fi(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_dir_includes_correct_attrs$   s
    c             C   s    d   } |  j  |  j |  d  S(   Nc               S   s   d S(   u   my docstringi   (    (    (    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu	   duplicate/   s    (   u   assertNotEqualu   b(   u   selfu	   duplicate(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu    test_duplicate_function_equality-   s    	c             C   sB   d   } |  j  |   d   |  j j | _ |  j  |   d  d  S(   Nc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test5   s    i   (   u   assertEqualu   Noneu   bu   __code__(   u   selfu   test(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_copying___code__4   s    	c             C   s<   |  j  |  j j t    |  j |  j d d t t f  d  S(   Nu   __globals__i   (   u   assertEqualu   bu   __globals__u   globalsu   cannot_set_attru   AttributeErroru	   TypeError(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test___globals__:   s    c             C   s   |  j  |  j j d  d |  j _ |  j  |  j j d  d |  j _ |  j  |  j j d  |  j |  j d d t  d } t | i i  d 6 |  j  |  j j j d  |  j |  j j d d t  d  S(	   Nu   bu   cu   du   __name__i   u   def f(): pass
f.__name__u   __builtins__u   a(	   u   assertEqualu   bu   __name__u   cannot_set_attru	   TypeErroru   execu   fiu   au   AttributeError(   u   selfu   s(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test___name__>   s    c                sQ  d	 \    d   } d   }   f d   }  f d   }    f d   } x9 | | | | | g D]" } |  j  t | j  t j  qd W|  j  |   d  |  j  |   d  | j | _ |  j  | j | j  |  j  |   d  y | j | _ Wn t k
 o Yn X|  j d  y | j | _ Wn t k
 o Yn X|  j d  d  S(
   Ni   i   c               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   aP   s    c               S   s   d S(   Ni   (    (    (    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   bQ   s    c                  s     S(   N(    (    (   u   num_one(    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   cR   s    c                  s     S(   N(    (    (   u   num_two(    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   dS   s    c                  s
      f S(   N(    (    (   u   num_oneu   num_two(    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   eT   s    uC   __code__ with different numbers of free vars should not be possible(   i   i   (   u   assertEqualu   typeu   __code__u   typesu   CodeTypeu
   ValueErroru   fail(   u   selfu   au   bu   cu   du   eu   func(    (   u   num_oneu   num_twou0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test___code__N   s4    		      c             C   s9   |  j  |  j j d   |  j ` |  j  |  j j d   d  S(   N(   u   assertEqualu   bu   __defaults__u   None(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_blank_func_defaultsh   s    	c             C   s   d   } d d d  } |  j  | j d   |  j  | j d	  d
 | _ |  j  | j d  |  j  |   d  |  j  | d  d  |  j  | d d  d  | ` |  j  | j d   y |   Wn t k
 o Yn X|  j d  d  S(   Nc             S   s   |  | S(   N(    (   u   au   b(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu
   first_funcn   s    i   i   c             S   s   |  | S(   N(    (   u   au   b(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   second_funcp   s    i   i   i   uF   func_defaults does not update; deleting it does not remove requirement(   i   i   (   i   i   (   i   i   (   u   assertEqualu   __defaults__u   Noneu	   TypeErroru   fail(   u   selfu
   first_funcu   second_func(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_func_default_argsm   s"    		  N(   u   __name__u
   __module__u   test_moduleu   test_dir_includes_correct_attrsu    test_duplicate_function_equalityu   test_copying___code__u   test___globals__u   test___name__u   test___code__u   test_blank_func_defaultsu   test_func_default_args(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   FunctionPropertiesTest   s   
									u   FunctionPropertiesTestc             B   s2   |  Ee  Z d    Z d   Z d   Z d   Z d S(   c             C   sB   |  j  |  j j j j |  j  |  j |  j j d |  j t  d  S(   Nu	   __class__(   u   assertEqualu   fiu   au   __self__u	   __class__u   Fu   cannot_set_attru	   TypeError(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test___class__   s    c             C   sE   |  j  |  j j j |  j j  |  j |  j j d |  j j t  d  S(   Nu   __func__(   u   assertEqualu   fiu   au   __func__u   Fu   cannot_set_attru   AttributeError(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test___func__   s    c             C   s?   |  j  |  j j j |  j  |  j |  j j d |  j t  d  S(   Nu   __self__(   u   assertEqualu   fiu   au   __self__u   cannot_set_attru   AttributeError(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test___self__   s    c             C   s   t  j t |  j  |  j _ |  j |  j j   t |  j   y |  j j j Wn t k
 o Yn X|  j d  |  j |  j j d d t  d  S(   Nu4   using unknown attributes should raise AttributeErroru   unknown_attri   (	   u   typesu
   MethodTypeu   idu   fiu   assertEqualu   unknown_attru   AttributeErroru   failu   cannot_set_attr(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test___func___non_method   s    "  N(   u   __name__u
   __module__u   test___class__u   test___func__u   test___self__u   test___func___non_method(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   ImplicitReferencesTest   s   
			u   ImplicitReferencesTestc             B   s)   |  Ee  Z d    Z d   Z d   Z d S(   c             C   s]   d |  j  _ |  j |  j  j d  y d |  j j _ Wn t k
 o Yn X|  j d  d  S(   Ni   u0   setting attributes on methods should raise error(   u   bu
   known_attru   assertEqualu   fiu   au   AttributeErroru   fail(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_set_attr   s      c             C   s5   y |  j  ` Wn t k
 o Yn X|  j d  d  S(   Nu1   deleting unknown attribute should raise TypeError(   u   bu   unknown_attru   AttributeErroru   fail(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_delete_unknown_attr   s
      c          	   C   sS   xL |  j  |  j j g D]5 } y | j Wn t k
 o Yq X|  j d  q Wd  S(   Nu4   using unknown attributes should raise AttributeError(   u   bu   fiu   au   non_existant_attru   AttributeErroru   fail(   u   selfu   func(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_unset_attr   s       N(   u   __name__u
   __module__u   test_set_attru   test_delete_unknown_attru   test_unset_attr(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   ArbitraryFunctionAttrTest   s   
		u   ArbitraryFunctionAttrTestc             B   s;   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d S(   c             C   s_   |  j  |  j d d  t  d d l m } | i d d 6 } |  j  |  j j j d | t  d  S(   Nu   __dict__i    (   u   UserDicti   u
   known_attr(	   u   cannot_set_attru   bu   Noneu	   TypeErroru   collectionsu   UserDictu   fiu   au   __func__(   u   selfu   UserDictu   d(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_setting_dict_to_invalid   s    c             C   s   i d d 6} | |  j  _ |  j | |  j  j  | |  j j _ |  j | |  j j j j  |  j | |  j j j  |  j |  j  j d  |  j |  j  j d d  |  j |  j j j j d  |  j |  j j j d  d  S(   Ni   u
   known_attr(   u   bu   __dict__u   assertEqualu   Fu   au   fiu   __func__u
   known_attr(   u   selfu   d(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_setting_dict_to_valid   s    c             C   s5   y |  j  ` Wn t k
 o Yn X|  j d  d  S(   Nu3   deleting function dictionary should raise TypeError(   u   bu   __dict__u	   TypeErroru   fail(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_delete___dict__   s
      c             C   s   |  j  |  j j i   d  S(   N(   u   assertEqualu   bu   __dict__(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_unassigned_dict   s    c             C   s4   d } i  } | | |  j  <|  j | |  j  |  d  S(   Nu   Some string(   u   bu   assertEqual(   u   selfu   valueu   d(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_func_as_dict_key   s    N(   u   __name__u
   __module__u   test_setting_dict_to_invalidu   test_setting_dict_to_validu   test_delete___dict__u   test_unassigned_dictu   test_func_as_dict_key(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   FunctionDictsTest   s
   
				u   FunctionDictsTestc             B   s    |  Ee  Z d    Z d   Z d S(   c             C   s   |  j  |  j j d   d } | |  j _ | |  j j _ |  j  |  j j |  |  j  |  j j j |  |  j |  j j d | t  d  S(   Nu   A test method that does nothingu   __doc__(	   u   assertEqualu   bu   __doc__u   Noneu   Fu   au   fiu   cannot_set_attru   AttributeError(   u   selfu   docstr(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_set_docstring_attr   s    c             C   s/   d |  j  _ |  j  ` |  j |  j  j d   d  S(   Nu   The docstring(   u   bu   __doc__u   assertEqualu   None(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   test_delete_docstring   s    	N(   u   __name__u
   __module__u   test_set_docstring_attru   test_delete_docstring(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   FunctionDocstringTest   s   
		u   FunctionDocstringTestc               C   s   t  j t t t t t  d  S(   N(   u   supportu   run_unittestu   FunctionPropertiesTestu   ImplicitReferencesTestu   ArbitraryFunctionAttrTestu   FunctionDictsTestu   FunctionDocstringTest(    (    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu	   test_main   s    u   __main__(   u   testu   supportu   typesu   unittestu   TestCaseu   FuncAttrsTestu   FunctionPropertiesTestu   ImplicitReferencesTestu   ArbitraryFunctionAttrTestu   FunctionDictsTestu   FunctionDocstringTestu	   test_mainu   __name__(    (    (    u0   /mit/python/lib/python3.0/test/test_funcattrs.pyu   <module>   s   b%	