ó
ç'ÊUc           @   sd   d  d l  Z  d  d l m Z m Z d  d l Z d e  j f d „  ƒ  YZ e d k r` e  j ƒ  n  d S(   iÿÿÿÿN(   t   Itemt   Fieldt   ItemTestc           B   s¤   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   |  j  t | ƒ t | ƒ | ƒ S(   N(   t   assertEqualt   sorted(   t   selft   firstt   secondt   msg(    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   assertSortedEqual	   s    c         C   sA   d t  f d „  ƒ  Y} | ƒ  } d | d <|  j | d d ƒ d  S(   Nt   TestItemc           B   s   e  Z e ƒ  Z RS(    (   t   __name__t
   __module__R   t   name(    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
      s   u   nameR   (   R    R   (   R   R
   t   i(    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_simple   s    	
c         C   sÄ   d t  f d „  ƒ  Y} | ƒ  } |  j t | j d ƒ | d d ƒ } |  j | d d ƒ | i d d 6ƒ } |  j | d d ƒ | | ƒ } |  j | d d ƒ |  j t | i d d 6d d 6ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
      s   R   u   john doeu   foot   other(   R    t   assertRaisest   KeyErrort   __getitem__R   (   R   R
   R   t   i2t   i3t   i4(    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt	   test_init   s    	c         C   sR   d t  f d „  ƒ  Y} | ƒ  } |  j t | j d d ƒ |  j t | j d ƒ d  S(   NR
   c           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   (   s   t   fieldt   text(   R    R   R   t   __setitem__R   (   R   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_invalid_field'   s    	c         C   s£   d t  f d „  ƒ  Y} | ƒ  } d | d <d | d <t | ƒ } t j r[ |  j | d ƒ n |  j | d ƒ t | ƒ } |  j | d d	 ƒ |  j | d d ƒ d  S(
   NR
   c           B   s   e  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   R   t   number(    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   0   s   	u   John DoeR   i{   R   s$   {'name': u'John Doe', 'number': 123}s#   {'name': 'John Doe', 'number': 123}s   John Doe(   R    t   reprt   sixt   PY2R   t   eval(   R   R
   R   t   itemreprR   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt	   test_repr/   s    	

		
	c         C   s?   d t  f d „  ƒ  Y} | ƒ  } d | _ |  j | j d ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   E   s   t   test(   R    t   _privateR   (   R   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_private_attrD   s    		c         C   s9   d t  f d „  ƒ  Y} | ƒ  } |  j t t | d ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   M   s   R   (   R    R   t   AttributeErrort   getattr(   R   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_raise_getattrL   s    	c         C   s<   d t  f d „  ƒ  Y} | ƒ  } |  j t t | d d ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   T   s   R   t   john(   R    R   R&   t   setattr(   R   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_raise_setattrS   s    	c         C   sy   d t  f d „  ƒ  Y} | ƒ  } |  j t | j ƒ d | d <|  j | j ƒ  d ƒ | j d ƒ |  j | j ƒ  d ƒ d  S(   NR
   c           B   s#   e  Z e ƒ  Z d  „  Z d „  Z RS(   c         S   s   |  d S(   NR   (    (   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   get_name^   s    c         S   s   | |  d <d  S(   NR   (    (   R   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   change_namea   s    (   R   R   R   R   R,   R-   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   [   s   		u   lalaR   u   otherR   (   R    R   R   R,   R   R-   (   R   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_custom_methodsZ   s    		
c         C   sÉ   d t  f d „  ƒ  Y} | ƒ  } d | d <|  j t | j ƒ  ƒ d g ƒ |  j t | j ƒ  ƒ d g ƒ d | d <d | d	 <|  j t | j ƒ  ƒ d d	 d g ƒ |  j t | j ƒ  ƒ d d d g ƒ d  S(
   NR
   c           B   s#   e  Z e ƒ  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   R   t   keyst   values(    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   l   s   		u   JohnR   t   Johnu   KeysR/   u   ValuesR0   (   R    R   t   listR/   R0   R	   (   R   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_metaclassk   s    	


%c         C   sg   d t  f d „  ƒ  Y} | d d ƒ } |  j t | j ƒ  ƒ d g ƒ |  j t | j ƒ  ƒ d g ƒ d  S(   NR
   c           B   s   e  Z i e d  d ƒ d 6Z RS(   t   defaultt   Xt   new(   R   R   R   t   fields(    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   |   s   R6   u   New(   R    R	   R2   R/   R0   (   R   R
   t   item(    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt$   test_metaclass_with_fields_attribute{   s    c         C   s   d t  f d „  ƒ  Y} d | f d „  ƒ  Y} | ƒ  } d | d <|  j t | j ƒ  ƒ d g ƒ |  j t | j ƒ  ƒ d g ƒ d  S(   Nt   BaseItemc           B   s#   e  Z e ƒ  Z e ƒ  Z e ƒ  Z RS(    (   R   R   R   R   R/   R0   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR:   „   s   		R
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R/   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   ‰   s   i   R/   (   R    R   R2   R/   R0   (   R   R:   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_metaclass_inheritanceƒ   s    	
c         C   sM  d t  f d „  ƒ  Y} d | f d „  ƒ  Y} d t  f d „  ƒ  Y} d | | f d „  ƒ  Y} | d	 d
 d d ƒ } |  j | d	 d
 ƒ |  j | d d ƒ |  j | j i i d d 6d 6i d d 6d	 6ƒ d | | f d „  ƒ  Y} |  j | d	 d
 ƒ d	 d
 ƒ |  j | d d
 ƒ d d
 ƒ |  j | j i i d d 6d 6i d d 6d	 6ƒ d  S(   Nt   Ac           B   s-   e  Z i e d  d ƒ d 6Z e d  d ƒ Z RS(   R4   R<   t   load(   R   R   R   R7   t   save(    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR<   ’   s   t   Bc           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR?   –   s    t   Cc           B   s-   e  Z i e d  d ƒ d 6Z e d  d ƒ Z RS(   R4   R@   R=   (   R   R   R   R7   R>   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR@   ˜   s   t   Dc           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyRA   œ   s    R>   R5   R=   t   YR4   t   Ec           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyRC   ¥   s    (   R    R   R7   (   R   R<   R?   R@   RA   R8   RC   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt*   test_metaclass_multiple_inheritance_simple‘   s    c         C   sf  d t  f d „  ƒ  Y} d | f d „  ƒ  Y} d | f d „  ƒ  Y} d | | f d „  ƒ  Y} |  j | d	 d
 ƒ d	 d
 ƒ |  j | d d
 ƒ d d
 ƒ |  j | j i i d d 6d	 6i d d 6d 6i d d 6d 6ƒ d | | f d „  ƒ  Y} |  j | d	 d
 ƒ d	 d
 ƒ |  j | d d
 ƒ d d
 ƒ |  j | j i i d d 6d	 6i d d 6d 6i d d 6d 6ƒ d  S(   NR<   c           B   s<   e  Z i e d  d ƒ d 6Z e d  d ƒ Z e d  d ƒ Z RS(   R4   R<   t   update(   R   R   R   R7   R>   R=   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR<   ­   s   R?   c           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR?   ²   s    R@   c           B   s-   e  Z i e d  d ƒ d 6Z e d  d ƒ Z RS(   R4   R@   RE   (   R   R   R   R7   R>   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR@   ´   s   RA   c           B   s-   e  Z i e d  d ƒ d 6Z e d  d ƒ Z RS(   R4   RA   RE   (   R   R   R   R7   R=   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyRA   ¸   s   R>   R5   R=   R4   RE   RC   c           B   s   e  Z e d  d ƒ Z RS(   R4   RC   (   R   R   R   R=   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyRC   Â   s   (   R    R   R7   (   R   R<   R?   R@   RA   RC   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt+   test_metaclass_multiple_inheritance_diamond¬   s     c         C   s<  d t  f d „  ƒ  Y} d | f d „  ƒ  Y} d t f d „  ƒ  Y} d | | f d „  ƒ  Y} |  j t | d	 d
 ƒ|  j | d d ƒ d d ƒ |  j | j i i d d 6d 6i d d 6d 6ƒ d | | f d „  ƒ  Y} |  j t | d	 d
 ƒ|  j | d d ƒ d d ƒ |  j | j i i d d 6d 6i d d 6d 6ƒ d  S(   NR<   c           B   s-   e  Z i e d  d ƒ d 6Z e d  d ƒ Z RS(   R4   R<   R=   (   R   R   R   R7   R>   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR<   Ë   s   R?   c           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR?   Ï   s    R@   c           B   s<   e  Z i e d  d ƒ d 6Z e d  d ƒ Z e d  d ƒ Z RS(   R4   R@   R=   t   not_allowed(   R   R   R   R7   RG   R>   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR@   Ñ   s   RA   c           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyRA   Ö   s    RG   t   valueR>   R5   R4   R=   RC   c           B   s   e  Z RS(    (   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyRC   Þ   s    (   R    t   objectR   R   R   R7   (   R   R<   R?   R@   RA   RC   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt5   test_metaclass_multiple_inheritance_without_metaclassÊ   s    c         C   sJ   d t  f d „  ƒ  Y} | ƒ  } d | d <|  j t | ƒ i d d 6ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   æ   s   u   JohnR   (   R    R   t   dict(   R   R
   R   (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   test_to_dictå   s    	
c         C   s   d t  f d „  ƒ  Y} | i d d 6ƒ } | j ƒ  } |  j t | ƒ t | ƒ ƒ | d j ƒ  | d <|  j | d | d ƒ d  S(   NR
   c           B   s   e  Z e ƒ  Z RS(    (   R   R   R   R   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR
   î   s   t   lowerR   (   R    t   copyt   assertNotEqualt   idt   upper(   R   R
   R8   t   copied_item(    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt	   test_copyí   s    N(   R   R   t   NoneR	   R   R   R   R"   R%   R(   R+   R.   R3   R9   R;   RD   RF   RJ   RL   RS   (    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyR      s"   															t   __main__(	   t   unittestt   scrapy.itemR    R   R   t   TestCaseR   R   t   main(    (    (    s3   /home/travis/build/scrapy/scrapy/tests/test_item.pyt   <module>   s
   ð