o
    ¯N i€r  ã                   @   sþ   d dl mZ d dl mZ d dlZd dlZd dl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mZ d dlmZ d dlm	Z ejdkrLd d	lmZ nd dl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 )é    )Úabsolute_import)Úprint_functionN)Úmatchers)Ú	packaging)Úbase)Úfixtures)é   r   )Úmockc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚParseRequirementsTestc                 C   s   t  g ¡}|  g |¡ d S ©N)r   Úparse_requirementsÚassertEqual)ÚselfÚactual© r   úL/home/ubuntu/.local/lib/python3.10/site-packages/pbr/tests/test_packaging.pyÚtest_empty_requirementsB   s   
z-ParseRequirementsTest.test_empty_requirementsc                 C   s–   t  ¡ }tj |d¡}t|dƒ}| d¡ W d  ƒ n1 s w   Y  tj 	t
d|f¡ t
 ¡ }W d  ƒ n1 s=w   Y  |  dg|¡ dS )z/Ensure default files used if no files provided.úrequirements.txtÚwÚpbrNÚREQUIREMENTS_FILES)ÚtempfileÚmkdtempÚosÚpathÚjoinÚopenÚwriter	   ÚpatchÚobjectr   r   r   ©r   ÚtempdirÚrequirementsÚfÚresultr   r   r   Útest_default_requirementsF   s   ÿÿ
ýz/ParseRequirementsTest.test_default_requirementsc                 C   sp   t jddd\}}t|dƒ}| d¡ W d  ƒ n1 sw   Y  |  t d|¡¡ |  dd	gt 	¡ ¡ dS )
z6Ensure environment variable used if no files provided.Ú	openstackú.setup©ÚprefixÚsuffixr   úfoo
barNÚPBR_REQUIREMENTS_FILESÚfooÚbar©
r   Úmkstempr   r   Ú
useFixturer   ÚEnvironmentVariabler   r   r   ©r   Ú_Útmp_fileÚfhr   r   r   Útest_override_with_envU   s   ÿ
ÿz,ParseRequirementsTest.test_override_with_envc                 C   st   t jddd\}}t|dƒ}| d¡ W d   ƒ n1 sw   Y  |  t dd| ¡¡ |  dd	gt 	¡ ¡ d S )
Nr&   r'   r(   r   r+   r,   zno-such-file,r-   r.   r/   r3   r   r   r   Ú%test_override_with_env_multiple_files_   s   ÿÿÿz;ParseRequirementsTest.test_override_with_env_multiple_filesc                 C   s   t  ¡ }tj |d¡}t|dƒ!}| d¡ | d¡ | d¡ | d¡ | d¡ W d   ƒ n1 s4w   Y  t |g¡}|  	dg|¡ d S )	Nr   r   z-i https://myindex.local
z$  --index-url https://myindex.local
z) --extra-index-url https://myindex.local
z#--find-links https://myindex.local
zarequirement>=1.0
zarequirement>=1.0©
r   r   r   r   r   r   r   r   r   r   r    r   r   r   Útest_index_presentj   s   



ûz(ParseRequirementsTest.test_index_presentc                 C   s®   t  ¡ }tj |d¡}tj |d¡}t|dƒ}| d| ¡ W d   ƒ n1 s)w   Y  t|dƒ}| d¡ W d   ƒ n1 sCw   Y  t |g¡}|  	dg|¡ d S )Nr   z
nested.txtr   z-r r   r9   )r   r!   r"   Únestedr#   r$   r   r   r   Útest_nested_requirementsv   s   ÿÿz.ParseRequirementsTest.test_nested_requirementsN)	Ú__name__Ú
__module__Ú__qualname__r   r%   r7   r8   r:   r<   r   r   r   r   r
   @   s    
r
   c                   @   sà   e Zd ZdddgdœfdddgdœfgZdd	difd
