o
    ¯N i¾7  ã                   @   sb   d dl m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	 e	j
jZG dd„ dejƒZdS )	é    )Úabsolute_import)Úprint_functionN)Úmatchers)Úbase)Úversionc                   @   s  e Z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'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 d=d>„ Z!d?S )@ÚTestSemanticVersionc                 C   s¸   g d¢}|D ]}t j |¡}|  |t |¡¡ qt |d¡D ];\}}| |¡}| |¡}||k r7tj	}tj
}	ntj
}tj	}	t j |¡}
t j |¡}|  |
||ƒ¡ |  ||	|
ƒ¡ qd S )N)z
1.2.3.dev6z
1.2.3.dev7z1.2.3.a4.dev12z1.2.3.a4.dev13z1.2.3.a4z1.2.3.a5.dev1z1.2.3.a5z1.2.3.b3.dev1z1.2.3.b3z1.2.3.rc2.dev1z	1.2.3.rc2z1.2.3.rc3.dev1ú1.2.3ú1.2.4z1.3.3z2.2.3é   )r   ÚSemanticVersionÚfrom_pip_stringÚ
expectThatr   ÚEqualsÚ	itertoolsÚcombinationsÚindexÚLessThanÚGreaterThan)ÚselfÚordered_versionsÚvÚsvÚleftÚrightÚl_posÚr_posÚm1Úm2Úleft_svÚright_sv© r    úJ/home/ubuntu/.local/lib/python3.10/site-packages/pbr/tests/test_version.pyÚtest_ordering    s"   

ôz!TestSemanticVersion.test_orderingc                 C   s,   t jdddddd}tdƒ}|  ||¡ d S )Né   r
   r   Úrc©Úprerelease_typeÚ
prereleasez1.2.0rc1©r   r   r   ÚassertEqual©r   ÚexpectedÚparsedr    r    r!   Ú!test_from_pip_string_legacy_alphaD   ó
   
ÿz5TestSemanticVersion.test_from_pip_string_legacy_alphac                 C   sv   t jddddd}tdƒ}|  |t |¡¡ t jdddddd	d}td
ƒ}|  |t |¡¡ |  dd„ t t¡¡ d S )Nr#   r
   é   é   ©Ú	dev_countz1.2.3.post5é   Úaé   z1.2.3.0a4.post6c                   S   ó   t dƒS )Nz1.2.3.post5.dev6©r   r    r    r    r!   Ú<lambda>X   ó    zGTestSemanticVersion.test_from_pip_string_legacy_postN.<locals>.<lambda>)r   r   r   r   r   r   ÚraisesÚ
ValueErrorr*   r    r    r!   Ú!test_from_pip_string_legacy_postNK   s   þz5TestSemanticVersion.test_from_pip_string_legacy_postNc                 C   sr   t dƒ}t ddd¡}|  |t |¡¡ tjddddddd}t d	ƒ}|  |t |¡¡ |  d
d„ t t¡¡ d S )Nzv1.2.3r#   r
   r3   r4   r0   r5   r1   zV1.2.3.0a4.post6c                   S   r6   )Nzx1.2.3r7   r    r    r    r!   r8   f   r9   zDTestSemanticVersion.test_from_pip_string_v_version.<locals>.<lambda>)r   r   r   r   r   r   r:   r;   )r   r,   r+   r    r    r!   Útest_from_pip_string_v_version\   s   ÿz2TestSemanticVersion.test_from_pip_string_v_versionc                 C   s,   t jdddddd}tdƒ}|  ||¡ d S )Nr   r#   r4   r
   r%   z0.0.1a2r(   r*   r    r    r!   Ú+test_from_pip_string_legacy_nonzero_lead_ini   s
   
ÿz?TestSemanticVersion.test_from_pip_string_legacy_nonzero_lead_inc                 C   s,   t jdddddd}tdƒ}|  ||¡ d S )Nr   r#   r4   r
   r%   z0.1a2r(   r*   r    r    r!   Ú1test_from_pip_string_legacy_short_nonzero_lead_inq   r.   zETestSemanticVersion.test_from_pip_string_legacy_short_nonzero_lead_inc                 C   s,   t jdddddd}tdƒ}|  ||¡ d S )Nr
   r#   r   r$   r%   z	2.1.0.rc1r(   r*   r    r    r!   Ú+test_from_pip_string_legacy_no_0_prereleasex   r.   z?TestSemanticVersion.test_from_pip_string_legacy_no_0_prereleasec                 C   s,   t jdddddd}tdƒ}|  ||¡ d S )Nr
   r   r$   r#   r%   z	2.0.0.rc1r(   r*   r    r    r!   Ú-test_from_pip_string_legacy_no_0_prerelease_2   r.   zATestSemanticVersion.test_from_pip_string_legacy_no_0_prerelease_2c                 C   s*   t jddddd}tdƒ}|  ||¡ d S )NiÞ  r
   Úbr%   z	2014.2.b2r(   r*   r    r    r!   Ú(test_from_pip_string_legacy_non_440_beta†   s
   ÿz<TestSemanticVersion.test_from_pip_string_legacy_non_440_betac                 C   ó   |   ttd¡ d S )NÚ6eed5ae©ÚassertRaisesr;   r   ©r   r    r    r!   Ú"test_from_pip_string_pure_git_hash   s   z6TestSemanticVersion.test_from_pip_string_pure_git_hashc                 C   rD   )Nznon-release-tag/2014.12.16-1rF   rH   r    r    r!   Ú$test_from_pip_string_non_digit_start   s   ÿz8TestSemanticVersion.test_from_pip_string_non_digit_startc                 C   sr   t  ddd¡}|  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  |tdƒ¡ d S )Nr#   r
   r3   )r#   r
   r3   Úfinalr   r   ©	r   r   r)   Úversion_tupleÚbrief_stringÚdebian_stringÚrelease_stringÚ
