コード例 #1
0
ファイル: pluginsloader.py プロジェクト: Jenyay/outwiker
    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)
コード例 #2
0
ファイル: updatecontroller.py プロジェクト: Jenyay/outwiker
    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
コード例 #3
0
 def test_fail_03(self):
     packageVersion = (2, 0)
     required = [(1, 0)]
     self.assertEqual(pv.checkVersionAny(packageVersion, required),
                      pv.PLUGIN_MUST_BE_UPGRADED)
コード例 #4
0
 def test_fail_02(self):
     packageVersion = (2, 10)
     required = [(2, 15)]
     self.assertEqual(pv.checkVersionAny(packageVersion, required),
                      pv.OUTWIKER_MUST_BE_UPGRADED)
コード例 #5
0
 def test_fail_01(self):
     packageVersion = (2, 0)
     required = [(1, 1), (3, 0)]
     self.assertNotEqual(pv.checkVersionAny(packageVersion, required),
                         pv.VERSION_OK)
コード例 #6
0
 def test_ok_06(self):
     packageVersion = (2, 10)
     required = [(2, 0)]
     self.assertEqual(pv.checkVersionAny(packageVersion, required),
                      pv.VERSION_OK)
コード例 #7
0
 def test_ok_01(self):
     packageVersion = (1, 1)
     required = [(1, 1)]
     self.assertEqual(pv.checkVersionAny(packageVersion, required),
                      pv.VERSION_OK)
コード例 #8
0
 def test_ok_04(self):
     packageVersion = (2, 0)
     required = []
     self.assertEqual(pv.checkVersionAny(packageVersion, required),
                      pv.VERSION_OK)
コード例 #9
0
 def test_fail_03(self):
     packageVersion = (2, 0)
     required = [(1, 0)]
     self.assertEqual(pv.checkVersionAny(packageVersion, required),
                      pv.PLUGIN_MUST_BE_UPGRADED)
コード例 #10
0
 def test_fail_02(self):
     packageVersion = (2, 10)
     required = [(2, 15)]
     self.assertEqual(pv.checkVersionAny(packageVersion, required),
                      pv.OUTWIKER_MUST_BE_UPGRADED)
コード例 #11
0
 def test_fail_01(self):
     packageVersion = (2, 0)
     required = [(1, 1), (3, 0)]
     self.assertNotEqual(pv.checkVersionAny(packageVersion, required),
                         pv.VERSION_OK)