def parse(self, text): """ Return AppInfo instance """ try: root = ElementTree.fromstring(text) except ElementTree.ParseError: appinfo = AppInfo(u'', None) return appinfo name = self._getTextValue(root, u'name') updatesUrl = self._getTextValue(root, u'updates') requirements = self._getRequirements(root) # Get data tag for selected language data_tag = self._getDataTag(root) appwebsite = self._getAppWebsite(data_tag) description = self._getDescription(data_tag) author = self._getAuthorInfo(data_tag) versionsList = self._getVersionsList(data_tag) appinfo = AppInfo(name, author=author, versionsList=versionsList, appwebsite=appwebsite, description=description, updatesUrl=updatesUrl, requirements=requirements) return appinfo
def test_changelog_single_03(self): version_1 = VersionInfo(Version.parse(u'1.2.3 beta')) changelog = [version_1] appinfo = AppInfo(self._appname, self._author, changelog) generator = SiteChangelogGenerator(appinfo) changelog = generator.make() right_result = u'''!!!! 1.2.3 beta''' self.assertEqual(changelog, right_result)
def test_changelog_empty(self): maintainer = u'Ivan Petrov' maintainer_email = u'*****@*****.**' changelog = [] date_str = u'13.06.2016' appinfo = AppInfo(self._appname, None, changelog) generator = DebChangelogGenerator(appinfo, maintainer, maintainer_email) self.assertRaises(ValueError, generator.make, self._distrib, date_str)
def test_changelog_single_changes_01(self): changes = [u'Первая версия.'] version_1 = VersionInfo(Version(1, 0), changes=changes) changelog = [version_1] appinfo = AppInfo(self._appname, self._author, changelog) generator = SiteChangelogGenerator(appinfo) changelog = generator.make() right_result = u'''!!!! 1.0 * Первая версия.''' self.assertEqual(changelog, right_result)
def test_changelog_single_changes_02(self): changes = [u'Исправление ошибок.', u'Добавлена новая возможность.'] version_1 = VersionInfo(Version(1, 0), changes=changes) changelog = [version_1] appinfo = AppInfo(self._appname, self._author, changelog) generator = SiteChangelogGenerator(appinfo) changelog = generator.make() right_result = u'''!!!! 1.0 * Исправление ошибок. * Добавлена новая возможность.''' self.assertEqual(changelog, right_result)
def test_filter_empty_03(self): from updatenotifier.updatecontroller import UpdateController plugin = self.loader['UpdateNotifier'] controller = UpdateController(self.application, plugin) currentVersionsDict = {} latestVersionsDict = { 'test_01': AppInfo('test', None), } result = controller.filterUpdatedApps(currentVersionsDict, latestVersionsDict) self.assertEqual(result, {})
def test_filter_empty_05(self): from updatenotifier.updatecontroller import UpdateController plugin = self.loader['UpdateNotifier'] controller = UpdateController(self.application, plugin) latestVersion = Version(1, 0) latestVersionInfo = VersionInfo(latestVersion) currentVersionsDict = {'test_02': '1.0'} latestVersionsDict = { 'test_01': AppInfo('test', None, versionsList=[latestVersionInfo]), } result = controller.filterUpdatedApps(currentVersionsDict, latestVersionsDict) self.assertEqual(result, {})
def test_filter_empty_04(self): from updatenotifier.updatecontroller import UpdateController pluginPath = self.loader[u'UpdateNotifier'].pluginPath controller = UpdateController(Application, pluginPath) latestVersion = Version(1, 0) latestVersionInfo = VersionInfo(latestVersion) currentVersionsDict = {} latestVersionsDict = { u'test_01': AppInfo(u'test', None, versionsList=[latestVersionInfo]), } result = controller.filterUpdatedApps(currentVersionsDict, latestVersionsDict) self.assertEqual(result, {})
def test_changelog_versions_01(self): changes_1 = [u'Первая версия.'] version_1 = VersionInfo(Version(1, 0), changes=changes_1) changes_2 = [u'Исправление ошибок.', u'Добавлена новая возможность.'] version_2 = VersionInfo(Version(1, 1), changes=changes_2) changelog = [version_1, version_2] appinfo = AppInfo(self._appname, self._author, changelog) generator = SiteChangelogGenerator(appinfo) changelog = generator.make() right_result = u'''!!!! 1.1 * Исправление ошибок. * Добавлена новая возможность. !!!! 1.0 * Первая версия.''' self.assertEqual(changelog, right_result, changelog)
def test_changelog_02(self): changes_1 = [u'Изменение 1'] version_1 = VersionInfo(Version(1, 2, 3, 100), changes=changes_1) maintainer = u'Ivan Petrov' maintainer_email = u'*****@*****.**' changelog = [version_1] date_str = u'13.06.2016' appinfo = AppInfo(self._appname, None, changelog) generator = DebChangelogGenerator(appinfo, maintainer, maintainer_email) result = generator.make(self._distrib, date_str) result_right = u'''outwiker (1.2.3+100~distribname) distribname; urgency=medium * Изменение 1 -- Ivan Petrov <*****@*****.**> 13.06.2016''' self.assertEqual(result, result_right)
def test_filter_09(self): from updatenotifier.updatecontroller import UpdateController pluginPath = self.loader[u'UpdateNotifier'].pluginPath controller = UpdateController(Application, pluginPath) latestVersion = Version(1, 1) latestVersionInfo = VersionInfo(latestVersion) currentVersionsDict = {u'test_01': u'1.0', u'test_02': u'2.0', } latestVersionsDict = { u'test_01': AppInfo(u'test', None, versionsList=[latestVersionInfo]), } result = controller.filterUpdatedApps(currentVersionsDict, latestVersionsDict) self.assertEqual(len(result), 1) self.assertEqual(result[u'test_01'].appname, u'test')
def test_changelog_empty(self): changelog = [] appinfo = AppInfo(self._appname, self._author, changelog) generator = SiteChangelogGenerator(appinfo) changelog = generator.make() self.assertEqual(changelog, u'')