ó
9ùTc           @   sò   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m	 Z	 e j
 Z e j d ƒ rk e d  Z n  e d Z d Z d Z d Z e j ƒ  Z e j j e
 ƒ Z d	 j ƒ  Z e j j e ƒ Z d
 Z d Z d Z d e j f d „  ƒ  YZ d S(   s     Tests for the linecache module iÿÿÿÿN(   t   NestedTempfiles   .pycs   .missings
   !@$)(!@#_1t    s,   inspect_fodder inspect_fodder2 mapping_testss   linecache abcs3   
" Docstring "

def function():
    return result

s%   
def f():
    return 1 + 1

a = f()

s   
def f():
    return 3t   LineCacheTestsc           B   s¡   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j	 d e
 ƒ  k d ƒ d „  ƒ Z d	 „  Z d
 „  Z d „  Z e j	 d e
 ƒ  k d ƒ d „  ƒ Z RS(   c         C   s'   t  ƒ  } | j ƒ  |  j | j ƒ d  S(   N(   R    t   setUpt
   addCleanupt   cleanUp(   t   selft   tempdir(    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyR   -   s    	
c         C   s˜  t  j } |  j | t d ƒ t ƒ |  j | t d ƒ t ƒ |  j t | t d ƒ |  j | t d ƒ t ƒ |  j | t d ƒ t ƒ xv t D]n } t	 j
 j t | ƒ d } t | ƒ A } x7 t | ƒ D]) \ } } |  j | | | | d ƒ ƒ qÅ WWd  QXqŠ Wxv t D]n } t	 j
 j t | ƒ d } t | ƒ A } x7 t | ƒ D]) \ } } |  j | | | | d ƒ ƒ q>WWd  QXqWt  j d ƒ } |  j | g  ƒ d  S(	   Ni   i   iÿÿÿÿgš™™™™™ñ?i   s   .pys   a/b/c/__init__.pyi €  (   t	   linecachet   getlinet   assertEqualt   FILENAMEt   EMPTYt   assertRaisest	   TypeErrort   INVALID_NAMEt   TESTSt   ost   patht   joint	   TEST_PATHt   opent	   enumeratet   MODULESt   MODULE_PATHt   getlines(   R   R	   t   entryt   filenamet   filet   indext   linet   empty(    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_getline2   s$    	++c         C   s‹   t  j d d d d d t ƒ } |  j t j | j ƒ t | j d ƒ  } | j t	 ƒ Wd  QXt
 j | j ƒ } |  j | d d d g ƒ d  S(	   Nt   suffixs   .pyt   modet   wt   deletes   
s	   def f():
s       return 3
(   t   tempfilet   NamedTemporaryFilet   FalseR   R   t   unlinkt   nameR   t   writet   SOURCE_3R   R   R
   (   R   t	   temp_filet   fpt   lines(    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_no_ending_newlineR   s    	c         C   sË   g  } xD t  D]< } t j j t | ƒ d } | j | ƒ t j | d ƒ q Wg  | D] } | t j k rT | ^ qT } |  j	 | g  ƒ t j
 ƒ  g  | D] } | t j k r– | ^ q– } |  j	 | g  ƒ d  S(   Ns   .pyi   (   R   R   R   R   R   t   appendR   R	   t   cacheR
   t
   clearcache(   R   t   cachedR   R   t   fnt   cached_empty(    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_clearcache[   s    (
(c         C   s°  t  j } t j d d d d d t ƒ } | j } |  j t j | ƒ t	 | d ƒ  } | j
 t ƒ Wd  QX| | d ƒ g  } t	 | ƒ N } xD t | ƒ D]6 \ } } |  j | | | | d ƒ ƒ | j | ƒ q— WWd  QXt	 | d ƒ  } | j
 t ƒ Wd  QXt  j d ƒ x7 t | ƒ D]) \ } } |  j | | | | d ƒ ƒ qWt  j | ƒ t	 | ƒ N } xD t | ƒ D]6 \ } } |  j | | | | d ƒ ƒ | j | ƒ qlWWd  QXd  S(   NR!   s   .pyR"   R#   R$   i   t   dummy(   R   R	   R%   R&   R'   R)   R   R   R(   R   R*   t   SOURCE_1R   R
   R0   t   SOURCE_2t
   checkcache(   R   R	   R,   t   source_namet   sourcet   source_listR   R   (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_checkcachek   s.    			!c         C   sR   t  j t ƒ } t  j ƒ  |  j t t  j t d  ƒ ƒ |  j | t  j t ƒ ƒ d  S(   N(   R   R   R   R2   R
   R'   t	   lazycachet   None(   R   R.   (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_lazycache_no_globalsŽ   s    
t
   __loader__s   Modules not PEP302 by defaultc         C   sx   t  j t t ƒ  ƒ } t  j ƒ  |  j t t  j t t ƒ  ƒ ƒ |  j d t t  j	 t ƒ ƒ |  j | t  j t ƒ ƒ d  S(   Ni   (
   R   R   t   NONEXISTENT_FILENAMEt   globalsR2   R
   t   TrueR?   t   lenR1   (   R   R.   (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_lazycache_smoke”   s    
c         C   sf   t  j ƒ  t  j t t ƒ  ƒ } t  j ƒ  t  j t ƒ t  j t t ƒ  ƒ |  j | t  j t ƒ ƒ d  S(   N(   R   R2   R   RC   RD   R?   R
   t   updatecache(   R   R.   (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt*   test_lazycache_provide_after_failed_lookupŸ   s    

c         C   s+   t  j ƒ  t  j t t ƒ  ƒ t  j ƒ  d  S(   N(   R   R2   R?   RC   RD   R:   (   R   (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_lazycache_check§   s    
c         C   sL   t  j ƒ  |  j t t  j d t ƒ  ƒ ƒ |  j t t  j d t ƒ  ƒ ƒ d  S(   NR   s   <foo>(   R   R2   R
   R'   R?   RD   (   R   (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_lazycache_bad_filename¬   s    
c         C   s_   t  j ƒ  t  j t t ƒ  ƒ } |  j t t  j t t ƒ  ƒ ƒ |  j d t t  j	 t ƒ ƒ d  S(   Ni   (
   R   R2   R   RC   RD   R
   R'   R?   RF   R1   (   R   R.   (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   test_lazycache_already_cached±   s    
(   t   __name__t
   __module__R   R    R/   R6   R>   RA   t   unittestt   skipIfRD   RG   RI   RJ   RK   RL   (    (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyR   +   s   		 				#	$			(   t   __doc__t
   linecache2R   t	   unittest2RO   t   os.pathR   R%   t   fixturesR    t   __file__R   t   endswithRC   R   R   R   t   splitR   t   dirnameR   R   R   R8   R9   R+   t   TestCaseR   (    (    (    s>   lib/python2.7/site-packages/linecache2/tests/test_linecache.pyt   <module>   s(   	
