def __checkPackageVersions(self, appinfo): if appinfo is None: return pv.PLUGIN_MUST_BE_UPGRADED api_required_version = appinfo.requirements.api_version if not api_required_version: api_required_version = [(0, 0)] return pv.checkVersionAny(outwiker.core.__version__, api_required_version)
def install_plugin(self, name): """ Install plugin by name. :return: True if plugin was installed, otherwise False """ getAppInfo = self.vl.getAppInfoFromUrl getDownlodUrl = self.vl.getDownlodUrl plugin_info = self._installerPlugins.get(name, None) if plugin_info: appInfo = getAppInfo(plugin_info["url"]) if not appInfo or not appInfo.versionsList: MessageBox(_(u"The plugin description can't be downloaded. Please install plugin manually"), u"UpdateNotifier") return False api_required_version = appInfo.requirements.api_version if pv.checkVersionAny(outwiker.core.__version__, api_required_version) != 0: MessageBox(_(u"The plugin required newer version of OutWiker. Please update OutWiker"), u"UpdateNotifier") return False # get link to latest version url = getDownlodUrl(appInfo) if not url: MessageBox(_(u"The download link was not found in plugin description. Please install plugin manually"), u"UpdateNotifier") return False # getPluginsDirList[0] - папка рядом с запускаемым файлом, затем идут другие папки, # если они есть pluginPath = self.__deletedPlugins.get( name, os.path.join(getPluginsDirList()[-1], name.lower())) logger.info( 'install_plugin: {url} {path}'.format( url=url, path=pluginPath)) rez = UpdatePlugin().update(url, pluginPath) if rez: self._application.plugins.load([os.path.dirname(pluginPath)]) self._updateDialog() else: MessageBox( _(u"Plugin was NOT Installed. Please update plugin manually"), u"UpdateNotifier") return rez
def test_fail_03(self): packageVersion = (2, 0) required = [(1, 0)] self.assertEqual(pv.checkVersionAny(packageVersion, required), pv.PLUGIN_MUST_BE_UPGRADED)
def test_fail_02(self): packageVersion = (2, 10) required = [(2, 15)] self.assertEqual(pv.checkVersionAny(packageVersion, required), pv.OUTWIKER_MUST_BE_UPGRADED)
def test_fail_01(self): packageVersion = (2, 0) required = [(1, 1), (3, 0)] self.assertNotEqual(pv.checkVersionAny(packageVersion, required), pv.VERSION_OK)
def test_ok_06(self): packageVersion = (2, 10) required = [(2, 0)] self.assertEqual(pv.checkVersionAny(packageVersion, required), pv.VERSION_OK)
def test_ok_01(self): packageVersion = (1, 1) required = [(1, 1)] self.assertEqual(pv.checkVersionAny(packageVersion, required), pv.VERSION_OK)
def test_ok_04(self): packageVersion = (2, 0) required = [] self.assertEqual(pv.checkVersionAny(packageVersion, required), pv.VERSION_OK)