ؒeAHzdZddlmZmZddlZddlZddlZddlZddlmZm Z ddlm Z m Z ddl m Z Gdde Zy) z Tests for L{incremental}. )divisionabsolute_importN)getVersionStringIncomparableVersions)Version_inf)TestCaseceZdZdZdZej ejdkddZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#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,Z0d-Z1d.Z2d/Z3d0Z4d1Z5d2Z6d3Z7d4Z8d5Z9d6Z:y7)8 VersionsTestsc tddddddd}|j|j|jy)zE The local version is the same as the short version. dummyrrelease_candidatepostdevN)r assertEquallocalshort)selfvas @/usr/lib/python3/dist-packages/incremental/tests/test_version.pytest_localIsShortzVersionsTests.test_localIsShorts6WaA J RXXZ0c ltdddd}tdddd}|j||kD|j||k|j||k\|j||k|j||k7|j|tddddk(|j||k(y)zB Versions can be compared for equality and order. r rrNr assertTruerrvbs rtest_versionComparisonz$VersionsTests.test_versionComparisonWaA & WaA & R  R  b! b! b! ggq!Q778 b!r)rzComparisons do not raise on py2ctdddd}t}|jt5||kDddd|jt5||kddd|jt5||k\ddd|jt5||kddd|j ||k(|j ||k7y#1swYxYw#1swYxYw#1swYmxYw#1swYVxYw)z= Versions can be compared with non-versions. r rrN)robject assertRaises TypeError assertFalser)rvos r test_versionComparisonNonVersionz.VersionsTests.test_versionComparisonNonVersion+s GQ1 % H   y )  E   y )  E   y )  F   y )  F  a  Q        s/CC4C&C2CC#&C/2C;c ltdddd}tdddd}|j||kD|j||k|j||k\|j||k|j||k7|j|tddddk(|j||k(y)z= Version package names are case insensitive. r rrDuMmYNrr s r%test_versionComparisonCaseInsensitivez3VersionsTests.test_versionComparisonCaseInsensitiveBr#rctdddd}tdddd}|j||kD|j||k|j||y)zI NEXT releases are always larger than numbered releases. whateverNEXTrrNrrr(assertNotEqualsr s rtest_comparingNEXTReleasesz(VersionsTests.test_comparingNEXTReleasesPsVZA . ZAq ) R  b! R$rc \|jt5tdddddddddd|jt5tdddddddddd|jt5tdddddddddd|jt5tdddddddddd|jt5tddddddddddy#1swYxYw#1swYxYw#1swYxYw#1swY^xYw#1swYyxYw)zR NEXT releases must always have the rest of the numbers set to 0. r0r1rrrNr& ValueErrorrrs rtest_NEXTMustBeAlonez"VersionsTests.test_NEXTMustBeAloneZs9  z * R J1q Q R  z * R J1q Q R  z * R J1q Q R  z * R J1q Q R  z * R J1q Q R R R R R R R R R R R Rs;C2C>6D &DD"2C;>D DD"D+c`tdddd}tdddd}|j||y)z8 NEXT releases are equal to each other. r0r1rN)r assertEqualsr s rtest_comparingNEXTReleasesEqualz-VersionsTests.test_comparingNEXTReleasesEqualms4ZA . ZA . "b!rctddddd}tdddd}|j||k|j||kD|j||y)zP Prereleases are always less than versions without prereleases. r0rr prereleaseNr2r s r%test_comparingPrereleasesWithReleasesz3VersionsTests.test_comparingPrereleasesWithReleasesusXZAqQ 7 ZAq ) R  b! R$rctddddd|j}|jt|d|j|dddy)z@ Passing 'prerelease' to Version is deprecated. r0rrr>messagezvPassing prerelease to incremental.Version was deprecated in Incremental 16.9.0. Please pass release_candidate instead.N)r flushWarningsrlen)rwarningss rtest_prereleaseDeprecatedz'VersionsTests.test_prereleaseDeprecatedsV  Aq!2%%' X*  QK " I rctddddd}|j|j}|jt |d|j|dddy)zD Accessing 'prerelease' on a Version is deprecated. r0rrrrBzuAccessing incremental.Version.prerelease was deprecated in Incremental 16.9.0. Use Version.release_candidate instead.N)rr?rCrrD)rrrEs r"test_prereleaseAttributeDeprecatedz0VersionsTests.test_prereleaseAttributeDeprecateds_ZAqA > %%' X*  QK " I rctddddd}tdddd}|j||k|j||kD|j||y)zf Release Candidates are always less than versions without release candidates. r0rrrHNr2r s r+test_comparingReleaseCandidatesWithReleasesz9VersionsTests.test_comparingReleaseCandidatesWithReleasessX ZAqA > ZAq ) R  b! R$rctddddd}tdddd}|j||kD|j||k|j||y)z_ Post releases are always greater than versions without post releases. r0rrrNr2r s r&test_comparingPostReleasesWithReleasesz4VersionsTests.test_comparingPostReleasesWithReleasessX ZAqq 1 ZAq ) R  b! R$rctddddd}tddddd}|j||kD|j||k|j||y)zg Dev releases are always greater than postreleases based on previous releases. r0rrrrMNr2r s r1test_comparingDevReleasesWithPreviousPostReleasesz?VersionsTests.test_comparingDevReleasesWithPreviousPostReleasessZ ZAqa 0 ZAqq 1 R  b! R$rctddddd}tdddd}|j||k|j||kD|j||y)zR Dev releases are always less than versions without dev releases. r0rrrPNr2r s r%test_comparingDevReleasesWithReleasesz3VersionsTests.test_comparingDevReleasesWithReleasessXZAqa 0 ZAq ) R  b! R$rctddddd}tddddd}|j||k(|j||k7y)z> Release Candidates are equal to prereleases. r0rrrHr>N)rrr(r s rtest_rcEqualsprezVersionsTests.test_rcEqualspresJZAqA > ZAqQ 7 b! r"rc z|jt5tdddddddddy#1swYyxYw)zG Release Candidate and prerelease can't both be given. r0rr)r?rNr6r8s rtest_rcOrpreButNotBothz$VersionsTests.test_rcOrpreButNotBoths=  z * L J1aA K L L Ls1:c xtddddd}tddddd}|j||k|j||kD|j||k|j||k\|j||k7|j|tdddddk(|j||k(y)zf The value specified as the release candidate is used in version comparisons. r0rrrHrNrr s rtest_comparingReleaseCandidatesz-VersionsTests.test_comparingReleaseCandidatess ZAqA > ZAqA > R  R  b! b! b! gj!QQOOP b!rc xtddddd}tddddd}|j||k|j||kD|j||k|j||k\|j||k7|j|tdddddk(|j||k(y)zX The value specified as the postrelease is used in version comparisons. r0rrrMrNrr s rtest_comparingPostz VersionsTests.test_comparingPostsZAqq 1 ZAqq 1 R  R  b! b! b! gj!QBBC b!rc xtddddd}tddddd}|j||k|j||kD|j||k|j||k\|j||k7|j|tdddddk(|j||k(y)zX The value specified as the dev release is used in version comparisons. r0rrrPrNrr s rtest_comparingDevzVersionsTests.test_comparingDevsZAqa 0 ZAqa 0 R  R  b! b! b! gj!QqAAB b!rc ~tdddddd}tdddddd}|j||k|j||kD|j||k|j||k\|j||k7|j|tddddddk(|j||k(yzv The value specified as the dev release and release candidate is used in version comparisons. r0rrrrrNrr s rtest_comparingDevAndRCz$VersionsTests.test_comparingDevAndRC ZAqA1 E ZAqA1 E R  R  b! b! b! gj!QQTUVVW b!rc ~tdddddd}tdddddd}|j||k|j||kD|j||k|j||k\|j||k7|j|tddddddk(|j||k(yr_rr s rtest_comparingDevAndRCDifferentz-VersionsTests.test_comparingDevAndRCDifferentrbrclt}|jtt|jt|kD|j t|k|jt|k\|j t|k|jt|k7|j t|k(y)zR L{_inf} is equal to L{_inf}. This is a regression test. N)r%rrrr()rr*s rtest_infComparisonz VersionsTests.test_infComparisons H t$ q! "  " #  " #rc |jttjt ddddt ddddy)zO The package names of the Version objects need to be the same. r rrdumymN)r&roperatoreqrr8s rtest_disallowBuggyComparisonsz+VersionsTests.test_disallowBuggyComparisons-s8  KK GQ1 % GQ1 %  rcntdddd}d}|j|j|ty)zh Comparing a L{Version} to some other object type results in C{NotImplemented}. r rr)r rrrN)rr__cmp__NotImplementedr s rtest_notImplementedComparisonsz,VersionsTests.test_notImplementedComparisons8s1 WaA &  B8rc R|jttdddddy)zu Calling C{repr} on a version returns a human-readable string representation of the version. r rrrzVersion('dummy', 1, 2, 3)Nrreprrr8s r test_reprzVersionsTests.test_reprAs% ggq!Q78:UVrc V|jttddddddy) z Calling C{repr} on a version with a prerelease returns a human-readable string representation of the version including the prerelease as a release candidate.. r rrrr>.Version('dummy', 1, 2, 3, release_candidate=4)Nrqr8s rtest_reprWithPrereleasez%VersionsTests.test_reprWithPrereleaseHs*  !Qa8 9 < rc V|jttddddddy) z Calling C{repr} on a version with a release candidate returns a human-readable string representation of the version including the rc. r rrrrurHrvNrqr8s rtest_reprWithReleaseCandidatez+VersionsTests.test_reprWithReleaseCandidateSs*  !QQ? @ < rc V|jttddddddy) z Calling C{repr} on a version with a postrelease returns a human-readable string representation of the version including the postrelease. r rrrrurMz!Version('dummy', 1, 2, 3, post=4)Nrqr8s rtest_reprWithPostzVersionsTests.test_reprWithPost]s*  !Q2 35X rc V|jttddddddy) z Calling C{repr} on a version with a dev release returns a human-readable string representation of the version including the dev release. r rrrrurPz Version('dummy', 1, 2, 3, dev=4)Nrqr8s rtest_reprWithDevzVersionsTests.test_reprWithDevgs*  !Qq1 24V rc R|jttdddddy)zt Calling C{str} on a version returns a human-readable string representation of the version. r rrrz[dummy, version 1.2.3]Nrstrrr8s rtest_strzVersionsTests.test_strqs% WWaA679QRrc V|jttddddddy)zw Calling C{str} on a version with a prerelease includes the prerelease as a release candidate. r rrr>[dummy, version 1.0.0.rc1]Nrr8s rtest_strWithPrereleasez$VersionsTests.test_strWithPrereleasexs*  AqQ7 8:V rc V|jttddddddy)zn Calling C{str} on a version with a release candidate includes the release candidate. r rrrHrNrr8s rtest_strWithReleaseCandidatez*VersionsTests.test_strWithReleaseCandidates*  AqA> ? ( rc V|jttddddddy)zb Calling C{str} on a version with a postrelease includes the postrelease. r rrrMz[dummy, version 1.0.0.post1]Nrr8s rtest_strWithPostzVersionsTests.test_strWithPosts*  Aqq1 24R rc X|jttdddddddy)z Calling C{str} on a version with a release candidate and dev release includes the release candidate and the dev release. r rrrr`z[dummy, version 1.0.0.rc1.dev2]Nrr8s r"test_strWithDevAndReleaseCandidatez0VersionsTests.test_strWithDevAndReleaseCandidates,  AqA1E F - rc V|jttddddddy)zb Calling C{str} on a version with a dev release includes the dev release. r rrrPzummy, version 1.0.0.dev1]Nrr8s rtest_strWithDevzVersionsTests.test_strWithDevs*  Aqa0 13P rc X|jttdddddddy)z Calling C{str} on a version with a postrelease and dev release includes the postrelease and the dev release. r rrrrrz![dummy, version 1.0.0.post1.dev2]Nrr8s rtest_strWithDevAndPostz$VersionsTests.test_strWithDevAndPosts,  Aqqa8 9 / rc\|jtddddjdy)Nr rrrz1.2.3)rrrr8s r testShortzVersionsTests.testShorts& !Q288:GDrc R|jdttddddy)zr L{getVersionString} returns a string with the package name and the short version number. z Twisted 8.0.0TwistedrNrrrr8s rtest_getVersionStringz#VersionsTests.test_getVersionStrings' *:79aQRTU;V*WXrc V|jttddddddy)ze L{getVersionString} includes the prerelease as a release candidate, if any. r0rrrr>whatever 8.0.0.rc1Nrr8s r#test_getVersionStringWithPrereleasez1VersionsTests.test_getVersionStringWithPrereleases*  WZAqQG H  rc V|jttddddddy)zM L{getVersionString} includes the release candidate, if any. r0rrrrHrNrr8s r)test_getVersionStringWithReleaseCandidatez7VersionsTests.test_getVersionStringWithReleaseCandidates*  WZAqAN O  rc V|jttddddddy)zG L{getVersionString} includes the postrelease, if any. r0rrrrMzwhatever 8.0.0.post1Nrr8s rtest_getVersionStringWithPostz+VersionsTests.test_getVersionStringWithPosts*  WZAqqA B " rc V|jttddddddy)zG L{getVersionString} includes the dev release, if any. r0rrrrPzwhatever 8.0.0.dev1Nrr8s rtest_getVersionStringWithDevz*VersionsTests.test_getVersionStringWithDevs*  WZAqa@ ACX rc X|jttdddddddy) ze L{getVersionString} includes the dev release and release candidate, if any. r0rrrrr`zwhatever 8.0.0.rc2.dev1Nrr8s r!test_getVersionStringWithDevAndRCz/VersionsTests.test_getVersionStringWithDevAndRCs-  WZAqASTU V % rc X|jttdddddddy) z_ L{getVersionString} includes the dev release and postrelease, if any. r0rrrrrzwhatever 8.0.0.post2.dev1Nrr8s r#test_getVersionStringWithDevAndPostz1VersionsTests.test_getVersionStringWithDevAndPosts,  WZAqqaH I ' rc\|jtddddjdy)zX The C{base} method returns just "NEXT" when NEXT is the major version. foor1rNrrbaser8s rtest_baseWithNEXTzVersionsTests.test_baseWithNEXTs( 15:: 1.0.0.rc8Nrr8s rtest_baseWithPrereleasez%VersionsTests.test_baseWithPrereleases* 1aA>CCE{Src `|jtdddddjdy)zS The base version includes 'postX' for versions with postreleases. rrrrrMz 1.0.0.post8Nrr8s rtest_baseWithPostzVersionsTests.test_baseWithPosts* 1aa8==?Orc `|jtdddddjdy)zR The base version includes 'devX' for versions with dev releases. rrrrrPz 1.0.0.dev8Nrr8s rtest_baseWithDevzVersionsTests.test_baseWithDev s* 1aQ7<<> Mrc `|jtdddddjdy)rrrrrrHrNrr8s rtest_baseWithReleaseCandidatez+VersionsTests.test_baseWithReleaseCandidates-  E1aa 8 = = ? rc b|jtddddddjdy) zu The base version includes 'rcXdevX' for versions with dev releases and a release candidate. rrrrrr`z1.0.0.rc2.dev8Nrr8s rtest_baseWithDevAndRCz#VersionsTests.test_baseWithDevAndRCs0  E1aaQ ? D D FHX rc b|jtddddddjdy) zq The base version includes 'postXdevX' for versions with dev releases and a postrelease. rrrrrrz1.0.0.post2.dev8Nrr8s rtest_baseWithDevAndPostz%VersionsTests.test_baseWithDevAndPost"s0  E1a 2 7 7 9;M rN);__name__ __module__ __qualname__rr"unittestskipIfsys version_infor+r.r4r9r<r@rFrIrKrNrQrSrUrWrYr[r]rardrfrkrorsrwryr{r}rrrrrrrrrrrrrrrrrrrrrrrrrr r s:1 "X__S%%,.OP Q , "%R&"%     % % %%#L " " " " " $  9W     S      EY      F B T P N    rr )__doc__ __future__rrrrri incrementalrrrrtwisted.trial.unittestr r rrrrs21 >%+T HT r