Beispiel #1
0
	def __init__(self, updateInfo):
		"""Constructor.
		@param updateInfo: update information such as possible URLs, version and the SHA-1 hash of the file as a hex string.
		@type updateInfo: dict
		"""
		from addonAPIVersion import getAPIVersionTupleFromString
		self.updateInfo = updateInfo
		self.urls = updateInfo["launcherUrl"].split(" ")
		self.version = updateInfo["version"]
		self.apiVersion = getAPIVersionTupleFromString(updateInfo["apiVersion"])
		self.backCompatToAPIVersion = getAPIVersionTupleFromString(updateInfo["apiCompatTo"])
		self.versionTuple = None
		self.fileHash = updateInfo.get("launcherHash")
		self.destPath = tempfile.mktemp(prefix="nvda_update_", suffix=".exe")
Beispiel #2
0
	def __init__(self, updateInfo):
		"""Constructor.
		@param updateInfo: update information such as possible URLs, version and the SHA-1 hash of the file as a hex string.
		@type updateInfo: dict
		"""
		from addonAPIVersion import getAPIVersionTupleFromString
		self.updateInfo = updateInfo
		self.urls = updateInfo["launcherUrl"].split(" ")
		self.version = updateInfo["version"]
		self.apiVersion = getAPIVersionTupleFromString(updateInfo["apiVersion"])
		self.backCompatToAPIVersion = getAPIVersionTupleFromString(updateInfo["apiCompatTo"])
		self.versionTuple = None
		self.fileHash = updateInfo.get("launcherHash")
		self.destPath = tempfile.mktemp(prefix="nvda_update_", suffix=".exe")
Beispiel #3
0
    def test_getAPIVersionTupleFromString_succeeds(self):
        """Tests trying to get the API version tuple from an API version string with one matching group
		results in an error being raised
		"""
        self.assertEqual(
            (2019, 1, 0),
            addonAPIVersion.getAPIVersionTupleFromString("2019.1.0"))
Beispiel #4
0
    def test_getAPIVersionTupleFromString_2_succeeds(self):
        """Tests trying to get the API version tuple from an API version where the Minor part is omitted and therefore defaults to 0.
		This will succeed.
		"""
        self.assertEqual(
            (2019, 1, 0),
            addonAPIVersion.getAPIVersionTupleFromString("2019.1"))
Beispiel #5
0
    def test_getAPIVersionTupleFromString_3_succeeds(self):
        """Tests trying to get the API version tuple from an API version string with a standard version
		layout will succeed.
		"""
        self.assertEqual(
            (2019, 1, 0),
            addonAPIVersion.getAPIVersionTupleFromString("2019.1.0"))
Beispiel #6
0
def validate_apiVersionString(value):
	from configobj.validate import ValidateError
	if not isinstance(value, string_types):
		raise ValidateError('Expected an apiVersion in the form of a string. EG "2019.1.0"')
	try:
		tuple = addonAPIVersion.getAPIVersionTupleFromString(value)
		return tuple
	except ValueError as e:
		raise ValidateError('"{}" is not a valid API Version string: {}'.format(value, e))
Beispiel #7
0
def validate_apiVersionString(value):
	from configobj.validate import ValidateError
	if not isinstance(value, string_types):
		raise ValidateError('Expected an apiVersion in the form of a string. EG "2019.1.0"')
	try:
		tuple = addonAPIVersion.getAPIVersionTupleFromString(value)
		return tuple
	except ValueError as e:
		raise ValidateError('"{}" is not a valid API Version string: {}'.format(value, e))
 def checkForNewUpdate(self, addonUpdateInfos):
     curVersion = self.normalizeVersion(self.addon.manifest["version"])
     (curReleaseID, curBuildID) = curVersion
     channel = "dev" if curBuildID is not None else "release"
     releaseVersion = addonUpdateInfos["release"].get("version")
     devVersion = addonUpdateInfos["dev"].get("version")
     isOldestThanReleaseVersion = self.isOldestVersion(
         curVersion, self.normalizeVersion(releaseVersion))
     isOldestThanDevVersion = self.isOldestVersion(
         curVersion, self.normalizeVersion(devVersion))
     if channel == "dev" and not self.releaseToDev:
         # update from dev version to stable version
         updateChannel = "release"
         latestVersion = releaseVersion
     elif isOldestThanReleaseVersion:
         updateChannel = "release"
         latestVersion = releaseVersion
     elif isOldestThanDevVersion:
         if channel == "release" and not self.releaseToDev:
             return None
         updateChannel = "dev"
         latestVersion = devVersion
     else:
         return None
     if updateChannel == "release":
         url = addonUpdateInfos["localURL"]
         self.releaseNoteURL = self.getreleaseNoteURL()
     else:
         url = "{url}/{channel}".format(channel=updateChannel,
                                        url=addonUpdateInfos["localURL"])
         self.releaseNoteURL = None
     minimumVersion = addonUpdateInfos[updateChannel].get(
         "minimumNVDAVersion", None)
     minimumNVDAVersion = addonAPIVersion.getAPIVersionTupleFromString(
         minimumVersion) if minimumVersion is not None else None
     lastTestedVersion = addonUpdateInfos[updateChannel].get(
         "lastTestedNVDAVersion", None)
     lastTestedNVDAVersion = addonAPIVersion.getAPIVersionTupleFromString(
         lastTestedVersion) if lastTestedVersion is not None else None
     return (latestVersion, url, minimumNVDAVersion, lastTestedNVDAVersion)
Beispiel #9
0
	def test_getAPIVersionTupleFromString_2_succeeds(self):
		"""Tests trying to get the API version tuple from an API version where the Minor part is omitted and therefore defaults to 0.
		This will succeed.
		"""
		self.assertEqual((2019, 1, 0), addonAPIVersion.getAPIVersionTupleFromString("2019.1"))
Beispiel #10
0
	def test_getAPIVersionTupleFromString_3_succeeds(self):
		"""Tests trying to get the API version tuple from an API version string with a standard version
		layout will succeed.
		"""
		self.assertEqual((2019, 1, 0), addonAPIVersion.getAPIVersionTupleFromString("2019.1.0"))
	def test_getAPIVersionTupleFromString_allZeros_succeeds(self):
		"""Tests trying to get the API version tuple from an API version string that is all zeros.
		This is used as the FIRST api version.
		"""
		self.assertEqual((0, 0, 0), addonAPIVersion.getAPIVersionTupleFromString("0.0.0"))
	def test_getAPIVersionTupleFromString_succeeds(self):
		"""Tests trying to get the API version tuple from an API version string with one matching group
		results in an error being raised
		"""
		self.assertEqual((2019, 1, 0), addonAPIVersion.getAPIVersionTupleFromString("2019.1.0"))