rpm_stringr   ©r   Úsemverr    r    r!   Útest_final_version•   s   z&TestSemanticVersion.test_final_versionc                 C   sB   t  ddd¡}|  |tdƒ¡ |  |tdƒ¡ |  |tdƒ¡ d S )Nr#   r   Ú1z1.0ú1.0.0)r   r   r)   r   rR   r    r    r!   Útest_parsing_short_formsž   s   z,TestSemanticVersion.test_parsing_short_formsc                 C   óv   t jddddd}|  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d	| ¡ ¡ |  d
| ¡ ¡ |  |td	ƒ¡ d S ©Nr#   r
   r/   r0   r1   )r#   r
   r/   Údevr/   r	   z
1.2.4~dev5z
1.2.4.dev5z
1.2.3.dev5rL   rR   r    r    r!   Útest_dev_version¤   ó   z$TestSemanticVersion.test_dev_versionc                 C   rX   rY   rL   rR   r    r    r!   Útest_dev_no_git_version­   r\   z+TestSemanticVersion.test_dev_no_git_versionc                 C   rX   )Nr#   r
   r   r0   r1   )r#   r
   r   rZ   r/   ú1.2.0z
1.2.0~dev5z
1.2.0.dev5z1.1.9999.dev5rL   rR   r    r    r!   Útest_dev_zero_version¶   r\   z)TestSemanticVersion.test_dev_zero_versionc                 C   óx   t  dddddd¡}|  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d	| ¡ ¡ |  d
| ¡ ¡ |  |td	ƒ¡ d S )Nr#   r
   r/   r4   é   )r#   r
   r/   Úalphadevra   r	   z1.2.4~a1.dev12z1.2.4.0a1.dev12z1.2.3.a1.dev12rL   rR   r    r    r!   Útest_alpha_dev_version¿   ó   z*TestSemanticVersion.test_alpha_dev_versionc                 C   óv   t  ddddd¡}|  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d	| ¡ ¡ |  |tdƒ¡ d S )
Nr#   r
   r/   r4   )r#   r
   r/   Úalphar#   r	   z1.2.4~a1z	1.2.4.0a1z1.2.3.a1rL   rR   r    r    r!   Útest_alpha_versionÈ   r\   z&TestSemanticVersion.test_alpha_versionc                 C   re   )
Nr#   r
   r   r4   )r#   r
   r   rf   r#   r^   z1.2.0~a1z	1.2.0.0a1z1.1.9999.a1rL   rR   r    r    r!   Útest_alpha_zero_versionÑ   r\   z+TestSemanticVersion.test_alpha_zero_versionc                 C   sv   t  ddddd¡}|  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  |tdƒ¡ d S )	Nr#   r   r4   )r#   r   r   rf   r#   rV   z1.0.0~a1z	1.0.0.0a1z0.9999.9999.a1rL   rR   r    r    r!   Útest_alpha_major_zero_versionÚ   r\   z1TestSemanticVersion.test_alpha_major_zero_versionc                 C   st   t  dddd¡}|  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d| ¡ ¡ |  d	| ¡ ¡ |  |tdƒ¡ d S )
