
    /Jf
                     Z    d Z ddlZddlmZ ddlmZmZmZ ddlm	Z
  G d de
          ZdS )z'
Tests for L{twisted.python.versions}.
    N)_inf)IncomparableVersionsVersiongetVersionString)SynchronousTestCasec                       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S )VersionsTestsreturnNc           	         t          dddd          }t          dddd          }|                     ||k               |                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     |t          dddd          k               |                     ||k               dS )zB
        Versions can be compared for equality and order.
        dummy   r   Nr   
assertTrueselfvavbs      d/home/alex/cs2snipeproduction/venv/lib/python3.11/site-packages/twisted/python/test/test_versions.pytest_versionComparisonz$VersionsTests.test_versionComparison   s     WaA&&WaA&&R   R   b!!!b!!!b!!!ggq!Q777888b!!!!!    c           	         t          dddd          }t          dddd          }|                     ||k               |                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     |t          dddd          k               |                     |t          dddd          k               |                     ||k               dS )zC
        Version packages are compared case insensitively.
        twistedr   r   TwistedTWIStedNr   r   s      r   %test_versionComparisonCaseInsensitivez3VersionsTests.test_versionComparisonCaseInsensitive    s     Y1a((Y1a((R   R   b!!!b!!!b!!!giAq999:::giAq999:::b!!!!!r   c                     t          ddddd          }t          dddd          }|                     ||k                |                     ||k               |                     ||           dS )zP
        Prereleases are always less than versions without prereleases.
        whateverr   r   
prereleaseN)r   r   assertFalseassertNotEqualr   s      r   %test_comparingPrereleasesWithReleasesz3VersionsTests.test_comparingPrereleasesWithReleases/   sy     ZAqQ777ZAq))R   b!!!B#####r   c           
         t          ddddd          }t          ddddd          }|                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     |t          ddddd          k               |                     ||k               dS )zW
        The value specified as the prerelease is used in version comparisons.
        r   r   r   r      Nr   r   s      r   test_comparingPrereleasesz'VersionsTests.test_comparingPrereleases9   s     ZAqQ777ZAqQ777R   R   b!!!b!!!b!!!gj!QaHHHHIIIb!!!!!r   c                 F    |                      t          t                     dS )zR
        L{_inf} is equal to L{_inf}.

        This is a regression test.
        N)assertEqualr   r   s    r   test_infComparisonz VersionsTests.test_infComparisonG   s      	t$$$$$r   c                     |                      t          t          j        t	          dddd          t	          dddd                     dS )zO
        The package names of the Version objects need to be the same,
        r   r   r   dumymN)assertRaisesr   operatoreqr   r(   s    r   test_disallowBuggyComparisonsz+VersionsTests.test_disallowBuggyComparisonsO   sP     	 KGQ1%%GQ1%%		
 	
 	
 	
 	
r   c                     t          dddd          }d}|                    |          }|                     |t                     dS )zh
        Comparing a L{Version} to some other object type results in
        C{NotImplemented}.
        r   r   r   )r   r   r   r   N)r   __cmp__r'   NotImplemented)r   r   r   results       r   test_notImplementedComparisonsz,VersionsTests.test_notImplementedComparisonsZ   sG    
 WaA&&B00000r   c           
      l    |                      t          t          dddd                    d           dS )zu
        Calling C{repr} on a version returns a human-readable string
        representation of the version.
        r   r   r$      zVersion('dummy', 1, 2, 3)Nr'   reprr   r(   s    r   	test_reprzVersionsTests.test_reprd   s7    
 	ggq!Q7788:UVVVVVr   c                 p    |                      t          t          ddddd                    d           dS )	z
        Calling C{repr} on a version with a prerelease returns a human-readable
        string representation of the version including the prerelease.
        r   r   r$   r6      r   z.Version('dummy', 1, 2, 3, release_candidate=4)Nr7   r(   s    r   test_reprWithPrereleasez%VersionsTests.test_reprWithPrereleasek   sG    
 	!Qa88899<	
 	
 	
 	
 	
r   c           
      l    |                      t          t          dddd                    d           dS )zt
        Calling C{str} on a version returns a human-readable string
        representation of the version.
        r   r   r$   r6   z[dummy, version 1.2.3]Nr'   strr   r(   s    r   test_strzVersionsTests.test_stru   s7    
 	WWaA66779QRRRRRr   c                 p    |                      t          t          ddddd                    d           dS )zX
        Calling C{str} on a version with a prerelease includes the prerelease.
        r   r   r   r   z[dummy, version 1.0.0.rc1]Nr>   r(   s    r   test_strWithPrereleasez$VersionsTests.test_strWithPrerelease|   sG     	AqQ77788:V	
 	
 	
 	
 	
r   c                 v    |                      t          dddd                                          d           d S )Nr   r   r$   r6   z1.2.3)r'   r   shortr(   s    r   	testShortzVersionsTests.testShort   s8    !Q2288::GDDDDDr   c                 l    |                      dt          t          dddd                               dS )zr
        L{getVersionString} returns a string with the package name and the
        short version number.
        zTwisted 8.0.0r      r   Nr'   r   r   r(   s    r   test_getVersionStringz#VersionsTests.test_getVersionString   s9    
 	*:79aQRTU;V;V*W*WXXXXXr   c                 p    |                      t          t          ddddd                    d           dS )zF
        L{getVersionString} includes the prerelease, if any.
        r   rG   r   r   r   zwhatever 8.0.0.rc1NrH   r(   s    r   #test_getVersionStringWithPrereleasez1VersionsTests.test_getVersionStringWithPrerelease   sG     	WZAqQGGGHH 	
 	
 	
 	
 	
r   c                 v    |                      t          dddd                                          d           dS )zY
        The L{base} method returns a very simple representation of the version.
        foor   r   z1.0.0Nr'   r   baser(   s    r   	test_basezVersionsTests.test_base   s:     	1a005577AAAAAr   c           	      z    |                      t          ddddd                                          d           dS )zQ
        The base version includes 'preX' for versions with prereleases.
        rM   r   r   rG   r   z	1.0.0.rc8NrN   r(   s    r   test_baseWithPrereleasez%VersionsTests.test_baseWithPrerelease   s?     	1aA>>>CCEE{SSSSSr   )r
   N)__name__
__module____qualname__r   r   r"   r%   r)   r/   r4   r9   r<   r@   rB   rE   rI   rK   rP   rR    r   r   r	   r	      sn       " " " "" " " "$ $ $ $" " " "% % % %	
 	
 	
 	
1 1 1 1W W W W
 
 
 
S S S S
 
 
 
E E E EY Y Y Y
 
 
 
B B B BT T T T T Tr   r	   )__doc__r-   incrementalr   twisted.python.versionsr   r   r   twisted.trial.unittestr   TestCaser	   rV   r   r   <module>r\      s    
        S S S S S S S S S S B B B B B BPT PT PT PT PTH PT PT PT PT PTr   