U
    ÇZj�  ã                   @   sÖ   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„ ZG dd„ dejƒZG d	d
„ d
ejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZdS )é    N)Úconfigparser)Úbase)Úutilc                 C   sd   i }t jdkrt ¡ }nt ¡ }t t | ¡¡} | 	t
 | ¡¡ | ¡ D ]}t| |¡ƒ||< qH|S )N)é   é   )ÚsysÚversion_infor   ÚConfigParserÚSafeConfigParserÚtextwrapÚdedentÚsixÚuÚreadfpÚioÚStringIOÚsectionsÚdictÚitems)ÚiniÚconfigÚparserÚsection© r   úV/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pbr/tests/test_util.pyÚconfig_from_ini   s    

r   c                   @   s`   e Zd Zddddgddgdgdgdœd	œfd
dddgddgdœd	œfddi d	œfgZdd„ ZdS )Ú!TestExtrasRequireParsingScenariosZsimple_extraszÅ
                [extras]
                first =
                    foo
                    bar==1.0
                second =
                    baz>=3.2
                    foo
                Úfoozbar==1.0zbaz>=3.2zrequests-mockZordereddict)ÚfirstÚsecondÚtestútest:(python_version=='2.6'))Úconfig_textÚexpected_extra_requiresZwith_markerszè
                [extras]
                test =
                    foo:python_version=='2.6'
                    bar
                    baz<1.6 :python_version=='2.6'
                    zaz :python_version>'1.0'
                zbaz<1.6ÚbarZzaz)r!   r    Z	no_extraszG
            [metadata]
            long_description = foo
            c                 C   s*   t | jƒ}t |¡}|  | j|d ¡ d S )NZextras_require)r   r"   r   Úsetup_cfg_to_setup_kwargsÚassertEqualr#   ©Úselfr   Úkwargsr   r   r   Útest_extras_parsingR   s
    

ÿz5TestExtrasRequireParsingScenarios.test_extras_parsingN)Ú__name__Ú
__module__Ú__qualname__Ú	scenariosr*   r   r   r   r   r   )   s(   
üö	þ÷úâ'r   c                   @   s   e Zd Zdd„ ZdS )ÚTestInvalidMarkersc                 C   s    dddii}|   ttj|¡ d S )NÚextrasr    zfoo :bad_marker>'1.0')ZassertRaisesÚSyntaxErrorr   r%   )r(   r   r   r   r   Ú test_invalid_marker_raises_error\   s    z3TestInvalidMarkers.test_invalid_marker_raises_errorN)r+   r,   r-   r2   r   r   r   r   r/   Z   s   r/   c                   @   s@   e Zd Zddddddœdœfdd	d
dddœdœfgZdd„ ZdS )ÚTestMapFieldsParsingScenariosZsimple_project_urlsa%  
                [metadata]
                project_urls =
                    Bug Tracker = https://bugs.launchpad.net/pbr/
                    Documentation = https://docs.openstack.org/pbr/
                    Source Code = https://git.openstack.org/cgit/openstack-dev/pbr/
                zhttps://bugs.launchpad.net/pbr/zhttps://docs.openstack.org/pbr/z1https://git.openstack.org/cgit/openstack-dev/pbr/)zBug TrackerZDocumentationzSource Code)r"   Úexpected_project_urlsZquery_parametersaG  
                [metadata]
                project_urls =
                    Bug Tracker = https://bugs.launchpad.net/pbr/?query=true
                    Documentation = https://docs.openstack.org/pbr/?foo=bar
                    Source Code = https://git.openstack.org/cgit/openstack-dev/pbr/commit/?id=hash
                z*https://bugs.launchpad.net/pbr/?query=truez'https://docs.openstack.org/pbr/?foo=barz@https://git.openstack.org/cgit/openstack-dev/pbr/commit/?id=hashc                 C   s*   t | jƒ}t |¡}|  | j|d ¡ d S )NZproject_urls)r   r"   r   r%   r&   r4   r'   r   r   r   Útest_project_url_parsing‚   s    

z6TestMapFieldsParsingScenarios.test_project_url_parsingN)r+   r,   r-   r.   r5   r   r   r   r   r3   a   s    ýøýøñr3   c                   @   s8   e Zd Zdddddgdœfddd	gdœfgZd
d„ ZdS )ÚTestKeywordsParsingScenariosZkeywords_listz‘
                [metadata]
                keywords =
                    one
                    two
                    three
                ÚoneÚtwoÚthree)r"   Úexpected_keywordsZinline_keywordszW
                [metadata]
                keywords = one, two, three
                zone, two, threec                 C   s*   t | jƒ}t |¡}|  | j|d ¡ d S )NÚkeywords)r   r"   r   r%   r&   r:   r'   r   r   r   Útest_keywords_parsing    s    

z2TestKeywordsParsingScenarios.test_keywords_parsingN)r+   r,   r-   r.   r<   r   r   r   r   r6   ‰   s   øûôr6   c                   @   s   e Zd Zdd„ ZdS )ÚTestProvidesExtrasc                 C   s.   d}t |ƒ}t |¡}|  ddg|d ¡ d S )NzX
        [metadata]
        provides_extras = foo
                          bar
        r   r$   Zprovides_extras)r   r   r%   r&   )r(   r   r   r)   r   r   r   Útest_provides_extras¨   s    
z'TestProvidesExtras.test_provides_extrasN)r+   r,   r-   r>   r   r   r   r   r=   §   s   r=   c                   @   s.   e Zd ZdddddgfgdœfgZdd„ Zd	S )
ÚTestDataFilesParsingÚ
data_fileszÇ
            [files]
            data_files =
                'i like spaces/' =
                    'dir with space/file with spc 2'
                    'dir with space/file with spc 1'
            zi like spaces/zdir with space/file with spc 2zdir with space/file with spc 1)r"   r@   c                 C   s.   t | jƒ}t |¡}|  | jt|d ƒ¡ d S )Nr@   )r   r"   r   r%   r&   r@   Úlistr'   r   r   r   Ú)test_handling_of_whitespace_in_data_filesÄ   s
    


ÿz>TestDataFilesParsing.test_handling_of_whitespace_in_data_filesN)r+   r,   r-   r.   rB   r   r   r   r   r?   ³   s   ÿÿøÿr?   c                   @   s   e Zd Zdd„ ZdS )ÚTestUTF8DescriptionFilec           	   	   C   sh   t  ¡ \}}d}d}|| }tj|ddd��}| |¡ W 5 Q R X t|ƒ}t |¡}|  ||d ¡ d S )Nz:
        [metadata]
        description_file = %s
        u    UTF8 description: Ã©"â€¦-ÊƒÅ‹'

ÚwÚutf8)ÚencodingÚlong_description)	ÚtempfileÚmkstempr   ÚopenÚwriter   r   r%   r&   )	r(   Ú_ÚpathZini_templateZunicode_descriptionr   Úfr   r)   r   r   r   Útest_utf8_description_fileÍ   s    
z2TestUTF8DescriptionFile.test_utf8_description_fileN)r+   r,   r-   rO   r   r   r   r   rC   Ì   s   rC   )r   rH   r   r   Z	six.movesr   r   Z	pbr.testsr   Zpbrr   r   ZBaseTestCaser   r/   r3   r6   r=   r?   rC   r   r   r   r   Ú<module>   s   1(