[extensions-web] upload: Always ignore micro versions when uploading
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [extensions-web] upload: Always ignore micro versions when uploading
- Date: Thu, 14 Jun 2012 17:52:05 +0000 (UTC)
commit d170f776e6bc8aa6bb0f611c53d48da37a641a45
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Thu Jun 14 13:51:56 2012 -0400
upload: Always ignore micro versions when uploading
This is a very common mistake. Just convert the micro variant to
a point variant, instead of outright ignoring it.
sweettooth/extensions/models.py | 15 +++++----------
sweettooth/extensions/tests.py | 22 +++++++++-------------
sweettooth/extensions/views.py | 2 +-
3 files changed, 15 insertions(+), 24 deletions(-)
---
diff --git a/sweettooth/extensions/models.py b/sweettooth/extensions/models.py
index 679b2de..796327a 100644
--- a/sweettooth/extensions/models.py
+++ b/sweettooth/extensions/models.py
@@ -168,7 +168,7 @@ class InvalidShellVersion(Exception):
pass
-def parse_version_string(version_string, ignore_micro):
+def parse_version_string(version_string):
version = version_string.split('.')
try:
@@ -177,12 +177,7 @@ def parse_version_string(version_string, ignore_micro):
except ValueError, e:
raise InvalidShellVersion()
- if ignore_micro:
- valid_lengths = (3, 4)
- else:
- valid_lengths = (3,)
-
- if len(version) in valid_lengths:
+ if len(version) in (3, 4):
# 3.0.1, 3.1.4
try:
point = int(version[2])
@@ -199,15 +194,15 @@ def parse_version_string(version_string, ignore_micro):
return major, minor, point
class ShellVersionManager(models.Manager):
- def lookup_for_version_string(self, version_string, ignore_micro=False):
- major, minor, point = parse_version_string(version_string, ignore_micro)
+ def lookup_for_version_string(self, version_string):
+ major, minor, point = parse_version_string(version_string)
try:
return self.get(major=major, minor=minor, point=point)
except self.model.DoesNotExist:
return None
def get_for_version_string(self, version_string):
- major, minor, point = parse_version_string(version_string, ignore_micro=False)
+ major, minor, point = parse_version_string(version_string)
obj, created = self.get_or_create(major=major, minor=minor, point=point)
return obj
diff --git a/sweettooth/extensions/tests.py b/sweettooth/extensions/tests.py
index 6fb152c..4eb1fd9 100644
--- a/sweettooth/extensions/tests.py
+++ b/sweettooth/extensions/tests.py
@@ -350,31 +350,27 @@ class ShellVersionTest(TestCase):
self.assertEquals(version.minor, 2)
self.assertEquals(version.point, -1)
+ version1 = get_version("3.2.2")
+ self.assertEquals(lookup_version("3.2.2.1"), version1)
+
with self.assertRaises(models.InvalidShellVersion):
get_version("3.1")
- lookup_version("3.1")
- def test_bad_shell_versions(self):
with self.assertRaises(models.InvalidShellVersion):
- models.parse_version_string("3", ignore_micro=False)
+ lookup_version("3.1")
+ def test_bad_shell_versions(self):
with self.assertRaises(models.InvalidShellVersion):
- models.parse_version_string("3.2.2.2.1", ignore_micro=False)
+ models.parse_version_string("3")
with self.assertRaises(models.InvalidShellVersion):
- models.parse_version_string("a.b", ignore_micro=False)
+ models.parse_version_string("3.2.2.2.1")
with self.assertRaises(models.InvalidShellVersion):
- models.parse_version_string("3.2.a", ignore_micro=False)
+ models.parse_version_string("a.b")
- def test_ignore_micro(self):
with self.assertRaises(models.InvalidShellVersion):
- models.parse_version_string("4.3.2.1", ignore_micro=False)
-
- major, minor, point = models.parse_version_string("4.3.2.1", ignore_micro=True)
- self.assertEquals(major, 4)
- self.assertEquals(minor, 3)
- self.assertEquals(point, 2)
+ models.parse_version_string("3.2.a")
class DownloadExtensionTest(BasicUserTestCase, TestCase):
def download(self, uuid, shell_version):
diff --git a/sweettooth/extensions/views.py b/sweettooth/extensions/views.py
index 2026098..26e5050 100644
--- a/sweettooth/extensions/views.py
+++ b/sweettooth/extensions/views.py
@@ -29,7 +29,7 @@ def get_versions_for_version_strings(version_strings):
for version_string in version_strings:
try:
- major, minor, point = models.parse_version_string(version_string, ignore_micro=True)
+ major, minor, point = models.parse_version_string(version_string)
except models.InvalidShellVersion:
continue
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]