ó
î%![c           @   s´  d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z d d l Z d d l m	 Z	 d d l m
 Z
 d d l m Z d „  Z d e j f d	 „  ƒ  YZ d
 e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j e j f d „  ƒ  YZ d e j e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j 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(   s@   
unit tests for module modutils (module manipulation utilities)
iÿÿÿÿN(   t   etree(   t   spec(   t   modutils(   t	   resourcesc         C   s   t  j |  j ƒ S(   N(   R   t   _path_from_filenamet   __file__(   t   obj(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   _get_file_from_object   s    t   ModuleFileTestc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   t   mypypac         C   s7   x0 t  t j ƒ D] } d | k r t j | =q q Wd  S(   Nt   MyPyPa(   t   listt   syst   path_importer_cache(   t   selft   k(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   tearDown    s    c         C   sp   t  j |  j g t j d ƒ g ƒ } |  j | j t  j j ƒ |  j | j	 j
 t j ƒ d d d |  j g ƒ d  S(   Ns   data/MyPyPa-0.1.0-py2.5.zipiýÿÿÿt   datas   MyPyPa-0.1.0-py2.5.zip(   R   t	   find_spect   packageR   t   findt   assertEqualt   typet
   ModuleTypet   PY_ZIPMODULEt   locationt   splitt   ost   sep(   R   t
   found_spec(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_find_zipped_module%   s    c         C   sp   t  j |  j g t j d ƒ g ƒ } |  j | j t  j j ƒ |  j | j	 j
 t j ƒ d d d |  j g ƒ d  S(   Ns   data/MyPyPa-0.1.0-py2.5.eggiýÿÿÿR   s   MyPyPa-0.1.0-py2.5.egg(   R   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_find_egg_module-   s    (   t   __name__t
   __module__R   R   R   R   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyR      s   		t   LoadModuleFromNameTestc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s%    load a python module from it's name c         C   s   |  j  t j d ƒ t ƒ d  S(   NR   (   R   R   t   load_module_from_nameR   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt(   test_knownValues_load_module_from_name_19   s    c         C   s    |  j  t j d ƒ t j ƒ d  S(   Ns   os.path(   R   R   R#   R   t   path(   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt(   test_knownValues_load_module_from_name_2<   s    c         C   s    |  j  t t j d d d ƒd  S(   Ns   os.patht   use_sysi    (   t   assertRaisest   ImportErrorR   R#   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt"   test_raise_load_module_from_name_1?   s    	(   R    R!   t   __doc__R$   R&   R*   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyR"   6   s   		t   GetModulePartTestc           B   sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s6   given a dotted name return the module part of the namec         C   s   |  j  t j d ƒ d ƒ d  S(   Ns   astroid.modutils(   R   R   t   get_module_part(   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt"   test_knownValues_get_module_part_1G   s    c         C   s   |  j  t j d ƒ d ƒ d  S(   Ns    astroid.modutils.get_module_parts   astroid.modutils(   R   R   R-   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt"   test_knownValues_get_module_part_2K   s    c         C   s#   |  j  t j d t j ƒ d ƒ d S(   s   relative import from given files   node_classes.AssNamet   node_classesN(   R   R   R-   R   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt"   test_knownValues_get_module_part_3O   s    c         C   s9   |  j  t j d ƒ d ƒ |  j  t j d t ƒ d ƒ d  S(   Ns
   math.log10t   math(   R   R   R-   R   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt)   test_knownValues_get_compiled_module_partT   s    c         C   s9   |  j  t j d ƒ d ƒ |  j  t j d d ƒ d ƒ d  S(   Ns   sys.pathR   R   (   R   R   R-   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt(   test_knownValues_get_builtin_module_partX   s    c         C   s    |  j  t t j d t j ƒ d  S(   Ns   unknown.module(   R(   R)   R   R-   R   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_get_module_part_exception\   s    (	   R    R!   R+   R.   R/   R1   R3   R4   R5   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyR,   D   s   					t   ModPathFromFileTestc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   sG    given an absolute file path return the python module's path as a list c         C   s9   d d l  m } |  j t j | j ƒ d d d g ƒ d  S(   Niÿÿÿÿ(   t   ElementTreet   xmlR    R7   (   t	   xml.etreeR7   R   R   t   modpath_from_fileR   (   R   R7   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt$   test_knownValues_modpath_from_file_1d   s    c         C   s6   |  j  t j d i d t j ƒ  6ƒ d d d g ƒ d  S(   Ns   unittest_modutils.pys   arbitrary.pkgt	   arbitraryt   pkgt   unittest_modutils(   R   R   R:   R   t   getcwd(   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt$   test_knownValues_modpath_from_file_2i   s    c         C   s   |  j  t t j d ƒ d  S(   Ns
   /turlututu(   R(   t	   ExceptionR   R:   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt&   test_raise_modpath_from_file_Exceptionn   s    (   R    R!   R+   R;   R@   RB   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyR6   a   s   		t   LoadModuleFromPathTestc           B   s   e  Z d  „  Z RS(   c         C   sL   t  j d d d g ƒ t  j d d g ƒ |  j t t j ƒ d ƒ t ` d  S(   NR   t   lmfpt   fooi   (   R   t   load_module_from_modpathR   t   lenR   t	   just_once(   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_do_not_load_twicet   s    (   R    R!   RI   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyRC   r   s   t   FileFromModPathTestc           B   s;   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   sŸ   given a mod path (i.e. splited module / package name), return the
    corresponding file, giving priority to source file over precompiled file
    if it existsc         C   sM   t  t ƒ } t j d d g ƒ } |  j t j j | ƒ t j j | ƒ ƒ d  S(   Nt   astroidR   (   R   R   t   file_from_modpathR   R   R%   t   realpath(   R   t   filenamet   result(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_site_packages   s    c         C   s_   t  j d d g ƒ j d d ƒ } |  j t j j | ƒ t j j t j j j d d ƒ ƒ ƒ d  S(   NR   R%   s   .pycs   .py(   R   RL   t   replaceR   R   R%   RM   R   (   R   R%   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_std_lib†   s    !c         C   s   |  j  t j d g ƒ ƒ d  S(   NR   (   t   assertIsNoneR   RL   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_builtin‹   s    c         C   s   |  j  t t j d g ƒ d  S(   Nt	   turlututu(   R(   R)   R   RL   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_unexistingŽ   s    c         C   s   t  j d d d g ƒ d  S(   NR   t   unicode_packaget   core(   R   RL   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_unicode_in_package_init‘   s    (   R    R!   R+   RP   RR   RT   RV   RY   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyRJ   |   s   				t   GetSourceFileTestc           B   s   e  Z d  „  Z d „  Z RS(   c         C   s>   t  t j ƒ } |  j t j t j j ƒ t j j | ƒ ƒ d  S(   N(   R   R   R%   R   R   t   get_source_fileR   t   normpath(   R   RN   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test™   s    c         C   s   |  j  t j t j d ƒ d  S(   Nt   whatever(   R(   R   t   NoSourceFileR[   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt
   test_raisež   s    (   R    R!   R]   R`   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyRZ   —   s   	t   StandardLibModuleTestc           B   sV   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   s_   
    return true if the module may be considered as a module from the standard
    library
    c         C   s   |  j  t j d ƒ ƒ d  S(   Nt   datetime(   t
   assertTrueR   t   is_standard_module(   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_datetime¨   s    c         C   sn   t  j d k  r> |  j t j d ƒ ƒ |  j t j d ƒ ƒ n, |  j t j d ƒ ƒ |  j t j d ƒ ƒ d  S(   Ni   i    t   __builtin__t   builtins(   i   i    (   R   t   version_infoRc   R   Rd   t   assertFalse(   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_builtins­   s
    c         C   s0   |  j  t j d ƒ ƒ |  j  t j d ƒ ƒ d  S(   NR   t   marshal(   Rc   R   Rd   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyRT   µ   s    c         C   s   |  j  t j d ƒ ƒ d  S(   NRK   (   Ri   R   Rd   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_nonstandard¹   s    c         C   s   |  j  t j d ƒ ƒ d  S(   Nt   unknown(   Ri   R   Rd   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_unknown¼   s    c         C   s    |  j  t j d ƒ ƒ |  j  t j d ƒ ƒ |  j  t j d ƒ ƒ |  j t j d ƒ t j d k ƒ |  j t j d ƒ t j d k  ƒ |  j  t j d
 ƒ ƒ d  S(   Nt   hashlibt   picklet   emailt   ioi   i   t   StringIOi   i    t   unicodedata(   i   i   (   i   i    (   Rc   R   Rd   R   R   Rh   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_4¿   s    c         C   sy   t  j d ƒ } | j t j ƒ r1 |  j d ƒ n  |  j t j d | f ƒ ƒ |  j t j d t j	 j
 | ƒ f ƒ ƒ d  S(   Nt    s9   known breakage of is_standard_module on installed packages   data.module(   R   R   t
   startswithR   t   EXT_LIB_DIRt   skipTestRc   Rd   R   R%   t   abspath(   R   t   datadir(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_custom_pathÉ   s
    c         C   sh   |  j  t j d t j ƒ ƒ |  j t j d ƒ ƒ |  j t j d ƒ ƒ |  j  t j d t j ƒ ƒ d  S(   Ns	   xml.etrees   sys.paths   sys.whatevers   xml.whatever(   Ri   R   Rd   R    t   __path__Rc   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_failing_edge_casesÑ   s    (   R    R!   R+   Re   Rj   RT   Rl   Rn   Ru   R|   R~   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyRa   ¢   s   						
	t   IsRelativeTestc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s$   |  j  t j d t j d ƒ ƒ d  S(   Nt   utilsi    (   Rc   R   t   is_relativeRq   R}   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_knownValues_is_relative_1Ý   s    c         C   s#   |  j  t j d t j j ƒ ƒ d  S(   Nt   ElementPath(   Rc   R   R   R    R7   R   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_knownValues_is_relative_2à   s    c         C   s$   |  j  t j d t j d ƒ ƒ d  S(   NRK   i    (   Ri   R   R   RK   R}   (   R   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_knownValues_is_relative_3ä   s    (   R    R!   R‚   R„   R…   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyR   Û   s   		t   GetModuleFilesTestc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c            s`   t  j d ƒ ‰  t t j ˆ  g  ƒ ƒ } d d d d d g } |  j | ‡  f d †  | Dƒ ƒ d  S(   Ns   data/find_tests   __init__.pys	   module.pys
   module2.pys   noendingnewline.pys
   nonregr.pyc            s%   h  |  ] } t  j j ˆ  | ƒ ’ q S(    (   R   R%   t   join(   t   .0t   x(   R   (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pys	   <setcomp>ð   s   	 (   R   R   t   setR   t   get_module_filesR   (   R   t   modulest   expected(    (   R   s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_get_module_files_1ê   s    		c         C   sM   t  j d ƒ } t j | g  d t ƒ} |  j | t j j | d ƒ g ƒ d S(   sH   test that list_all returns all Python files from given location
        s   data/notamodulet   list_alls   file.pyN(	   R   R   R   R‹   t   TrueR   R   R%   R‡   (   R   t   non_packageRŒ   (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_get_all_filesò   s
    c         C   s   d d  l  } d d  l } | j ` t j d =t j d d d g ƒ } |  j t	 | d ƒ ƒ |  j t	 | j d ƒ ƒ |  j | | j j k ƒ d  S(   Niÿÿÿÿs   xml.etree.ElementTreeR8   R    R7   (
   t   xml.etree.ElementTreeR8   R    R7   R   RŒ   R   RF   Rc   t   hasattr(   R   R8   t   m(    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   test_load_module_set_attributeü   s    	
(   R    R!   RŽ   R’   R–   (    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyR†   è   s   		
t   __main__(   R+   Rq   R   R   t   unittestR8   R    RK   t   astroid.interpreter._importR   R   t   astroid.testsR   R   t   TestCaseR   R"   R,   R6   t   SysPathSetupRC   RJ   RZ   Ra   R   R†   R    t   main(    (    (    s>   lib/python2.7/site-packages/astroid/tests/unittest_modutils.pyt   <module>   s,   	
9