ó
X¾÷Xc           @   s–   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 e j
 f d „  ƒ  YZ d e j
 f d „  ƒ  YZ d S(	   iÿÿÿÿN(   t   configparser(   t   base(   t   utilt!   TestExtrasRequireParsingScenariosc           B   s™   e  Z d  i d d 6i d d g d 6d d g d 6d 6f d	 i d
 d 6i d d g d 6d d g d 6d 6f d i d d 6i  d 6f g Z d „  Z d „  Z RS(   t   simple_extrassÅ   
                [extras]
                first =
                    foo
                    bar==1.0
                second =
                    baz>=3.2
                    foo
                t   config_textt   foos   bar==1.0t   firsts   baz>=3.2t   secondt   expected_extra_requirest   with_markerssè   
                [extras]
                test =
                    foo:python_version=='2.6'
                    bar
                    baz<1.6 :python_version=='2.6'
                    zaz :python_version>'1.0'
                s   baz<1.6s   test:(python_version=='2.6')t   bart   zazt   testt	   no_extrassG   
            [metadata]
            long_description = foo
            c         C   s’   i  } t  j d k r$ t j ƒ  } n t j ƒ  } t j t j | ƒ ƒ } | j	 t
 j | ƒ ƒ x- | j ƒ  D] } t | j | ƒ ƒ | | <qk W| S(   Ni   i   (   i   i   (   t   syst   version_infoR    t   ConfigParsert   SafeConfigParsert   textwrapt   dedentt   sixt   ut   readfpt   iot   StringIOt   sectionst   dictt   items(   t   selft   init   configt   parsert   section(    (    s0   /tmp/pip-build-h1VYrz/pbr/pbr/tests/test_util.pyt   config_from_ini?   s    c         C   s<   |  j  |  j ƒ } t j | ƒ } |  j |  j | d ƒ d  S(   Nt   extras_require(   R"   R   R   t   setup_cfg_to_setup_kwargst   assertEqualR	   (   R   R   t   kwargs(    (    s0   /tmp/pip-build-h1VYrz/pbr/pbr/tests/test_util.pyt   test_extras_parsingK   s    (   t   __name__t
   __module__t	   scenariosR"   R'   (    (    (    s0   /tmp/pip-build-h1VYrz/pbr/pbr/tests/test_util.pyR      s   		t   TestInvalidMarkersc           B   s   e  Z d  „  Z RS(   c         C   s.   i i d d 6d 6} |  j  t t j | ƒ d  S(   Ns   foo :bad_marker>'1.0'R   t   extras(   t   assertRaisest   SyntaxErrorR   R$   (   R   R   (    (    s0   /tmp/pip-build-h1VYrz/pbr/pbr/tests/test_util.pyt    test_invalid_marker_raises_errorU   s    (   R(   R)   R/   (    (    (    s0   /tmp/pip-build-h1VYrz/pbr/pbr/tests/test_util.pyR+   S   s   (   R   R   R   t	   six.movesR    R   t	   pbr.testsR   t   pbrR   t   BaseTestCaseR   R+   (    (    (    s0   /tmp/pip-build-h1VYrz/pbr/pbr/tests/test_util.pyt   <module>   s   9