ó
­«Y]c           @   s…  d  d l  Z  d  d l Z d  d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e	 f d „  ƒ  YZ
 d e
 f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e f d „  ƒ  YZ d e
 f d „  ƒ  YZ d e	 f d „  ƒ  YZ d e j f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e j f d „  ƒ  YZ d „  Z e d  k re ƒ  n  d S(!   iÿÿÿÿN(   t   run_unittestt   PropertyBasec           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s#   lib/python2.7/test/test_property.pyR      s   t   PropertyGetc           B   s   e  Z RS(    (   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR      s   t   PropertySetc           B   s   e  Z RS(    (   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR      s   t   PropertyDelc           B   s   e  Z RS(    (   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR      s   t	   BaseClassc           B   sD   e  Z d  „  Z e d „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z RS(   c         C   s   d |  _  d  S(   Ni   (   t   _spam(   t   self(    (    s#   lib/python2.7/test/test_property.pyt   __init__   s    c         C   s   |  j  S(   s   BaseClass.getter(   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyt   spam   s    c         C   s   | |  _  d  S(   N(   R   (   R	   t   value(    (    s#   lib/python2.7/test/test_property.pyR      s    c         C   s
   |  `  d  S(   N(   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   !   s    (   R   R   R
   t   propertyR   t   settert   deleter(    (    (    s#   lib/python2.7/test/test_property.pyR      s   	t   SubClassc           B   sA   e  Z e j j d  „  ƒ Z e j d „  ƒ Z e j d „  ƒ Z RS(   c         C   s   t  |  j ƒ ‚ d S(   s   SubClass.getterN(   R   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   '   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R   R   (   R	   R   (    (    s#   lib/python2.7/test/test_property.pyR   ,   s    c         C   s   t  |  j ƒ ‚ d  S(   N(   R   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   0   s    (   R   R   R   R   t   getterR   R   (    (    (    s#   lib/python2.7/test/test_property.pyR   %   s   t   PropertyDocBasec           B   s)   e  Z d  Z d „  Z e e d d ƒZ RS(   i   c         C   s   |  j  S(   N(   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyt	   _get_spam6   s    t   docs   spam spam spam(   R   R   R   R   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR   4   s   	t   PropertyDocSubc           B   s   e  Z e j j d  „  ƒ Z RS(   c         C   s   |  j  S(   s*   The decorator does not use this doc string(   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   ;   s    (   R   R   R   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR   :   s   t   PropertySubNewGetterc           B   s   e  Z e j j d  „  ƒ Z RS(   c         C   s   d S(   s   new docstringi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   A   s    (   R   R   R   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR   @   s   t   PropertyNewGetterc           B   s)   e  Z e d  „  ƒ Z e j d „  ƒ Z RS(   c         C   s   d S(   s   original docstringi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   G   s    c         C   s   d S(   s   new docstringi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   K   s    (   R   R   R   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR   F   s   t   PropertyTestsc           B   s˜   e  Z d  „  Z d „  Z e j e j j d k d ƒ d „  ƒ Z	 e j e j j d k d ƒ d „  ƒ Z
 d „  Z e j e j j d k d ƒ d „  ƒ Z RS(   c         C   sÌ   t  ƒ  } |  j | j d ƒ |  j | j d ƒ d | _ |  j | j d ƒ |  j | j d ƒ t | d ƒ |  j t | d ƒ ƒ |  j t | d ƒ ƒ d | _ |  j | j d ƒ |  j | j d ƒ d  S(   Ni   i
   R   R   i   (   R   t   assertEqualR   R   t   delattrt
   assertTruet   hasattr(   R	   t   base(    (    s#   lib/python2.7/test/test_property.pyt!   test_property_decorator_baseclassQ   s    			c         C   sR   t  ƒ  } |  j t t | d ƒ |  j t t | d d  ƒ |  j t t | d ƒ d  S(   NR   (	   R   t   assertRaisesR   t   getattrR   t   setattrt   NoneR   R   (   R	   t   sub(    (    s#   lib/python2.7/test/test_property.pyt    test_property_decorator_subclass`   s    	i   s)   Docstrings are omitted with -O2 and abovec         C   s&   t  ƒ  } |  j | j j j d ƒ d  S(   Ns   SubClass.getter(   R   R   t	   __class__R   t   __doc__(   R	   R#   (    (    s#   lib/python2.7/test/test_property.pyt$   test_property_decorator_subclass_docg   s    	c         C   s&   t  ƒ  } |  j | j j j d ƒ d  S(   Ns   BaseClass.getter(   R   R   R%   R   R&   (   R	   R   (    (    s#   lib/python2.7/test/test_property.pyt%   test_property_decorator_baseclass_docm   s    	c         C   sH   t  ƒ  } t ƒ  } |  j | j j j d ƒ |  j | j j j d ƒ d  S(   Ns   spam spam spam(   R   R   R   R%   R   R&   (   R	   R   R#   (    (    s#   lib/python2.7/test/test_property.pyt   test_property_decorator_docs   s    		c         C   sn   t  ƒ  } |  j | j d ƒ |  j | j j j d ƒ t ƒ  } |  j | j d ƒ |  j | j j j d ƒ d  S(   Ni   s   new docstringi   (   R   R   R   R%   R&   R   (   R	   t   newgettersubt	   newgetter(    (    s#   lib/python2.7/test/test_property.pyt!   test_property_getter_doc_overridey   s    		(   R   R   R   R$   t   unittestt   skipIft   syst   flagst   optimizeR'   R(   R)   R,   (    (    (    s#   lib/python2.7/test/test_property.pyR   P   s   			t   PropertySubc           B   s   e  Z d  Z RS(   s   This is a subclass of property(   R   R   R&   (    (    (    s#   lib/python2.7/test/test_property.pyR2   …   s   t   PropertySubSlotsc           B   s   e  Z d  Z d Z RS(   s5   This is a subclass of property that defines __slots__(    (   R   R   R&   t	   __slots__(    (    (    s#   lib/python2.7/test/test_property.pyR3   ˆ   s   t   PropertySubclassTestsc           B   s†   e  Z d  „  Z e j e j j d k d ƒ d „  ƒ Z e j e j j d k d ƒ d „  ƒ Z	 e j e j j d k d ƒ d „  ƒ Z
 RS(   c         C   s>   y d t  f d „  ƒ  Y} Wn t k
 r- n Xt d ƒ ‚ d  S(   Nt   Fooc           B   s   e  Z e d  „  ƒ Z RS(   c         S   s   d S(   s5   Trying to copy this docstring will raise an exceptioni   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   ‘   s    (   R   R   R3   R   (    (    (    s#   lib/python2.7/test/test_property.pyR6      s   s   AttributeError not raised(   t   objectt   AttributeErrort	   Exception(   R	   R6   (    (    s#   lib/python2.7/test/test_property.pyt#   test_slots_docstring_copy_exceptionŽ   s
    i   s)   Docstrings are omitted with -O2 and abovec         C   s0   d t  f d „  ƒ  Y} |  j | j j d ƒ d  S(   NR6   c           B   s   e  Z e d  „  ƒ Z RS(   c         S   s   d S(   s!   spam wrapped in property subclassi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   ž   s    (   R   R   R2   R   (    (    (    s#   lib/python2.7/test/test_property.pyR6      s   s!   spam wrapped in property subclass(   R7   R   R   R&   (   R	   R6   (    (    s#   lib/python2.7/test/test_property.pyt   test_docstring_copyš   s    	c            sÒ   d t  f d „  ƒ  Y‰  ˆ  ƒ  } |  j | j d ƒ d | _ |  j | j d ƒ |  j ˆ  j j d ƒ d ˆ  f ‡  f d †  ƒ  Y} | ƒ  } |  j | j d ƒ d | _ |  j | j d	 ƒ |  j | j j d ƒ d  S(
   NR6   c           B   s2   e  Z d  „  Z e d „  ƒ Z e j d „  ƒ Z RS(   c         S   s   d |  _  d  S(   Ni   (   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyR
   ª   t    c         S   s   |  j  S(   s!   spam wrapped in property subclass(   R   (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   «   s    c         S   s   | |  _  d S(   s   this docstring is ignoredN(   R   (   R	   R   (    (    s#   lib/python2.7/test/test_property.pyR   ¯   s    (   R   R   R
   R2   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR6   ©   s   	i   i   s!   spam wrapped in property subclasst   FooSubc              s   e  Z ˆ  j j d  „  ƒ Z RS(   c         S   s   d |  _  d S(   s   another ignored docstringt   eggsN(   R   (   R	   R   (    (    s#   lib/python2.7/test/test_property.pyR   »   s    (   R   R   R   R   (    (   R6   (    s#   lib/python2.7/test/test_property.pyR=   º   s   i   R>   (   R7   R   R   R&   (   R	   t   fooR=   t   foosub(    (   R6   s#   lib/python2.7/test/test_property.pyt,   test_property_setter_copies_getter_docstring¦   s     
						c            sx   d t  f d „  ƒ  Y} |  j | j j d ƒ d t  f d „  ƒ  Y‰  d ˆ  f ‡  f d †  ƒ  Y} |  j | j j d ƒ d  S(   NR6   c           B   s)   e  Z e d  „  ƒ Z e j d „  ƒ Z RS(   c         S   s   d S(   s   a docstringi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   Ì   s    c         S   s   d S(   s   a new docstringi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   Ð   s    (   R   R   R2   R   R   (    (    (    s#   lib/python2.7/test/test_property.pyR6   Ë   s   s   a new docstringt   FooBasec           B   s   e  Z e d  „  ƒ Z RS(   c         S   s   d S(   s   a docstringi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   Ö   s    (   R   R   R2   R   (    (    (    s#   lib/python2.7/test/test_property.pyRB   Õ   s   t   Foo2c              s   e  Z ˆ  j j d  „  ƒ Z RS(   c         S   s   d S(   s   a new docstringi   (    (   R	   (    (    s#   lib/python2.7/test/test_property.pyR   Û   s    (   R   R   R   R   (    (   RB   (    s#   lib/python2.7/test/test_property.pyRC   Ú   s   (   R7   R   R   R&   (   R	   R6   RC   (    (   RB   s#   lib/python2.7/test/test_property.pyt&   test_property_new_getter_new_docstringÇ   s
    	(   R   R   R:   R-   R.   R/   R0   R1   R;   RA   RD   (    (    (    s#   lib/python2.7/test/test_property.pyR5   Œ   s   	 c           C   s   t  t t ƒ d  S(   N(   R    R   R5   (    (    (    s#   lib/python2.7/test/test_property.pyt	   test_mainã   s    t   __main__(   R/   R-   t   test.test_supportR    R9   R   R   R   R   R7   R   R   R   R   R   R   t   TestCaseR   R   R2   R3   R5   RE   R   (    (    (    s#   lib/python2.7/test/test_property.pyt   <module>   s&   
5W	