ó
ÚÂŠ]c           @   s2  d  d l  Z  d  d l Z d  d l Z d d l m Z d d l m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z y d  d l m Z Wn! e k
 r« d  d l m Z n Xy d  d l m Z Wn! e k
 rã d  d l m Z n Xd	 e j e j e j e j f d
 „  ƒ  YZ d e j e j f d „  ƒ  YZ d S(   iÿÿÿÿNi   (   t   fixturesi   (	   t   Distributiont   PackageNotFoundErrort   __version__t   distributiont   entry_pointst   filest   metadatat   requirest   version(   t   Iterator(   t   str(   t   unicodet   APITestsc           B   s­   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 e d	 „  ƒ Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   \d+\.\d+(\.\d)?c         C   s@   t  d ƒ } t | t ƒ s! t ‚ t j |  j | ƒ s< t ‚ d  S(   Ns   egginfo-pkg(   R	   t
   isinstancet   textt   AssertionErrort   ret   matcht   version_pattern(   t   selft   pkg_version(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_retrieves_version_of_self   s    c         C   s@   t  d ƒ } t | t ƒ s! t ‚ t j |  j | ƒ s< t ‚ d  S(   Ns   distinfo-pkg(   R	   R   R   R   R   R   R   (   R   R   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt&   test_retrieves_version_of_distinfo_pkg#   s    c         C   s$   |  j  t ƒ  t d ƒ Wd  QXd  S(   Ns   does-not-exist(   t   assertRaisesR   R   (   R   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_for_name_does_not_exist(   s    c         C   s)   |  j  t d ƒ j d ƒ j ƒ  d ƒ d  S(   Ns   egginfo-pkgs   top_level.txtt   mod(   t   assertEqualR   t	   read_textt   strip(   R   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_for_top_level,   s    c         C   sL   g  t  d ƒ D] } | j d k r | ^ q d } |  j | j ƒ  d ƒ d  S(   Ns   egginfo-pkgs   top_level.txti    s   mod
(   R   t   nameR   R   (   R   t   patht	   top_level(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_read_text1   s    c         C   sG   t  t ƒ  d ƒ } | d } |  j | j d ƒ |  j | j g  ƒ d  S(   Nt   entriest   mains   mod:main(   t   dictR   R   t   valuet   extras(   R   R#   t   ep(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_entry_points8   s    
c         C   ss   t  d ƒ } | d d k s" t ‚ | d d k s8 t ‚ | d d k sN t ‚ | j d ƒ } d | k so t ‚ d  S(	   Ns   egginfo-pkgt   authors	   Steven Mat   LICENSEt   Unknownt   Namet
   Classifiers*   Topic :: Software Development :: Libraries(   R   R   t   get_all(   R   t   mdt   classifiers(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_metadata_for_this_package>   s    c         C   s   t  j |  j t ƒ s t ‚ d  S(   N(   R   R   R   R   R   (   R   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_importlib_metadata_versionF   s    c         C   sæ   |  d j  } xÒ |  D]Ê } | j  | k s/ t ‚ | j sK | j j sK t ‚ | j sm | j j d k sm t ‚ | j sŒ | j d k sŒ t ‚ | j ƒ  j ƒ  s¤ t ‚ t | j	 ƒ  t
 ƒ s¿ t ‚ | j j d ƒ r | j ƒ  q q Wd  S(   Ni    t   sha256s   .py(   t   rootR   t   hashR&   t   modet   sizet   locatet   existsR   t   read_binaryt   bytesR   t   endswithR   (   R   R5   t   file(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   _test_filesI   s    "c         C   sv   y |  j  } Wn t k
 r) |  j } n Xg  t d ƒ D] } | j d k r7 | ^ q7 d } | t | j ƒ d ƒ d  S(   Ns   distinfo-pkgs   mod.pyi    s!   <FileHash mode: sha256 value: .*>(   t   assertRegext   AttributeErrort   assertRegexpMatchesR   R   t   reprR6   (   R   R@   t   pt   util(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_file_hash_reprV   s    c         C   s   |  j  t d ƒ ƒ d  S(   Ns   distinfo-pkg(   R?   R   (   R   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_files_dist_infoe   s    c         C   s   |  j  t d ƒ ƒ d  S(   Ns   egginfo-pkg(   R?   R   (   R   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_files_egg_infoh   s    c         C   s   |  j  t d ƒ d ƒ d  S(   Ns   egginfo-files   0.1(   R   R	   (   R   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_version_egg_info_filek   s    c         C   s   t  d ƒ } |  j | ƒ d  S(   Ns   egginfo-file(   R   t   assertIsNone(   R   t   requirements(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_requires_egg_info_filen   s    c         C   sD   t  d ƒ } t | ƒ d k s$ t ‚ t d „  | Dƒ ƒ s@ t ‚ d  S(   Ns   egginfo-pkgi   c         s   s   |  ] } | d  k Vq d S(   s%   wheel >= 1.0; python_version >= "2.7"N(    (   t   .0t   dep(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pys	   <genexpr>v   s   (   R   t   lenR   t   any(   R   t   deps(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_requires_egg_infor   s
    c         C   s^   t  d ƒ } t | ƒ d k s$ t ‚ t | ƒ s6 t ‚ d | k sH t ‚ d | k sZ t ‚ d  S(   Ns   distinfo-pkgi   s   wheel >= 1.0s   pytest; extra == 'test'(   R   RO   R   t   all(   R   RQ   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_requires_dist_infoz   s
    c         C   sO   t  j d ƒ } t t j | ƒ ƒ } d d d d d g } | | k sK t ‚ d  S(   NsÈ   
            dep1
            dep2

            [:python_version < "3"]
            dep3

            [extra1]
            dep4

            [extra2:python_version < "3"]
            dep5
            t   dep1t   dep2s   dep3; python_version < "3"s   dep4; extra == "extra1"s2   dep5; (python_version < "3") and extra == "extra2"(   t   textwrapt   dedentt   sortedR   t   _deps_from_requires_textR   (   R   R   RQ   t   expected(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt$   test_more_complex_deps_requires_text   s    		(   t   __name__t
   __module__R   R   R   R   R   R"   R)   R2   R3   t   staticmethodR?   RF   RG   RH   RI   RL   RR   RT   R\   (    (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyR      s$   															t   OffSysPathTestsc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s>   t  j d t |  j ƒ g ƒ } t d „  | Dƒ ƒ s: t ‚ d  S(   NR    c         s   s"   |  ] } | j  d  d k Vq d S(   R-   s   distinfo-pkgN(   R   (   RM   t   dist(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pys	   <genexpr>¢   s   (   R   t   discoverR   t   site_dirRP   R   (   R   t   dists(    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt&   test_find_distributions_specified_pathŸ   s    c         C   s5   |  j  d } t j | ƒ } | j d k s1 t ‚ d S(   sB   Demonstrate how to load metadata direct from a directory.
        s   distinfo_pkg-1.0.0.dist-infos   1.0.0N(   Rc   R   t   atR	   R   (   R   t   dist_info_pathRa   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_distribution_at_pathlib¦   s    c         C   s;   |  j  d } t j t | ƒ ƒ } | j d k s7 t ‚ d  S(   Ns   distinfo_pkg-1.0.0.dist-infos   1.0.0(   Rc   R   Rf   R   R	   R   (   R   Rg   Ra   (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   test_distribution_at_str­   s    (   R]   R^   Re   Rh   Ri   (    (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyR`   ž   s   		(   R   RW   t   unittestt    R    R   R   R   R   R   R   R   R   R	   t   collections.abcR
   t   ImportErrort   collectionst   builtinsR   R   t   __builtin__R   t
   EggInfoPkgt   DistInfoPkgt   EggInfoFilet   TestCaseR   t   DistInfoPkgOffPathR`   (    (    (    s@   lib/python2.7/site-packages/importlib_metadata/tests/test_api.pyt   <module>   s$   @„