From 967b90a5492e86f979079853ae4a8d1982d2f413 Mon Sep 17 00:00:00 2001 From: Julien Cochuyt Date: Thu, 26 Sep 2019 23:49:09 +0200 Subject: [PATCH 1/2] Report manifest validation errors also for add-ons already installed. --- source/addonHandler/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/addonHandler/__init__.py b/source/addonHandler/__init__.py index 75da59af505..546a5693947 100644 --- a/source/addonHandler/__init__.py +++ b/source/addonHandler/__init__.py @@ -292,6 +292,9 @@ def __init__(self, path): translatedInput = open(p, 'rb') break self.manifest = AddonManifest(f, translatedInput) + if self.manifest.errors is not None: + _report_manifest_errors(self.manifest) + raise AddonError("Manifest file has errors.") @property def isPendingInstall(self): From 0739a06b4c60a5b86d87e85ef849aa7315eca615 Mon Sep 17 00:00:00 2001 From: Julien Cochuyt Date: Thu, 26 Sep 2019 23:52:09 +0200 Subject: [PATCH 2/2] Flag add-on as incompatible if lastTestedNVDAVersion is literally set to "None" --- source/addonHandler/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/addonHandler/__init__.py b/source/addonHandler/__init__.py index 546a5693947..4da8f0d82c8 100644 --- a/source/addonHandler/__init__.py +++ b/source/addonHandler/__init__.py @@ -717,6 +717,8 @@ def _validateApiVersionRange(self): def validate_apiVersionString(value): from configobj.validate import ValidateError + if not value or value == "None": + return (0, 0, 0) if not isinstance(value, string_types): raise ValidateError('Expected an apiVersion in the form of a string. EG "2019.1.0"') try: