ó
ç'ÊUc           @   sÈ   d  d l  Z  d  d l Z d  d l Z d  d l m Z m Z m Z d  d l m Z d d l	 m
 Z
 d e j f d „  ƒ  YZ d e j f d	 „  ƒ  YZ d
 e j f d „  ƒ  YZ e d k rÄ e j ƒ  n  d S(   iÿÿÿÿN(   t   Settingst   SettingsAttributet   CrawlerSettings(   t   mocki   (   t   default_settingst   SettingsAttributeTestc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   t  d d ƒ |  _ d  S(   Nt   valuei
   (   R   t	   attribute(   t   self(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   setUp   s    c         C   sC   |  j  j d d ƒ |  j |  j  j d ƒ |  j |  j  j d ƒ d  S(   Nt   value2i   (   R   t   sett   assertEqualR   t   priority(   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_set_greater_priority   s    c         C   sC   |  j  j d d ƒ |  j |  j  j d ƒ |  j |  j  j d ƒ d  S(   NR
   i
   (   R   R   R   R   R   (   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_set_equal_priority   s    c         C   sC   |  j  j d d ƒ |  j |  j  j d ƒ |  j |  j  j d ƒ d  S(   NR
   i    R   i
   (   R   R   R   R   R   (   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_set_less_priority   s    (   t   __name__t
   __module__R	   R   R   R   (    (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyR   
   s   			t   SettingsTestc           B   s  e  Z e j r e j j Z n  d  „  Z e	 j
 j d i d d 6ƒ e	 j
 d e ƒ d „  ƒ ƒ Z e	 j
 j d i  ƒ e	 j
 d i  ƒ 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   t  ƒ  |  _ d  S(   N(   R    t   settings(   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyR	   $   s    s#   scrapy.settings.SETTINGS_PRIORITIESi
   t   defaults    scrapy.settings.default_settingsc         C   s|   t  ƒ  } |  j t | j ƒ d ƒ |  j d | j ƒ | j d } |  j | t ƒ |  j | j d ƒ |  j | j d ƒ d  S(   Ni   t   TEST_DEFAULTt   defvaluei
   (	   R    R   t   lent
   attributest   assertInt   assertIsInstanceR   R   R   (   R   R   t   attr(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_initial_defaults'   s    	c         C   s‰   t  i d d 6d ƒ } |  j t | j ƒ d ƒ |  j d | j ƒ | j d } |  j | t ƒ |  j | j d ƒ |  j | j d ƒ d  S(   NR   t   TEST_OPTIONi
   i   (	   R    R   R   R   R   R   R   R   R   (   R   R   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_initial_values3   s    c         C   s‚   i  |  j  _ |  j  j d d d ƒ |  j d |  j  j ƒ |  j  j d } |  j | t ƒ |  j | j d ƒ |  j | j d ƒ d  S(   NR   R   i    (	   R   R   R   R   R   R   R   R   R   (   R   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_set_new_attribute?   s    c         C   sl   t  d d ƒ } i | d 6|  j _ |  j j d d d ƒ |  j d |  j j ƒ |  j | |  j j d ƒ d  S(   NR   i    R   t
   othervaluei
   (   R   R   R   R   R   t   assertIs(   R   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt$   test_set_instance_identity_on_updateI   s
    c         C   sÑ   t  j j t d ƒ ¶ } t  j j t d ƒ ˜ } t d d ƒ } i | d 6|  j _ | j ƒ  | j ƒ  xX d	 D]P } |  j j d d | ƒ | j d | ƒ |  j	 | j
 ƒ | j ƒ  | j ƒ  qm WWd  QXWd  QXd  S(
   Nt   __setattr__R   R   i
   R   i    i   R!   (   i    i
   i   (   R   t   patcht   objectR   R   R   t
   reset_mockR   t   assert_called_once_witht   assertFalset   called(   R   t   mock_setattrt   mock_setR   R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt4   test_set_calls_settings_attributes_methods_on_updateQ   s    


c      	   C   s–   t  j j |  j d ƒ x } |  j j i d d 6d d 6d ƒ |  j | j d ƒ t  j d d d ƒ t  j d d d ƒ g } | j | d t	 ƒWd  QXd  S(	   NR   t   value1t   TEST_1R
   t   TEST_2i
   i   t	   any_order(
   R   R%   R&   R   t   setdictR   t
   call_countt   callt   assert_has_callst   True(   R   R,   t   calls(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_setdict_aliasa   s    !c         C   s—   d d d „  ƒ  Y} i  |  j  _ |  j  j | ƒ  d ƒ |  j d |  j  j ƒ |  j d |  j  j ƒ |  j d |  j  j ƒ |  j t |  j  j ƒ d ƒ d  S(	   Nt
   ModuleMockc           B   s   e  Z d  Z d Z d Z RS(   R   R!   t   anothervalue(   R   R   t   UPPERCASE_VARt   MIXEDcase_VARt   lowercase_var(    (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyR9   j   s   i
   R;   R<   R=   i   (    (   R   R   t	   setmoduleR   t   assertNotInR   R   (   R   R9   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt'   test_setmodule_only_load_uppercase_varsi   s    c         C   sK   t  j j |  j d ƒ - } |  j j t d ƒ | j d d d ƒ Wd  QXd  S(   NR   i
   R   R   (   R   R%   R&   R   R>   R   t   assert_called_with(   R   R,   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_setmodule_aliasv   s    c         C   sà   i  |  j  _ |  j  j t d ƒ |  j  j j ƒ  } i  |  j  _ |  j  j d d ƒ |  j t j |  j  j ƒ t j | ƒ ƒ xa t t j	 |  j  j ƒ t j	 | ƒ ƒ D]8 \ } } |  j
 | j | j ƒ |  j
 | j | j ƒ q  Wd  S(   Ni
   s$   tests.test_settings.default_settings(   R   R   R>   R   t   copyt   assertItemsEqualt   sixt   iterkeyst   zipt
   itervaluesR   R   R   (   R   t   ctrl_attributesR   t	   ctrl_attr(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_setmodule_by_path{   s    	
c         C   sÃ  i d d 6t  d 6d d 6d d 6t d 6d	 d
 6d d 6d d 6d d 6d d 6d d g d 6d d 6d d 6i d d 6d d 6d 6d d  6} |  j } d! „  t j | ƒ Dƒ | _ |  j | j d ƒ ƒ |  j | j d ƒ ƒ |  j | j d ƒ ƒ |  j | j d" ƒ ƒ |  j | j d" t  ƒ ƒ |  j | j d ƒ ƒ |  j | j d ƒ ƒ |  j | j d
 ƒ ƒ |  j	 | j
 d ƒ d ƒ |  j	 | j
 d ƒ d ƒ |  j	 | j
 d# ƒ d	 ƒ |  j	 | j
 d# d$ ƒ d$ ƒ |  j	 | j d ƒ d ƒ |  j	 | j d ƒ d ƒ |  j	 | j d% ƒ d& ƒ |  j	 | j d% d' ƒ d' ƒ |  j	 | j d ƒ d d g ƒ |  j	 | j d ƒ d d g ƒ |  j	 | j d( ƒ g  ƒ |  j	 | j d( d) g ƒ d) g ƒ |  j	 | d d ƒ |  j	 | j d ƒ d ƒ |  j	 | d* d  ƒ |  j	 | j d* ƒ d  ƒ |  j	 | j d* d) ƒ d) ƒ |  j	 | j d ƒ i d d 6d d 6ƒ |  j	 | j d  ƒ i d d 6d d 6ƒ |  j	 | j d+ ƒ i  ƒ |  j	 | j d+ i d, d 6ƒ i d, d 6ƒ |  j t | j d ƒ d  S(-   Nt   1t   TEST_ENABLED1t   TEST_ENABLED2i   t   TEST_ENABLED3t   0t   TEST_DISABLED1t   TEST_DISABLED2i    t   TEST_DISABLED3i{   t	   TEST_INT1t   123t	   TEST_INT2gÍÌÌÌÌÜ^@t   TEST_FLOAT1s   123.45t   TEST_FLOAT2t   onet   twot
   TEST_LIST1s   one,twot
   TEST_LIST2R   t   TEST_STRt   val1t   key1i   t   ke2t
   TEST_DICT1s   {"key1": "val1", "ke2": 3}t
   TEST_DICT2c         S   s(   i  |  ] \ } } t  | d  ƒ | “ q S(   i    (   R   (   t   .0t   keyR   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pys
   <dictcomp>Ÿ   s   	 t   TEST_ENABLEDxt	   TEST_INTxi-   t   TEST_FLOATxg        g     €K@t
   TEST_LISTxR   t	   TEST_STRxt
   TEST_DICT3i   (   R6   t   FalseR   RE   t	   iteritemsR   t
   assertTruet   getboolR)   R   t   getintt   getfloatt   getlistt   gett   Nonet   getdictt   assertRaisest
   ValueError(   R   t   test_configurationR   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_getŒ   sb    
	"''*c         C   s  i t  d 6d d g d 6d d g d d g g d	 6} |  j j | ƒ |  j j ƒ  } |  j j d t ƒ |  j | j d ƒ ƒ |  j j d ƒ } | j d
 ƒ |  j	 | j d ƒ d d g ƒ |  j j d	 ƒ } | d j d ƒ |  j	 | j d	 ƒ d d d g ƒ d  S(   Nt	   TEST_BOOLRY   RZ   t	   TEST_LISTt	   first_onet	   first_twot
   second_onet
   second_twot   TEST_LIST_OF_LISTSt   threei    t   first_three(
   R6   R   R2   RC   R   Rk   Rm   Rr   t   appendt   assertListEqual(   R   t   valuesRC   t	   test_listt   test_list_of_lists(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt	   test_copyÁ   s     	c         C   sU   |  j  j ƒ  |  j t ƒ 3 } |  j  j d t ƒ |  j t | j ƒ d ƒ Wd  QXd  S(   NRy   s-   Trying to modify an immutable Settings object(	   R   t   freezeRu   t	   TypeErrorR   Rk   R   t   strt	   exception(   R   t   cm(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_freezeÖ   s
    c         C   s6   |  j  j ƒ  } |  j | j ƒ |  j | |  j  ƒ d  S(   N(   R   t
   frozencopyRm   t   frozent   assertIsNot(   R   RŽ   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_frozencopyÝ   s    c      	   C   sŠ  |  j  j d d d d ƒt j d t ƒ Y} d |  j  j d <|  j d t | d j ƒ ƒ |  j	 |  j  j
 d ƒ d ƒ |  j	 |  j  j j
 d ƒ d ƒ |  j d |  j  j ƒ |  j  j j d d	 ƒ |  j	 |  j  j
 d ƒ d	 ƒ |  j	 |  j  j j
 d ƒ d	 ƒ |  j  j j d d
 ƒ |  j	 |  j  j
 d ƒ d	 ƒ |  j  j j d d
 ƒ |  j	 |  j  j
 d ƒ d
 ƒ |  j	 |  j  j j
 d ƒ d
 ƒ Wd  QXd  S(   Nt   BARt   fuzR   t   cmdlinet   recordt   foos   Settings.overridesi    t   bust   fezt   FOO(   R   R   t   warningst   catch_warningsR6   t	   overridesR   RŠ   t   messageR   Rr   t   updatet
   setdefault(   R   t   w(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt#   test_deprecated_attribute_overridesâ   s    c      	   C   s¶   |  j  j d d d d ƒt j d t ƒ … } d |  j  j d <|  j d t | d j ƒ ƒ |  j	 |  j  j
 d ƒ d ƒ |  j	 |  j  j j
 d ƒ d ƒ |  j d |  j  j ƒ Wd  QXd  S(	   NR’   R“   R   R   R•   R–   s   Settings.defaultsi    (   R   R   Rš   R›   R6   t   defaultsR   RŠ   R   R   Rr   (   R   R    (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt"   test_deprecated_attribute_defaults÷   s    (   R   R   RE   t   PY3t   unittestt   TestCaset   assertCountEqualRD   R	   R   R%   t   dictR   R   R   R    R#   R-   R8   R@   RB   RK   Rx   R‡   R   R‘   R¡   R£   (    (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyR      s(   			
							5				t   CrawlerSettingsTestc           B   s   e  Z d  „  Z RS(   c      	   C   sõ   d  d „ } t j d t ƒ Ñ } | ƒ  } |  j d t | d j ƒ ƒ |  j | j d ƒ d ƒ d | j	 d <|  j | j d ƒ d ƒ | i d	 d 6ƒ } |  j | j d ƒ d
 ƒ | i d	 d 6ƒ } d | j
 d <|  j | j d ƒ d ƒ Wd  QXd  S(   Nc         S   s%   t  d t f |  p i  ƒ } t | ƒ S(   Nt   SettingsModuleMock(   t   typeR&   R   (   t   settings_dictt   settings_module(    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   _get_settings  s    R•   s   CrawlerSettings is deprecatedi    t   DOWNLOAD_TIMEOUTi´   t   99ic   t   3i   t   15i   (   Rs   Rš   R›   R6   R   RŠ   R   R   Ro   R¢   Rœ   (   R   R®   R    R   (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   test_deprecated_crawlersettings  s    	(   R   R   R³   (    (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyR©     s   t   __main__(   RE   R¥   Rš   t   scrapy.settingsR    R   R   t   testsR   t    R   R¦   R   R   R©   R   t   main(    (    (    s@   /home/travis/build/scrapy/scrapy/tests/test_settings/__init__.pyt   <module>   s   â