def testMajorMinorPatchNotEqual(self): sv1: SemanticVersion = SemanticVersion(GOOD_BASIC_VERSION) sv2: SemanticVersion = SemanticVersion('6.1.2') self.assertNotEqual(sv1, sv2, 'These should NOT be the same semantic version')
def testComparableTrue(self): sv1: SemanticVersion = SemanticVersion(GOOD_BASIC_VERSION) sv2: SemanticVersion = SemanticVersion(f'{GOOD_BASIC_VERSION}+.5988') actualValue: bool = sv1._comparable(other=sv2) self.assertTrue(actualValue, 'These should be comparable')
def testMajorMinorPatchBuildNumberEqual(self): sv1: SemanticVersion = SemanticVersion(GOOD_BUILD_NUMBER) sv2: SemanticVersion = SemanticVersion(GOOD_BUILD_NUMBER) self.assertEqual( sv1, sv2, 'These should be the same semantic version with a build number')
def testMajorMinorPatchPreReleaseNotEqual(self): sv1: SemanticVersion = SemanticVersion(GOOD_BASIC_VERSION) sv2: SemanticVersion = SemanticVersion('7.0.0-Beta.1.0.0') self.assertNotEqual( sv1, sv2, 'These should NOT be the same semantic version with a pre-release value' )
def testMajorMinorPatchPreReleaseEqual(self): sv1: SemanticVersion = SemanticVersion(GOOD_PRE_RELEASE) sv2: SemanticVersion = SemanticVersion(GOOD_PRE_RELEASE) self.assertEqual( sv1, sv2, 'These should be the same semantic version with a pre-release value' )
def testMajorMinorPatchBuildNumberNotEqual(self): sv1: SemanticVersion = SemanticVersion(GOOD_BUILD_NUMBER) sv2: SemanticVersion = SemanticVersion(f'{GOOD_BASIC_VERSION}+.5989') self.assertNotEqual( sv1, sv2, 'These should NOT be the same semantic version with a build number' )
def onHelpVersion(self, event: CommandEvent): """ Check for newer version. Args: event: """ from org.pyut.general.PyutVersion import PyutVersion from org.pyut.general.GithubAdapter import GithubAdapter from org.pyut.general.SemanticVersion import SemanticVersion wxBeginBusyCursor() githubAdapter: GithubAdapter = GithubAdapter() latestVersion: SemanticVersion = githubAdapter.getLatestVersionNumber() myVersion: SemanticVersion = SemanticVersion( PyutVersion.getPyUtVersion()) if myVersion < latestVersion: msg = _("PyUt version ") + str(latestVersion) + _( " is available on https://github.com/hasii2011/PyUt/releases") else: msg = _("No newer version yet !") wxEndBusyCursor() wxYield() PyutUtils.displayInformation(msg, _("Check for newer version"), self._parent)
def testComparableFalse(self): sv1: SemanticVersion = SemanticVersion(GOOD_BASIC_VERSION) sve: SemanticVersionError = SemanticVersionError( 'I am not a SemanticVersion') actualValue: bool = sv1._comparable(other=sve) self.assertFalse(actualValue, 'These should NOT be comparable')
def testIsSequenceLessOnlyRightIsInt(self): sv1: SemanticVersion = SemanticVersion('7.0.0-Beta.1.0.0') seqLeft = ['Beta', 1, 0, 'a'] seqRight = ['Beta', 1, 0, 1] ans: bool = sv1._isSequenceLess(seqLeft, seqRight) self.assertFalse(ans, 'Left sequence is not less')
def testBadVersion(self): try: badVersion: str = 'x.x.x' semanticVersion: SemanticVersion = SemanticVersion(badVersion) self.assertTrue(False, f'{semanticVersion} should have thrown exception') except SemanticVersionError as se: self.logger.info(f'Expected: {se}')
def testIsSequenceRightAlphaIsLess(self): sv1: SemanticVersion = SemanticVersion('7.0.0-Beta.1.0.0') seqLeft = ['Beta', 1, 0, 'b'] seqRight = ['Beta', 1, 0, 'A'] ans: bool = sv1._isSequenceLess(seqLeft, seqRight) self.assertFalse(ans, 'Left sequence is not less')
def testGoodBasicVersion(self): try: goodVersion: str = GOOD_BASIC_VERSION semanticVersion: SemanticVersion = SemanticVersion(goodVersion) self.assertIsNotNone(semanticVersion, 'Did not initialize') self.logger.info(f'Good Basic Version: {semanticVersion}') except SemanticVersionError as sve: self.fail(f'{sve}')
def testIsSequenceLessOnlyLeftIsInt(self): sv1: SemanticVersion = SemanticVersion('7.0.0-Beta.1.0.0') seqLeft = ['Beta', 1, 0, 0] seqRight = ['Beta', 1, 0, 'a'] ans: bool = sv1._isSequenceLess(seqLeft, seqRight) self.assertTrue(ans, 'Left sequence should be less')
def testGoodPreReleaseVersion(self): try: semanticVersion: SemanticVersion = SemanticVersion( GOOD_PRE_RELEASE) self.assertIsNotNone(semanticVersion, 'Did not initialize') self.logger.info( f'Good Pre-Release Version: {semanticVersion.__repr__()}') except SemanticVersionError as sve: self.fail(f'{sve}')
def testGoodVersionWithBuildNumber(self): try: semanticVersion: SemanticVersion = SemanticVersion( GOOD_BUILD_NUMBER) self.assertIsNotNone(semanticVersion, 'Did not initialize') self.logger.info( f'Good Version with BuildNumber: {semanticVersion}') except SemanticVersionError as sve: self.fail(f'{sve}')
def getLatestVersionNumber(self) -> SemanticVersion: repo: Repository = self._github.get_repo( GithubAdapter.PYUT_REPOSITORY_SLUG) self.logger.info(f'{repo.full_name=}') releases: PaginatedList = repo.get_releases() latestReleaseVersion: SemanticVersion = SemanticVersion('0.0.0') for release in releases: gitRelease: GitRelease = cast(GitRelease, release) releaseNumber: str = gitRelease.tag_name numPeriods: int = self._countPeriods(releaseNumber) if numPeriods < 2: releaseNumber = f'{releaseNumber}.0' releaseVersion: SemanticVersion = SemanticVersion(releaseNumber) self.logger.debug(f'{releaseVersion=}') if latestReleaseVersion < releaseVersion: latestReleaseVersion = releaseVersion return latestReleaseVersion
def testGoodMajorVersion(self): self.assertEqual( SemanticVersion(GOOD_BASIC_VERSION).major, 6, 'Must Be true')
def testGoodPatchVersion(self): self.assertEqual( SemanticVersion(GOOD_BASIC_VERSION).patch, 1, 'Must Be true')
def testGoodStr(self): self.assertEqual(str(SemanticVersion('0.0.0')), '0.0.0')
def testMajorMinorPatchPreReleaseLessThan(self): sv1: SemanticVersion = SemanticVersion('7.0.0-Beta.1.0.0') sv2: SemanticVersion = SemanticVersion('7.0.0-Beta.1.0.1') self.assertLess(sv1, sv2, f'{sv1} should less than {sv2}')
def testMajorMinorPatchLessThan(self): sv1: SemanticVersion = SemanticVersion(GOOD_PREVIOUS_BASIC_VERSION) sv2: SemanticVersion = SemanticVersion(GOOD_BASIC_VERSION) self.assertLess(sv1, sv2, 'The previous version must be less')
def testPreReleaseLessThan(self): sv1: SemanticVersion = SemanticVersion('6.0.0-1.2') sv2: SemanticVersion = SemanticVersion('6.0.0-1.3') self.assertLess(sv1, sv2, 'The pre-release version must be less')
def testBuildNumberGreaterThan(self): sv1: SemanticVersion = SemanticVersion(f'{GOOD_BASIC_VERSION}+.6000') sv2: SemanticVersion = SemanticVersion(f'{GOOD_BASIC_VERSION}+.5988') self.assertGreater(sv1, sv2, 'The build number IS less')
def testPreReleaseGreaterThan(self): sv1: SemanticVersion = SemanticVersion('6.0.0-1.4') sv2: SemanticVersion = SemanticVersion('6.0.0-1.3') self.assertGreater(sv1, sv2, 'The pre-release version must be less')