d	difgZddddgdœfddddgdœfddg dœfgZee dddifdddifdddifgee¡ Zee ddddœfgdddifdddifgee¡ Zdd „ Zd!S )"ÚParseRequirementsTestScenariosznon-versionedFr.   )Ú	versionedÚexpectedrA   Tz
bar>=1.2.3znon-subdirectoryÚhas_subdirectoryzhas-subdirectoryÚnormalr+   r-   )ÚurlrB   Únormal_with_commentsz-# this is a comment
foo
# and another one
barÚremoves_index_linesz	-f foobarÚssh_egg_urlrE   z!git+ssh://foo.com/zipball#egg=barÚgit_https_egg_urlz#git+https://foo.com/zipball#egg=barÚhttp_egg_urlzhttps://foo.com/zipball#egg=barÚgit_egg_urlúgit://foo.com/zipball#egg=bar)rE   Únameznon-editableÚeditablec                 C   s¨   t  ¡ }| j}t| dƒr| jrd| }t| dƒr| jrd| }t| dƒr+| jr+d| }t|jdƒ}| 	|¡ W d   ƒ n1 sAw   Y  |  
| jt |jg¡¡ d S )NrN   z-e %srA   z%s-1.2.3rC   z%s&subdirectory=bazr   )r   ÚNamedTemporaryFilerE   ÚhasattrrN   rA   rC   r   rM   r   r   rB   r   r   )r   r5   Ú
req_stringr6   r   r   r   Útest_parse_requirements¶   s   ÿÿz6ParseRequirementsTestScenarios.test_parse_requirementsN)	r=   r>   r?   Úversioned_scenariosÚsubdirectory_scenariosÚ	scenariosÚtestscenariosÚmultiply_scenariosrR   r   r   r   r   r@   ‚   sJ    þ

þþþ÷
þ
úöþÿ

þôr@   c                       s,   e Zd Z‡ fdd„Zdd„ Zdd„ Z‡  ZS )ÚParseDependencyLinksTestc                    s&   t t| ƒ ¡  tjddd\}| _d S )Nr&   r'   r(   )ÚsuperrX   ÚsetUpr   r0   r5   )r   r4   ©Ú	__class__r   r   rZ   È   s   ÿzParseDependencyLinksTest.setUpc                 C   óR   t | jdƒ}| d¡ W d   ƒ n1 sw   Y  |  dgt | jg¡¡ d S )Nr   zhttp://test.com
zhttp://test.com©r   r5   r   r   r   Úparse_dependency_links©r   r6   r   r   r   Útest_parse_dependency_normalÎ   ó   ÿþz5ParseDependencyLinksTest.test_parse_dependency_normalc                 C   r]   )Nr   z -e git://foo.com/zipball#egg=barrL   r^   r`   r   r   r   Ú&test_parse_dependency_with_git_egg_urlÖ   rb   z?ParseDependencyLinksTest.test_parse_dependency_with_git_egg_url)r=   r>   r?   rZ   ra   rc   Ú__classcell__r   r   r[   r   rX   Æ   s    rX   c                       s  e Zd ZdddifdddifgZ‡ fdd„Z‡ fdd„Zd	d
„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z‡  Z S )=ÚTestVersionsÚpreversionedTÚpostversionedFc                    sF   t t| ƒ ¡  |  t | j¡¡| _|  t ¡ ¡ |  t 	| j¡¡ d S r   )
rY   re   rZ   r1   Úpbr_fixturesÚGitRepoÚpackage_dirÚrepoÚGPGKeyÚChdir©r   r[   r   r   rZ   æ   s   zTestVersions.setUpc                    s    t t| ƒ ¡  tj dd ¡ d S )NÚSKIP_WRITE_GIT_CHANGELOG)rY   re   ÚtearDownr   ÚenvironÚpoprn   r[   r   r   rp   ì   s   zTestVersions.tearDownc              	   C   s˜   t  ¡ }t  d|¡- t  d¡}tj d¡ddig|_t d¡}W d   ƒ n1 s+w   Y  W d   ƒ n1 s:w   Y  |  	|j
¡ |  |¡ d S )Nzpbr.packaging.openzemail.message_from_fileÚTestÚNameÚpbr_testpackage)r	   Ú	mock_openr   ÚemailÚerrorsÚMessageErrorÚside_effectr   Ú_get_version_from_pkg_metadataÚ
assertTrueÚcalledÚassertIsNone)r   Úmocked_openÚmessage_from_fileÚversionr   r   r   Ú%test_email_parsing_errors_are_handledð   s   
þÿû€ÿ
z2TestVersions.test_email_parsing_errors_are_handledc                 C   ó@   | j  ¡  | j  d¡ | j  d¡ t ¡ }|  |t d¡¡ d S )Nú1.2.3úSem-Ver: api-breakú
2.0.0.dev1©rk   ÚcommitÚtagr   Ú_get_version_from_gitÚ
assertThatr   Ú
StartsWith©r   r   r   r   r   Útest_capitalized_headersÿ   ó
   
