Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/bundle/activitybundle.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/sugar/bundle/activitybundle.py')
-rw-r--r--src/sugar/bundle/activitybundle.py13
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]