ó
¦V]c           @   s~   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l m	 Z	 d e	 f d „  ƒ  YZ
 d S(   iÿÿÿÿN(   t
   CythonTestt   TestCyCachec           B   sG   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s€   t  j |  ƒ t j d d d t j j d ƒ r4 d n d  ƒ |  _ t j d d d |  j ƒ |  _	 t j d d d |  j ƒ |  _
 d  S(   Nt   prefixs   cycache-testt   dirt   TEST_TMPt   srct   cache(   R    t   setUpt   tempfilet   mkdtempt   ost   patht   isdirt   Nonet   temp_dirt   src_dirt	   cache_dir(   t   self(    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyR      s    	$c         C   s   t  j  t j j |  j | ƒ ƒ S(   N(   t   globR
   R   t   joinR   (   R   t	   file_glob(    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyt   cache_files   s    c         O   s6   t  j j ƒ  d  t  j j _ t  j j j | | Ž  d  S(   N(   t   Cythont   Utilst   clear_function_cachesR   t   Buildt   Dependenciest	   _dep_treet	   cythonize(   R   t   argst   kwargs(    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyt   fresh_cythonize   s    c      
   C   s×  d } d } t  j j |  j d ƒ } | d  d } t | d ƒ j | ƒ |  j | d |  j ƒ|  j | d |  j ƒ|  j d t	 |  j
 d	 ƒ ƒ ƒ t | ƒ j ƒ  } t  j | ƒ t | d ƒ j | ƒ |  j | d |  j ƒt | ƒ j ƒ  } t  j | ƒ |  j | | d
 ƒ |  j d t	 |  j
 d	 ƒ ƒ ƒ t | d ƒ j | ƒ |  j | d |  j ƒ|  j d t	 |  j
 d	 ƒ ƒ ƒ t | ƒ j ƒ  } |  j | | d d j t t j | j d ƒ | j d ƒ ƒ ƒ d  ƒ ƒd  S(   Ns
   value = 1
s
   value = 2
s   a.pyxiüÿÿÿs   .ct   wR   i   s   a.c*s   C file not changed!i   t   msgs   
i
   (   R
   R   R   R   t   opent   writeR   R   t   assertEqualt   lenR   t   readt   unlinkt   assertNotEqualt   listt   difflibt   unified_difft   split(   R   t   content1t   content2t   a_pyxt   a_ct   a_contents1t   a_contents2t
   a_contents(    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyt   test_cycache_switch   s0    	c         C   sð   t  j j |  j d ƒ } | d  d } t | d ƒ j d ƒ |  j | d |  j ƒt  j j |  j t  j |  j ƒ d ƒ } t	 j
 | d ƒ j d	 j d
 ƒ ƒ t  j | ƒ |  j | d |  j ƒt | ƒ j ƒ  } |  j | d	 d | d  ƒ d  S(   Ns   a.pyxiüÿÿÿs   .cR    t   passR   i    t   wbs
   fake stufft   asciis   Unexpected contents: %s...id   (   R
   R   R   R   R"   R#   R   R   t   listdirt   gzipt   GzipFilet   encodeR'   R&   R$   (   R   R/   R0   t   a_cacheR3   (    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyt   test_cycache_uses_cache<   s    ("c         C   sþ   t  j j |  j d ƒ } | d  d } | d  d } | d  d } t | d ƒ j d ƒ |  j | d |  j ƒ| | | g } x7 | D]/ } |  j t  j j	 | ƒ | ƒ t  j
 | ƒ q„ W|  j | d |  j ƒx* | D]" } |  j t  j j	 | ƒ | ƒ qÔ Wd  S(	   Ns   a.pyxiüÿÿÿs   .cs   .hs   _api.hR    s)   cdef public api int foo(int x): return x
R   (   R
   R   R   R   R"   R#   R   R   t
   assertTruet   existsR'   (   R   R/   R0   t   a_ht   a_api_ht   expectedt   output(    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyt   test_multi_file_outputI   s    c         C   sf  t  j j |  j d ƒ } | t d ƒ  d } t | d ƒ j d ƒ |  j | d |  j d t	 ƒ|  j
 d t |  j d	 ƒ ƒ ƒ t  j | ƒ |  j | d |  j d t ƒ|  j
 d
 t |  j d	 ƒ ƒ ƒ t  j | ƒ |  j | d |  j d t	 d t	 ƒ|  j
 d
 t |  j d	 ƒ ƒ ƒ t  j | ƒ |  j | d |  j d t	 d t ƒ|  j
 d
 t |  j d	 ƒ ƒ ƒ d  S(   Ns   options.pyxs   .pyxs   .cR    R5   R   t   cplusi   s
   options.c*i   t   show_version(   R
   R   R   R   R%   R"   R#   R   R   t   FalseR$   R   R'   t   True(   R   t   hash_pyxt   hash_c(    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyt   test_options_invalidationX   s    ""(	   t   __name__t
   __module__R   R   R   R4   R=   RD   RK   (    (    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyR      s   						(   R*   R   R9   R
   R   t   Cython.Build.DependenciesR   t   Cython.Utilst   Cython.TestUtilsR    R   (    (    (    s=   lib/python2.7/site-packages/Cython/Build/Tests/TestCyCache.pyt   <module>   s   