z%TestVersions.test_capitalized_headersc                 C   rƒ   )Nr„   zSem-ver: api-breakr†   r‡   r   r   r   r   Ú test_capitalized_headers_partial  r   z-TestVersions.test_capitalized_headers_partialc                 C   rƒ   )Nr„   zSem-ver: feature,api-breakr†   r‡   r   r   r   r   Ú"test_multi_inline_symbols_no_space  r   z/TestVersions.test_multi_inline_symbols_no_spacec                 C   rƒ   )Nr„   zSem-ver: feature, api-breakr†   r‡   r   r   r   r   Ú test_multi_inline_symbols_spaced  r   z-TestVersions.test_multi_inline_symbols_spacedc                 C   rƒ   )Nr„   zSem-ver: api-break,featurer†   r‡   r   r   r   r   Ú"test_multi_inline_symbols_reversed  r   z/TestVersions.test_multi_inline_symbols_reversedc                 C   rƒ   )Nr„   z   sem-ver: api-breakr†   r‡   r   r   r   r   Útest_leading_space"  r   zTestVersions.test_leading_spacec                 C   rƒ   )Nr„   z'   Some cool text
   sem-ver: api-breakr†   r‡   r   r   r   r   Útest_leading_space_multiline)  r   z)TestVersions.test_leading_space_multilinec                 C   rƒ   )Nr„   z  ssem-ver: api-breakú
1.2.4.dev1r‡   r   r   r   r   Ú(test_leading_characters_symbol_not_found0  r   z5TestVersions.test_leading_characters_symbol_not_foundc                 C   s0   | j  ¡  | j  d¡ t d¡}|  d|¡ d S )Nr„   ©rk   rˆ   r‰   r   rŠ   r   r   r   r   r   Ú#test_tagged_version_has_tag_version7  s   

z0TestVersions.test_tagged_version_has_tag_versionc                 C   s.   | j  ¡  | j  d¡ t ¡ }|  d|¡ d S )Nú	1.2.3-rc2z
1.2.3.0rc2r˜   r   r   r   r   Ú4test_tagged_version_with_semver_compliant_prerelease=  s   
zATestVersions.test_tagged_version_with_semver_compliant_prereleasec                 C   rƒ   )Nz1.4r…   r†   r‡   r   r   r   r   Ú&test_non_canonical_tagged_version_bumpC  r   z3TestVersions.test_non_canonical_tagged_version_bumpc                 C   ó>   | j  ¡  | j  d¡ | j  ¡  t ¡ }|  |t d¡¡ d S )Nr„   r–   r‡   r   r   r   r   Ú1test_untagged_version_has_dev_version_postversionJ  ó
   

z>TestVersions.test_untagged_version_has_dev_version_postversionc                 C   r   )Nú	1.2.3.0a1ú1.2.3.0a2.dev1r‡   r   r   r   r   Ú9test_untagged_pre_release_has_pre_dev_version_postversionQ  rŸ   zFTestVersions.test_untagged_pre_release_has_pre_dev_version_postversionc                 C   rƒ   )Nr„   úsem-ver: deprecationz
1.3.0.dev1r‡   r   r   r   r   Ú test_untagged_version_minor_bumpX  r   z-TestVersions.test_untagged_version_minor_bumpc                 C   rƒ   )Nr„   úsem-ver: api-breakr†   r‡   r   r   r   r   Ú test_untagged_version_major_bump_  r   z-TestVersions.test_untagged_version_major_bumpc                 C   ó@   | j  ¡  | j  d¡ | j  ¡  t d¡}|  |t d¡¡ d S )Nr„   ú1.2.5ú
1.2.5.dev1r‡   r   r   r   r   Ú0test_untagged_version_has_dev_version_preversionf  ó
   


z=TestVersions.test_untagged_version_has_dev_version_preversionc                 C   r§   )Nr    r¨   r©   r‡   r   r   r   r   Ú:test_untagged_version_after_pre_has_dev_version_preversionm  r«   zGTestVersions.test_untagged_version_after_pre_has_dev_version_preversionc                 C   r§   )Nr    r„   r¡   r‡   r   r   r   r   Ú9test_untagged_version_after_rc_has_dev_version_preversiont  r«   zFTestVersions.test_untagged_version_after_rc_has_dev_version_preversionc                 C   s8   | j  ¡  | j  d¡ | j  ¡  t ¡ }|  d|¡ d S )Nrš   z1.2.3.0rc3.dev1r˜   r   r   r   r   Ú;test_untagged_version_after_semver_compliant_prerelease_tag{  s
   

zHTestVersions.test_untagged_version_after_semver_compliant_prerelease_tagc                 C   sL   | j  ¡  | j  d¡ | j  ¡  |  ttjd¡}|  |jd t	 
d¡¡ d S )Nr„   r   úgit history©rk   rˆ   r‰   ÚassertRaisesÚ
ValueErrorr   rŠ   r‹   Úargsr   rŒ   ©r   Úerrr   r   r   Útest_preversion_too_low_simple‚  s   

