ó
mÜJ]c           @` sü   d  d l  m Z m Z m Z m Z d  d l Z e d  d l Z d  d l m Z d  d l	 m
 Z
 d  d l	 j Z e j j d ƒ rŽ e d ƒ ‚ n  d d d	 d
 d d g Z d Z d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ d „  Z d „  Z d S(   i    (   t   absolute_importt   divisiont   print_functiont   unicode_literalsN(   t   Model(   t   _get_cdn_urlsu   BOKEH_RESOURCESu2   Cannot run the unit tests with BOKEH_RESOURCES setu   traceu   debugu   infou   warnu   erroru   fatalu   Bokeh.set_log_level("info");c          C` s%   t  j ƒ  }  |  j d k s! t ‚ d  S(   Nu   inline(   t	   resourcest   JSResourcest   modet   AssertionError(   t   r(    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt(   test_js_resources_default_mode_is_inline1   s    c          C` s¤   t  j d d ƒ }  |  j d k s' t ‚ |  j t k s< t ‚ t |  j ƒ d k sW t ‚ |  j d t k sp t ‚ t	 |  d ƒ t k s‹ t ‚ |  j
 g  k s  t ‚ d  S(   NR   u   inlinei   iÿÿÿÿu   css_raw(   R   R   R   R	   t   devt   Falset   lent   js_rawt   DEFAULT_LOG_JS_RAWt   hasattrt   messages(   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt-   test_js_resources_inline_has_no_css_resources6   s    c          C` s%   t  j ƒ  }  |  j d k s! t ‚ d  S(   Nu   inline(   R   t   CSSResourcesR   R	   (   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt)   test_css_resources_default_mode_is_inlineC   s    c          C` s‹   t  j d d ƒ }  |  j d k s' t ‚ |  j t k s< t ‚ t |  j ƒ d k sW t ‚ t |  d ƒ t k sr t ‚ |  j	 g  k s‡ t ‚ d  S(   NR   u   inlinei    u   js_raw(
   R   R   R   R	   R   R   R   t   css_rawR   R   (   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_inline_css_resourcesH   s    t   TestResourcesc           B` s˜   e  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%   t  j ƒ  } | j d k s! t ‚ d  S(   Nu   inline(   R   t	   ResourcesR   R	   (   t   selfR
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt
   test_basicT   s    c         C` sŽ   t  j ƒ  } xU t D]M } | | _ | j | k s7 t ‚ | j s | j d d | k s` t ‚ q q Wt j t	 ƒ  t
 | d d ƒ Wd  QXd  S(   Niÿÿÿÿu   Bokeh.set_log_level("%s");u	   log_levelu   foo(   R   R   t
   LOG_LEVELSt	   log_levelR	   R   R   t   pytestt   raisest
   ValueErrort   setattr(   R   R
   t   level(    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_log_levelX   s    		$c         C` s4   t  j j d k s t ‚ t  j j d k s0 t ‚ d  S(   Nu   cdnu   inline(   R   t   CDNR   R	   t   INLINE(   R   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_module_attrsb   s    c         C` s¤   t  j d d ƒ } | j d k s' t ‚ | j t k s< t ‚ t | j ƒ d k sW t ‚ | j d t k sp t ‚ t | j	 ƒ d k s‹ t ‚ | j
 g  k s  t ‚ d  S(   NR   u   inlinei   iÿÿÿÿi    (   R   R   R   R	   R   R   R   R   R   R   R   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_inlinef   s    c         C` sE   d } t  d | ƒ } | d d g d ƒ d } d | k sA t ‚ d  S(   Nu	   0.0.1dev2t   versionu   urlsu   bokehu   jsi    u	   bokeh/dev(   R   R	   (   R   t   dev_versiont   resultt   url(    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_get_cdn_urlsp   s    c         C` sØ   d t  _ t  j d d d d ƒ } | j d k s6 t ‚ | j t k sK t ‚ | j t g k sc t ‚ | j	 g  k sx t ‚ | j
 g  k s t ‚ d t  _ t  j d d d d ƒ } | j
 i d d 6d d	 6g k sÔ t ‚ d  S(
   Nu   1.0R   u   cdnR(   u	   1.0-1-abcu„   Requesting CDN BokehJS version '1.0' from Bokeh development version '1.0-1-abc'. This configuration is unsupported and may not work!u   textu   warnu   type(   R   t   __version__R   R   R	   R   R   R   R   R   R   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_cdnv   s    			c         C` s£   t  j d d ƒ } | j d k s' t ‚ | j t k s< t ‚ | j t g k sT t ‚ | j g  k si t ‚ | j	 g  k s~ t ‚ | j
 d d d d g k sŸ t ‚ d  S(   NR   u   serveru,   http://localhost:5006/static/js/bokeh.min.jsu4   http://localhost:5006/static/js/bokeh-widgets.min.jsu3   http://localhost:5006/static/js/bokeh-tables.min.jsu/   http://localhost:5006/static/js/bokeh-gl.min.js(   R   R   R   R	   R   R   R   R   R   R   t   js_files(   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_server_default‡   s    	c         C` s   t  j d d d d ƒ } | j t g k s0 t ‚ | j g  k sE t ‚ | j g  k sZ t ‚ | j d d d d g k s{ t ‚ d  S(	   NR   u   servert   root_urlu   http://foo/u!   http://foo/static/js/bokeh.min.jsu)   http://foo/static/js/bokeh-widgets.min.jsu(   http://foo/static/js/bokeh-tables.min.jsu$   http://foo/static/js/bokeh-gl.min.js(   R   R   R   R   R	   R   R   R/   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_server_root_url•   s    	c         C` s   t  j d d d d ƒ } | j t g k s0 t ‚ | j g  k sE t ‚ | j g  k sZ t ‚ | j d d d d g k s{ t ‚ d  S(	   NR   u   serverR1   u    u   static/js/bokeh.min.jsu   static/js/bokeh-widgets.min.jsu   static/js/bokeh-tables.min.jsu   static/js/bokeh-gl.min.js(   R   R   R   R   R	   R   R   R/   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_server_root_url_empty¡   s    	c         C` sL   d „  } t  j d d d d d | ƒ } | j d d d	 d
 g k sH t ‚ d  S(   Nc         S` s   |  d S(   Nu   ?v=VERSIONED(    (   t   path(    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt	   versioner¯   s    R   u   serverR1   u   http://foo/t   path_versioneru-   http://foo/static/js/bokeh.min.js?v=VERSIONEDu5   http://foo/static/js/bokeh-widgets.min.js?v=VERSIONEDu4   http://foo/static/js/bokeh-tables.min.js?v=VERSIONEDu0   http://foo/static/js/bokeh-gl.min.js?v=VERSIONED(   R   R   R/   R	   (   R   R5   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_server_with_versioner®   s    			c         C` sâ   t  j d d ƒ } | j d k s' t ‚ | j t k s< t ‚ t | j ƒ d k sW t ‚ | j g  k sl t ‚ | j	 g  k s t ‚ t  j d d d d ƒ } | j t
 d g k s´ t ‚ | j g  k sÉ t ‚ | j	 g  k sÞ t ‚ d  S(   NR   u
   server-devu   serveri   R1   u   http://foo/u   Bokeh.settings.dev = true(   R   R   R   R	   R   t   TrueR   R   R   R   R   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_server_devº   s    c         C` s‚   t  j d d ƒ } | j d k s' t ‚ | j t k s< t ‚ | j t g k sT t ‚ | j g  k si t ‚ | j	 g  k s~ t ‚ d  S(   NR   u   relative(
   R   R   R   R	   R   R   R   R   R   R   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_relativeÉ   s    c         C` s…   t  j d d ƒ } | j d k s' t ‚ | j t k s< t ‚ | j t d g k sW t ‚ | j g  k sl t ‚ | j	 g  k s t ‚ d  S(   NR   u   relative-devu   relativeu   Bokeh.settings.dev = true(
   R   R   R   R	   R   R8   R   R   R   R   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_relative_devÒ   s    c         C` s‚   t  j d d ƒ } | j d k s' t ‚ | j t k s< t ‚ | j t g k sT t ‚ | j g  k si t ‚ | j	 g  k s~ t ‚ d  S(   NR   u   absolute(
   R   R   R   R	   R   R   R   R   R   R   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_absoluteÛ   s    c         C` s…   t  j d d ƒ } | j d k s' t ‚ | j t k s< t ‚ | j t d g k sW t ‚ | j g  k sl t ‚ | j	 g  k s t ‚ d  S(   NR   u   absolute-devu   absoluteu   Bokeh.settings.dev = true(
   R   R   R   R	   R   R8   R   R   R   R   (   R   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_absolute_devä   s    c      
   C` sÕ   t  j t ƒ  t j d ƒ Wd  QXx7 d D]/ } t  j t ƒ  t j | d d ƒWd  QXq* Wx7 d D]/ } t  j t ƒ  t j | d d ƒWd  QXqd Wx7 d D]/ } t  j t ƒ  t j | d d ƒWd  QXqž Wd  S(   Nu   foou   inlineu   cdnu   serveru
   server-devu   absoluteu   absolute-devt   root_diru   relativeu   relative-devR(   R1   (   u   inlineu   cdnu   serveru
   server-devu   absoluteu   absolute-dev(   u   inlineu   serveru
   server-devu   relativeu   relative-devu   absoluteu   absolute-dev(   u   inlineu   cdnu   relativeu   relative-devu   absoluteu   absolute-dev(   R   R   R    R   R   (   R   R   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   test_argument_checksí   s    (   t   __name__t
   __module__R   R#   R&   R'   R,   R.   R0   R2   R3   R7   R9   R:   R;   R<   R=   R?   (    (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyR   R   s    		
		
															c          C` sH  d t  f d „  ƒ  Y}  d t  f d „  ƒ  Y} d t  f d „  ƒ  Y} t j ƒ  } d | j k sc t ‚ d | j k sx t ‚ d	 | j k s t ‚ d
 | j k s¢ t ‚ d | j k s· t ‚ d | j k sÌ t ‚ | j j d ƒ d k sê t ‚ | j j d ƒ d k st ‚ | j j d
 ƒ d k s&t ‚ | j j d ƒ d k sDt ‚ d S(   uÌ    This test method has to be at the end of the test modules because
    subclassing a Model causes the CustomModel to be added as a MetaModel and
    messes up the Resources state for the other tests.
    t   CustomModel1c           B` s   e  Z d  Z d Z RS(   u   external_js_1u   external_css_1(   R@   RA   t   __javascript__t   __css__(    (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyRB     s   t   CustomModel2c           B` s    e  Z d  d g Z d d g Z RS(   u   external_js_2u   external_js_3u   external_css_2u   external_css_3(   R@   RA   RC   RD   (    (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyRE     s   t   CustomModel3c           B` s    e  Z d  d g Z d d g Z RS(   u   external_js_1u   external_js_3u   external_css_1u   external_css_2(   R@   RA   RC   RD   (    (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyRF     s   u   external_js_1u   external_css_1u   external_js_2u   external_js_3u   external_css_2u   external_css_3i   N(   R   R   R   R/   R	   t	   css_filest   count(   RB   RE   RF   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt+   test_external_js_and_css_resource_embedding   s    c          C` sº   d t  f d „  ƒ  Y}  d t  f d „  ƒ  Y} t j ƒ  } | j j d ƒ | j j d ƒ k  sb t ‚ | j j d ƒ | j j d ƒ k sŒ t ‚ | j j d	 ƒ | j j d
 ƒ k s¶ t ‚ d  S(   Nt   ZClassc           B` s   e  Z d  Z RS(   u   z_class(   R@   RA   RC   (    (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyRJ   %  s   t   AClassc           B` s   e  Z d  Z RS(   u   a_class(   R@   RA   RC   (    (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyRK   (  s   u   a_classu   z_classu   external_css_3u   external_css_2u   external_js_3u   external_js_2(   R   R   R   R/   t   indexR	   RG   (   RJ   RK   R
   (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt*   test_external_js_and_css_resource_ordering$  s    **(   t
   __future__R    R   R   R   R   t   ost   bokeh.modelsR   t   bokeh.resourcesR   R   t   environt   gett   RuntimeErrorR   R   R   R   R   R   t   objectR   RI   RM   (    (    (    s9   lib/python2.7/site-packages/bokeh/tests/test_resources.pyt   <module>   s"   " 				
®	$