[extensions-web] extensions: added reverse-conversion for GNOME 40+ unstable versions
- From: Yuri Konotopov <ykonotopov src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [extensions-web] extensions: added reverse-conversion for GNOME 40+ unstable versions
- Date: Sat, 19 Dec 2020 19:01:12 +0000 (UTC)
commit 43632f7a4799d96fbd468221a0b551e5168e077d
Author: Yuri Konotopov <ykonotopov gnome org>
Date: Sat Dec 19 22:59:25 2020 +0400
extensions: added reverse-conversion for GNOME 40+ unstable versions
sweettooth/extensions/models.py | 14 ++++++++++++++
sweettooth/extensions/tests.py | 14 ++++++++++----
2 files changed, 24 insertions(+), 4 deletions(-)
---
diff --git a/sweettooth/extensions/models.py b/sweettooth/extensions/models.py
index a125b0ec..6d83ae87 100644
--- a/sweettooth/extensions/models.py
+++ b/sweettooth/extensions/models.py
@@ -266,6 +266,20 @@ class ShellVersion(models.Model):
@property
def version_string(self):
+ prerelease_versions = {
+ -3: 'alpha',
+ -2: 'beta',
+ -1: 'rc'
+ }
+
+ # GNOME 40+: unstable versions
+ # https://discourse.gnome.org/t/new-gnome-versioning-scheme/4235
+ if self.major >= 40 and self.minor < 0:
+ return "%d.%s" % (
+ self.major,
+ prerelease_versions.get(self.minor, 'unknown')
+ )
+
if self.point == -1:
return "%d.%d" % (self.major, self.minor)
diff --git a/sweettooth/extensions/tests.py b/sweettooth/extensions/tests.py
index 4f2abc4c..180978f2 100644
--- a/sweettooth/extensions/tests.py
+++ b/sweettooth/extensions/tests.py
@@ -302,7 +302,10 @@ class ExtensionVersionTest(BasicUserTestCase, TestCase):
"uuid": "test-4 mecheye net",
"description": "Simple test metadata",
"url": "http://test-metadata.gnome.org",
- "shell-version": ["3.0.0", "3.0.1", "3.0.2"]}
+ "shell-version": [
+ "3.0.0", "3.0.1", "3.0.2",
+ "40.alpha", "49.beta", "67.rc"
+ ]}
extension = models.Extension.objects.create_from_metadata(metadata, creator=self.user)
version = models.ExtensionVersion.objects.create(extension=extension,
@@ -310,14 +313,17 @@ class ExtensionVersionTest(BasicUserTestCase, TestCase):
version.parse_metadata_json(metadata)
shell_versions = sorted(sv.version_string for sv in version.shell_versions.all())
- self.assertEqual(shell_versions, ["3.0.0", "3.0.1", "3.0.2"])
+ self.assertEqual(shell_versions, [
+ "3.0.0", "3.0.1", "3.0.2",
+ "40.alpha", "49.beta", "67.rc"
+ ])
def test_shell_versions_stable(self):
metadata = {"name": "Test Metadata 5",
"uuid": "test-5 mecheye net",
"description": "Simple test metadata",
"url": "http://test-metadata.gnome.org",
- "shell-version": ["3.0", "3.2"]}
+ "shell-version": ["3.0", "3.2", "40.0", "56.5"]}
extension = models.Extension.objects.create_from_metadata(metadata, creator=self.user)
@@ -326,7 +332,7 @@ class ExtensionVersionTest(BasicUserTestCase, TestCase):
version.parse_metadata_json(metadata)
shell_versions = sorted(sv.version_string for sv in version.shell_versions.all())
- self.assertEqual(shell_versions, ["3.0", "3.2"])
+ self.assertEqual(shell_versions, ["3.0", "3.2", "40.0", "56.5"])
class ShellVersionTest(TestCase):
def test_shell_version_parsing(self):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]