diff options
Diffstat (limited to 'src/sugar/bundle/activitybundle.py')
-rw-r--r-- | src/sugar/bundle/activitybundle.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/sugar/bundle/activitybundle.py b/src/sugar/bundle/activitybundle.py index 2bec54f..c39c519 100644 --- a/src/sugar/bundle/activitybundle.py +++ b/src/sugar/bundle/activitybundle.py @@ -31,6 +31,10 @@ from sugar import util from sugar.bundle.bundle import Bundle, \ MalformedBundleException, NotInstalledException +from sugar.bundle.bundleversion import NormalizedVersion +from sugar.bundle.bundleversion import InvalidVersionError + + class ActivityBundle(Bundle): """A Sugar activity bundle @@ -54,7 +58,7 @@ class ActivityBundle(Bundle): self._bundle_id = None self._mime_types = None self._show_launcher = True - self._activity_version = 0 + self._activity_version = '0' self._installation_time = os.stat(path).st_mtime self._manifest = None @@ -181,11 +185,12 @@ class ActivityBundle(Bundle): if cp.has_option(section, 'activity_version'): version = cp.get(section, 'activity_version') try: - self._activity_version = int(version) - except ValueError: + NormalizedVersion(version) + except InvalidVersionError: raise MalformedBundleException( - 'Activity bundle %s has invalid version number %s' % + 'Activity bundle %s has invalid version number %s' % \ (self._path, version)) + self._activity_version = version def _get_linfo_file(self): lang = locale.getdefaultlocale()[0] |