
    c7                         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ej                        Z
y)    N)matchers)base)versionc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!y )!TestSemanticVersionc                    g d}|D ]F  }t         j                  j                  |      }| j                  |t	        j
                  |             H t        j                  |d      D ]  \  }}|j                  |      }|j                  |      }||k  r!t        j                  }t        j                  }	n t        j                  }t        j                  }	t         j                  j                  |      }
t         j                  j                  |      }| j                  |
 ||             | j                  | |	|
              y )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_svs               8/usr/lib/python3/dist-packages/pbr/tests/test_version.pytest_orderingz!TestSemanticVersion.test_ordering   s   
$ " 	5A((88;BOOB 34	5 %112BAF 	3KD%$**40E$**51Eu}&&))))&&--==dCG..>>uEHOOGR\2OOHbk2	3    c                 r    t        j                  ddddd      }t        d      }| j                  ||       y )N   r   r   rcprerelease_type
prereleasez1.2.0rc1r   r   r   assertEqualr   expectedparseds      r!   !test_from_pip_string_legacy_alphaz5TestSemanticVersion.test_from_pip_string_legacy_alphaA   s7    **q!Ta9 ,6*r#   c                    t        j                  dddd      }t        d      }| j                  |t	        j
                  |             t        j                  dddddd	      }t        d
      }| j                  |t	        j
                  |             | j                  d t	        j                  t                     y )Nr%   r         	dev_countz1.2.3.post5   a   z1.2.3.0a4.post6c                      t        d      S )Nz1.2.3.post5.dev6r    r#   r!   <lambda>zGTestSemanticVersion.test_from_pip_string_legacy_postN.<locals>.<lambda>T   s    O$67 r#   )r   r   r   r   r   r   raises
ValueErrorr,   s      r!   !test_from_pip_string_legacy_postNz5TestSemanticVersion.test_from_pip_string_legacy_postNG   s    
 **1aa@ /(//&"9:**1aCaH !23(//&"9:7OOJ'	)r#   c                 |   t        d      }t        j                  ddd      }| j                  |t	        j
                  |             t        j                  dddddd      }t        d	      }| j                  |t	        j
                  |             | j                  d
 t	        j                  t                     y )Nzv1.2.3r%   r   r5   r6   r2   r7   r3   zV1.2.3.0a4.post6c                      t        d      S )Nzx1.2.3r9   r:   r#   r!   r;   zDTestSemanticVersion.test_from_pip_string_v_version.<locals>.<lambda>a   s    OH- r#   )r   r   r   r   r   r   r<   r=   )r   r.   r-   s      r!   test_from_pip_string_v_versionz2TestSemanticVersion.test_from_pip_string_v_versionW   s     ***1a3(//&"9:**1aCaH !34(//&"9:-OOJ'	)r#   c                 r    t        j                  ddddd      }t        d      }| j                  ||       y )Nr   r%   r6   r   r'   z0.0.1a2r*   r,   s      r!   +test_from_pip_string_legacy_nonzero_lead_inz?TestSemanticVersion.test_from_pip_string_legacy_nonzero_lead_ind   s7    **q!SQ8 +6*r#   c                 r    t        j                  ddddd      }t        d      }| j                  ||       y )Nr   r%   r6   r   r'   z0.1a2r*   r,   s      r!   1test_from_pip_string_legacy_short_nonzero_lead_inzETestSemanticVersion.test_from_pip_string_legacy_short_nonzero_lead_ink   s7    **q!SQ8 )6*r#   c                 r    t        j                  ddddd      }t        d      }| j                  ||       y )Nr   r%   r   r&   r'   z	2.1.0.rc1r*   r,   s      r!   +test_from_pip_string_legacy_no_0_prereleasez?TestSemanticVersion.test_from_pip_string_legacy_no_0_prereleaseq   7    **q!Ta9 -6*r#   c                 r    t        j                  ddddd      }t        d      }| j                  ||       y )Nr   r   r&   r%   r'   z	2.0.0.rc1r*   r,   s      r!   -test_from_pip_string_legacy_no_0_prerelease_2zATestSemanticVersion.test_from_pip_string_legacy_no_0_prerelease_2w   rH   r#   c                 p    t        j                  dddd      }t        d      }| j                  ||       y )Ni  r   br'   z	2014.2.b2r*   r,   s      r!   (test_from_pip_string_legacy_non_440_betaz<TestSemanticVersion.test_from_pip_string_legacy_non_440_beta}   s5    **!SQ8 -6*r#   c                 :    | j                  t        t        d       y )N6eed5aeassertRaisesr=   r   r   s    r!   "test_from_pip_string_pure_git_hashz6TestSemanticVersion.test_from_pip_string_pure_git_hash   s    *oyAr#   c                 :    | j                  t        t        d       y )Nznon-release-tag/2014.12.16-1rP   rR   s    r!   $test_from_pip_string_non_digit_startz8TestSemanticVersion.test_from_pip_string_non_digit_start   s    *o8	:r#   c                    t        j                  ddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d|j                                | j                  d|j                                | j                  |t        d             y )Nr%   r   r5   )r%   r   r5   finalr   r	   	r   r   r+   version_tuplebrief_stringdebian_stringrelease_string