ÿz+TestVersions.test_preversion_too_low_simplec                 C   sN   | j  ¡  | j  d¡ | j  d¡ |  ttjd¡}|  |jd t	 
d¡¡ d S )Nr„   úsem-ver: featurez1.2.4r   r¯   r°   r´   r   r   r   Ú&test_preversion_too_low_semver_headers  s   
ÿz3TestVersions.test_preversion_too_low_semver_headersc                    s:   ‡fdd„‰ ‡ ‡fdd„}|dƒ ˆj  d¡ |dƒ d S )Nc                    s   ˆ j jd }t || ¡S )Nz/.git)rk   Ú_basedirr   Ú_get_increment_kwargs)r‰   Úgit_dirrn   r   r   Ú
get_kwargsŸ  s   z=TestVersions.test_get_kwargs_corner_cases.<locals>.get_kwargsc                    sÐ   ˆj  ¡  ˆ i ˆ | ƒ¡ ˆj  d¡ ˆ i ˆ | ƒ¡ ˆj  d¡ ˆ ddiˆ | ƒ¡ ˆj  ¡  ˆj  d¡ ˆ ddiˆ | ƒ¡ ˆj  ¡  ˆj  d¡ ˆ ddiˆ | ƒ¡ ˆj  d¡ ˆ dddœˆ | ƒ¡ d S )	Nzsem-ver: bugfixr·   ÚminorTr£   r¥   Úmajor)r¾   r½   )rk   rˆ   r   Úuncommit)r‰   ©r¼   r   r   r   Ú_check_combinations£  s   


zFTestVersions.test_get_kwargs_corner_cases.<locals>._check_combinationsÚ r„   )rk   r‰   )r   rÁ   r   rÀ   r   Útest_get_kwargs_corner_casesœ  s
   z)TestVersions.test_get_kwargs_corner_casesc                 C   s†  | j  ¡  | j  d¡ | j  ¡  | j  d¡ t ¡ }|  |t d¡¡ | j  ¡  t ¡ }|  |t d¡¡ | j  ¡  | j  d¡ | j  ¡  | j  d¡ t ¡ }|  |t d¡¡ | j  ¡  | j  d¡ | j  ¡  | j  d	¡ t ¡ }|  |t d
¡¡ | j  ¡  | j  d¡ | j  ¡  | j  d¡ t ¡ }|  |t d¡¡ | j  ¡  | j  d¡ | j  ¡  | j  d¡ t ¡ }|  |t d¡¡ d S )NÚ1Úbadverz
1.0.1.dev1z
1.0.1.dev2z1.2Úbadver2z
1.2.1.dev1r„   Úbadver3r–   z	1.2.4.0a1Úbadver4z1.2.4.0a2.dev1Ú2znon-release-tag/2014.12.16-1z
2.0.1.dev1r‡   r   r   r   r   Útest_invalid_tag_ignored·  sB   










z%TestVersions.test_invalid_tag_ignoredc                 C   s.   | j  ¡  | j  d¡ t ¡ }|  d|¡ d S )Nz	1.3.0.0a1r˜   r   r   r   r   Útest_valid_tag_honouredâ  s   
z$TestVersions.test_valid_tag_honouredc                 C   s:   | j  ¡  | j  d¡ dtjd< t d¡}|  d|¡ d S )Nr„   rÄ   ro   )rk   rˆ   r‰   r   rq   r   rŠ   r   r   r   r   r   Útest_skip_write_git_changelogë  s
   