Nr#   r
   r/   r4   )r#   r
   r/   rf   r   r	   z1.2.4~a0z	1.2.4.0a0z1.2.3.a0rL   rR   r    r    r!   Útest_alpha_default_versionã   s   z.TestSemanticVersion.test_alpha_default_versionc                 C   r`   )Nr#   r
   r/   rB   ra   )r#   r
   r/   Úbetadevra   r	   z1.2.4~b1.dev12z1.2.4.0b1.dev12z1.2.3.b1.dev12rL   rR   r    r    r!   Útest_beta_dev_versionì   rd   z)TestSemanticVersion.test_beta_dev_versionc                 C   re   )
Nr#   r
   r/   rB   )r#   r
   r/   Úbetar#   r	   z1.2.4~b1z	1.2.4.0b1z1.2.3.b1rL   rR   r    r    r!   Útest_beta_versionõ   r\   z%TestSemanticVersion.test_beta_versionc                 C   s0   t  ddddd¡}|  t  ddd¡| ¡ ¡ d S )Nr#   r
   r/   rB   r3   ©r   r   r)   Ú	decrementrR   r    r    r!   Útest_decrement_nonreleaseþ   s   z-TestSemanticVersion.test_decrement_nonreleasec                 C   s,   t  ddd¡}|  t  ddd¡| ¡ ¡ d S )Nr#   r   i'  ro   rR   r    r    r!   Útest_decrement_nonrelease_zero  s   ÿz2TestSemanticVersion.test_decrement_nonrelease_zeroc                 C   s,   t  ddd¡}|  t  ddd¡| ¡ ¡ d S )Nr
   r0   r/   ro   rR   r    r    r!   Útest_decrement_release  s   z*TestSemanticVersion.test_decrement_releasec              	   C   sp   t  ddddd¡}|  t  ddddd¡| ¡ ¡ |  t  ddd¡|jdd¡ |  t  ddd¡|jdd	¡ d S )
Nr#   r
   r/   rB   r3   r   T©Úminor©Úmajor©r   r   r)   Ú	incrementrR   r    r    r!   Útest_increment_nonrelease  s   ÿÿÿz-TestSemanticVersion.test_increment_nonreleasec                 C   sh   t  ddd¡}|  t  ddd¡| ¡ ¡ |  t  ddd¡|jdd¡ |  t  ddd¡|jdd	¡ d S )
Nr#   r
   r0   r5   r3   r   Trt   rv   rx   rR   r    r    r!   Útest_increment_release!  s   ÿÿz*TestSemanticVersion.test_increment_releasec                 C   r`   )Nr#   r
   r/   r$   ra   )r#   r
   r/   Úcandidatedevra   r	   z1.2.4~rc1.dev12z1.2.4.0rc1.dev12z1.2.3.rc1.dev12rL   rR   r    r    r!   Útest_rc_dev_version-  rd   z'TestSemanticVersion.test_rc_dev_versionc                 C   re   )
Nr#   r
   r/   r$   )r#   r
   r/   Ú	candidater#   r	   z	1.2.4~rc1z
1.2.4.0rc1z	1.2.3.rc1rL   rR   r    r    r!   Útest_rc_version6  r\   z#TestSemanticVersion.test_rc_versionc              
   C   s`   |   tjdddddt ddd¡ d¡¡ |   tjdddddddt ddddd¡ d¡¡ d S )Nr#   r
   r3   r1   r$   )r)   r   r   Úto_devrH   r    r    r!   Útest_to_dev?  s   þþzTestSemanticVersion.test_to_devN)"Ú__name__Ú
__module__Ú__qualname__r"   r-   r<   r=   r>   r?   r@   rA   rC   rI   rJ   rT   rW   r[   r]   r_   rc   rg   rh   ri   rj   rl   rn   rq   rr   rs   rz   r{   r}   r   r   r    r    r    r!   r      s@    $													r   )Ú
__future__r   r   r   Ú	testtoolsr   Ú	pbr.testsr   Úpbrr   r   r   ÚBaseTestCaser   r    r    r    r!   Ú<module>   s   