rpm_stringr   r   semvers     r!   test_final_versionz&TestSemanticVersion.test_final_version   s    ((Aq1.0D0D0FG&"5"5"78&"6"6"89&"7"7"9:&"3"3"56!9:r#   c                     t        j                  ddd      }| j                  |t        d             | j                  |t        d             | j                  |t        d             y )Nr%   r   1z1.01.0.0)r   r   r+   r   r^   s     r!   test_parsing_short_formsz,TestSemanticVersion.test_parsing_short_forms   sU    ((Aq1!56!78!9:r#   c                    t        j                  dddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d	|j                                | j                  d
|j                                | j                  |t        d	             y Nr%   r   r1   r2   r3   )r%   r   r1   devr1   r
   z
1.2.4~dev5z
1.2.4.dev5z
1.2.3.dev5rX   r^   s     r!   test_dev_versionz$TestSemanticVersion.test_dev_version       ((AqA>,f.B.B.DE&"5"5"78v';';'=>v'<'<'>?v'8'8':;!>?r#   c                    t        j                  dddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d	|j                                | j                  d
|j                                | j                  |t        d	             y rf   rX   r^   s     r!   test_dev_no_git_versionz+TestSemanticVersion.test_dev_no_git_version   ri   r#   c                    t        j                  dddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d	|j                                | j                  d
|j                                | j                  |t        d	             y )Nr%   r   r   r2   r3   )r%   r   r   rg   r1   1.2.0z
1.2.0~dev5z
1.2.0.dev5z1.1.9999.dev5rX   r^   s     r!   test_dev_zero_versionz)TestSemanticVersion.test_dev_zero_version   s    ((AqA>,f.B.B.DE&"5"5"78v';';'=>v'<'<'>?&*;*;*=>!>?r#   c                    t        j                  dddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d	|j                                | j                  d
|j                                | j                  |t        d	             y )Nr%   r   r1   r6      )r%   r   r1   alphadevrp   r
   z1.2.4~a1.dev12z1.2.4.0a1.dev12z1.2.3.a1.dev12rX   r^   s     r!   test_alpha_dev_versionz*TestSemanticVersion.test_alpha_dev_version   s    ((Aq#q"=2F4H4H4JK&"5"5"78)6+?+?+AB*F,A,A,CD)6+<+<+>?1B!CDr#   c                    t        j                  ddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d|j                                | j                  d	|j                                | j                  |t        d             y )
Nr%   r   r1   r6   )r%   r   r1   alphar%   r
   z1.2.4~a1z	1.2.4.0a1z1.2.3.a1rX   r^   s     r!   test_alpha_versionz&TestSemanticVersion.test_alpha_version   s    ((Aq#q9.0D0D0FG&"5"5"78V%9%9%;<f&;&;&=>V%6%6%89!=>r#   c                    t        j                  ddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d|j                                | j                  d	|j                                | j                  |t        d             y )
Nr%   r   r   r6   )r%   r   r   rt   r%   rm   z1.2.0~a1z	1.2.0.0a1z1.1.9999.a1rX   r^   s     r!   test_alpha_zero_versionz+TestSemanticVersion.test_alpha_zero_version   s    ((Aq#q9.0D0D0FG&"5"5"78V%9%9%;<f&;&;&=>(9(9(;<!=>r#   c                    t        j                  ddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d|j                                | j                  d|j                                | j                  |t        d             y )	Nr%   r   r6   )r%   r   r   rt   r%   rc   z1.0.0~a1z	1.0.0.0a1z0.9999.9999.a1rX   r^   s     r!   test_alpha_major_zero_versionz1TestSemanticVersion.test_alpha_major_zero_version   s    ((Aq#q9.0D0D0FG&"5"5"78V%9%9%;<f&;&;&=>)6+<+<+>?!=>r#   c                    t        j                  dddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d|j                                | j                  d	|j                                | j                  |t        d             y )
Nr%   r   r1   r6   )r%   r   r1   rt   r   r
   z1.2.4~a0z	1.2.4.0a0z1.2.3.a0rX   r^   s     r!   test_alpha_default_versionz.TestSemanticVersion.test_alpha_default_version   s    ((Aq#6.0D0D0FG&"5"5"78V%9%9%;<f&;&;&=>V%6%6%89!=>r#   c                    t        j                  dddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d	|j                                | j                  d
|j                                | j                  |t        d	             y )Nr%   r   r1   rL   rp   )r%   r   r1   betadevrp   r
   z1.2.4~b1.dev12z1.2.4.0b1.dev12z1.2.3.b1.dev12rX   r^   s     r!   test_beta_dev_versionz)TestSemanticVersion.test_beta_dev_version   s    ((Aq#q"=163G3G3IJ&"5"5"78)6+?+?+AB*F,A,A,CD)6+<+<+>?1B!CDr#   c                    t        j                  ddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d|j                                | j                  d	|j                                | j                  |t        d             y )
Nr%   r   r1   rL   )r%   r   r1   betar%   r
   z1.2.4~b1z	1.2.4.0b1z1.2.3.b1rX   r^   s     r!   test_beta_versionz%TestSemanticVersion.test_beta_version   s    ((Aq#q9-v/C/C/EF&"5"5"78V%9%9%;<f&;&;&=>V%6%6%89!=>r#   c                     t        j                  ddddd      }| j                  t        j                  ddd      |j                                y )Nr%   r   r1   rL   r5   r   r   r+   	decrementr^   s     r!   test_decrement_nonreleasez-TestSemanticVersion.test_decrement_nonrelease   sF    ((Aq#q9##Aq!,f.>.>.@	Br#   c                     t        j                  ddd      }| j                  t        j                  ddd      |j                                y )Nr%   r   i'  r   r^   s     r!   test_decrement_nonrelease_zeroz2TestSemanticVersion.test_decrement_nonrelease_zero   sD     ((Aq1##AtT2F4D4D4F	Hr#   c                     t        j                  ddd      }| j                  t        j                  ddd      |j                                y )Nr   r2   r1   r   r^   s     r!   test_decrement_releasez*TestSemanticVersion.test_decrement_release   sD     ((Aq1##Aq!,f.>.>.@	Br#   c           	         t        j                  ddddd      }| j                  t        j                  ddddd      |j                                | j                  t        j                  ddd      |j                  d             | j                  t        j                  ddd      |j                  d	             y )
Nr%   r   r1   rL   r5   r   Tminormajorr   r   r+   	incrementr^   s     r!   test_increment_nonreleasez-TestSemanticVersion.test_increment_nonrelease  s     ((Aq#q9##Aq!S!4f6F6F6H	J 	##Aq!,f.>.>T.>.J	L##Aq!,f.>.>T.>.J	Lr#   c                 x   t        j                  ddd      }| j                  t        j                  ddd      |j                                | j                  t        j                  ddd      |j                  d             | j                  t        j                  ddd      |j                  d	             y )
Nr%   r   r2   r7   r5   r   Tr   r   r   r^   s     r!   test_increment_releasez*TestSemanticVersion.test_increment_release  s     ((Aq1##Aq!,f.>.>.@	B##Aq!,f.>.>T.>.J	L##Aq!,f.>.>T.>.J	Lr#   c                    t        j                  dddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d	|j                                | j                  d
|j                                | j                  |t        d	             y )Nr%   r   r1   r&   rp   )r%   r   r1   candidatedevrp   r
   z1.2.4~rc1.dev12z1.2.4.0rc1.dev12z1.2.3.rc1.dev12rX   r^   s     r!   test_rc_dev_versionz'TestSemanticVersion.test_rc_dev_version  s    ((Aq$2>68L8L8NO&"5"5"78*F,@,@,BC+V-B-B-DE*F,=,=,?@1C!DEr#   c                    t        j                  ddddd      }| j                  d|j                                | j                  d|j	                                | j                  d|j                                | j                  d|j                                | j                  d	|j                                | j                  |t        d             y )
Nr%   r   r1   r&   )r%   r   r1   	candidater%   r
   z	1.2.4~rc1z
1.2.4.0rc1z	1.2.3.rc1rX   r^   s     r!   test_rc_versionz#TestSemanticVersion.test_rc_version(  s    ((Aq$:2F4H4H4JK&"5"5"78f&:&:&<=v'<'<'>?f&7&7&9:!>?r#   c           
      @   | j                  t        j                  dddd      t        j                  ddd      j                  d             | j                  t        j                  dddddd      t        j                  ddddd      j                  d             y )Nr%   r   r5   r3   r&   )r+   r   r   to_devrR   s    r!   test_to_devzTestSemanticVersion.test_to_dev1  s    ##Aq!q9##Aq!,33A6	8 	##Aq!T1B##Aq!T15<<Q?	Ar#   N)"__name__
__module____qualname__r"   r/   r>   rA   rC   rE   rG   rJ   rM   rS   rU   r`   rd   rh   rk   rn   rr   ru   rw   ry   r{   r~   r   r   r   r   r   r   r   r   r   r:   r#   r!   r   r      s    "3H+) )+++++B:;;@@@E????E?BHBL	LF@Ar#   r   )r   	testtoolsr   	pbr.testsr   pbrr   r   r   BaseTestCaser   r:   r#   r!   <module>r      s<         ))99\A$++ \Ar#   