z*TestVersions.test_skip_write_git_changelog)!r=   r>   r?   rU   rZ   rp   r‚   rŽ   r   r‘   r’   r“   r”   r•   r—   r™   r›   rœ   rž   r¢   r¤   r¦   rª   r¬   r­   r®   r¶   r¸   rÃ   rÊ   rË   rÌ   rd   r   r   r[   r   re   ß   s@    

þ+	re   c                       s4   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Z‡  ZS )	ÚTestRepositoryURLDependenciesc                    sh   t t| ƒ ¡  tj t ¡ d¡| _t	| jdƒ}| 
d g d¢¡¡ W d   ƒ d S 1 s-w   Y  d S )Nr   r   Ú
)zH-e git+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rczE-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborizezJ-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-betazK-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-betazQ-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1z^-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1z‚-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz`-e git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123z+-e git+git://git.project.org/Proj#egg=Proj1ú0git+https://git.project.org/Proj#egg=Proj2-0.0.1z+-e git+ssh://git.project.org/Proj#egg=Proj3ú2svn+svn://svn.project.org/svn/Proj#egg=Proj4-0.0.2z;-e svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5ú9hg+http://hg.project.org/Proj@da39a3ee5e6b#egg=Proj-0.0.3z.-e hg+http://hg.project.org/Proj@2019#egg=Projú1hg+http://hg.project.org/Proj@v1.0#egg=Proj-0.0.4z9-e hg+http://hg.project.org/Proj@special_feature#egg=Projú'git://foo.com/zipball#egg=foo-bar-1.2.4ú
pypi-proj1ú
pypi-proj2)rY   rÍ   rZ   r   r   r   r   r   r"   r   r   )r   r#   r[   r   r   rZ   ö  s   ÿÿÿ"ÿz#TestRepositoryURLDependencies.setUpc              	   C   sB   g d¢}g d¢}t |ƒD ]\}}|  || t dtj|¡¡ qd S )N)/údjango-thumborizeúdjango-thumborize-betaúdjango-thumborize2-betaúdjango-thumborize2-beta>=4.0.1ú+django-thumborize2-beta>=1.0.0-alpha.beta.1zFdjango-thumborize2-beta>=1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okayú-django-thumborize2-beta>=2.0.0-rc.1+build.123zdjango-thumborize-beta>=0.0.4zdjango-thumborize-beta>=1.2.3z django-thumborize-beta>=10.20.30z-django-thumborize-beta>=1.1.2-prerelease+metaz"django-thumborize-beta>=1.1.2+metaz(django-thumborize-beta>=1.1.2+meta-validz#django-thumborize-beta>=1.0.0-alphaz"django-thumborize-beta>=1.0.0-betaz(django-thumborize-beta>=1.0.0-alpha.betaz*django-thumborize-beta>=1.0.0-alpha.beta.1z%django-thumborize-beta>=1.0.0-alpha.1z*django-thumborize-beta>=1.0.0-alpha0.validz*django-thumborize-beta>=1.0.0-alpha.0validzNdjango-thumborize-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz*django-thumborize-beta>=1.0.0-rc.1+build.1z,django-thumborize-beta>=2.0.0-rc.1+build.123z"django-thumborize-beta>=1.2.3-betaz+django-thumborize-beta>=10.2.3-DEV-SNAPSHOTz*django-thumborize-beta>=1.2.3-SNAPSHOT-123zdjango-thumborize-beta>=1.0.0zdjango-thumborize-beta>=2.0.0zdjango-thumborize-beta>=1.1.7z(django-thumborize-beta>=2.0.0+build.1848z(django-thumborize-beta>=2.0.1-alpha.1227z(django-thumborize-beta>=1.0.0-alpha+betaz<django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12+788z5django-thumborize-beta>=1.2.3----R-S.12.9.1--.12+metaz8django-thumborize-beta>=1.2.3----RC-SNAPSHOT.12.9.1--.12z:django-thumborize-beta>=1.0.0+0.build.1-rc.10000aaa-kk-0.1zGdjango-thumborize-beta>=999999999999999999.99999999999999.9999999999999ÚProj1úProj2>=0.0.1ÚProj3úProj4>=0.0.2ÚProj5úProj>=0.0.3ÚProjúProj>=0.0.4râ   úfoo-bar>=1.2.4)/zegg=django-thumborizezegg=django-thumborize-betazegg=django-thumborize2-betaz!egg=django-thumborize2-beta-4.0.1z.egg=django-thumborize2-beta-1.0.0-alpha.beta.1zIegg=django-thumborize2-beta-1.0.0-alpha-a.b-c-long+build.1-aef.1-its-okayz0egg=django-thumborize2-beta-2.0.0-rc.1+build.123z egg=django-thumborize-beta-0.0.4z egg=django-thumborize-beta-1.2.3z#egg=django-thumborize-beta-10.20.30z0egg=django-thumborize-beta-1.1.2-prerelease+metaz%egg=django-thumborize-beta-1.1.2+metaz+egg=django-thumborize-beta-1.1.2+meta-validz&egg=django-thumborize-beta-1.0.0-alphaz%egg=django-thumborize-beta-1.0.0-betaz+egg=django-thumborize-beta-1.0.0-alpha.betaz-egg=django-thumborize-beta-1.0.0-alpha.beta.1z(egg=django-thumborize-beta-1.0.0-alpha.1z-egg=django-thumborize-beta-1.0.0-alpha0.validz-egg=django-thumborize-beta-1.0.0-alpha.0validzQegg=django-thumborize-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz-egg=django-thumborize-beta-1.0.0-rc.1+build.1z/egg=django-thumborize-beta-2.0.0-rc.1+build.123z%egg=django-thumborize-beta-1.2.3-betaz.egg=django-thumborize-beta-10.2.3-DEV-SNAPSHOTz-egg=django-thumborize-beta-1.2.3-SNAPSHOT-123z egg=django-thumborize-beta-1.0.0z egg=django-thumborize-beta-2.0.0z egg=django-thumborize-beta-1.1.7z+egg=django-thumborize-beta-2.0.0+build.1848z+egg=django-thumborize-beta-2.0.1-alpha.1227z+egg=django-thumborize-beta-1.0.0-alpha+betaz?egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12+788z8egg=django-thumborize-beta-1.2.3----R-S.12.9.1--.12+metaz;egg=django-thumborize-beta-1.2.3----RC-SNAPSHOT.12.9.1--.12z=egg=django-thumborize-beta-1.0.0+0.build.1-rc.10000aaa-kk-0.1zJegg=django-thumborize-beta-999999999999999999.99999999999999.9999999999999z	egg=Proj1zegg=Proj2-0.0.1z	egg=Proj3zegg=Proj4-0.0.2z	egg=Proj5zegg=Proj-0.0.3úegg=Projzegg=Proj-0.0.4rå   zegg=foo-bar-1.2.4zegg=([^&]+).*$)Ú	enumerater   ÚreÚsubr   Úegg_fragment)r   rB   ÚtestsÚindexÚtestr   r   r   Útest_egg_fragment  s   11þÿz/TestRepositoryURLDependencies.test_egg_fragmentc                 C   ó"   t  | jg¡}|  g d¢|¡ d S )N)zoslo.messaging>=1.0.0-rcrÖ   r×   rØ   rÙ   rÚ   zOdjango-thumborize2-beta>=1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayrÛ   rÜ   rÝ   rÞ   rß   rà   rá   râ   rã   râ   rä   rÔ   rÕ   )r   r   r"   r   ©r   r$   r   r   r   Ú test_parse_repo_url_requirements€  s
   éz>TestRepositoryURLDependencies.test_parse_repo_url_requirementsc                 C   rî   )N)zEgit+git://git.pro-ject.org/oslo.messaging#egg=oslo.messaging-1.0.0-rczBgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborizezGgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize-betazHgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-betazNgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-4.0.1z[git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha.beta.1zgit+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-1.0.0-alpha-a.b-c-somethinglong+build.1-aef.1-its-okayz]git+git://git.pro-ject.org/django-thumborize#egg=django-thumborize2-beta-2.0.0-rc.1+build.123z(git+git://git.project.org/Proj#egg=Proj1rÏ   z(git+ssh://git.project.org/Proj#egg=Proj3rÐ   z8svn+http://svn.project.org/svn/Proj/trunk@2019#egg=Proj5rÑ   z+hg+http://hg.project.org/Proj@2019#egg=ProjrÒ   z6hg+http://hg.project.org/Proj@special_feature#egg=ProjrÓ   )r   r_   r"   r   rï   r   r   r   Ú$test_parse_repo_url_dependency_linksœ  s
   ëzBTestRepositoryURLDependencies.test_parse_repo_url_dependency_links)r=   r>   r?   rZ   rí   rð   rñ   rd   r   r   r[   r   rÍ   ô  s
    !irÍ   )Ú
__future__r   r   Úemail.errorsrw   r   rç   Úsysr   r   rV   Ú	testtoolsr   r   r   Ú	pbr.testsr   rh   Úversion_infoÚunittestr	   ÚBaseTestCaser
   r@   rX   re   rÍ   r   r   r   r   Ú<module>   s.   (
BD  