Skip to content

Commit e8ac397

Browse files
authored
fix: handle release objects with 'invalid' names (#2790)
1 parent 4218afe commit e8ac397

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

downloads/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def get_version(self):
125125
version = re.match(r'Python\s([\d.]+)', self.name)
126126
if version is not None:
127127
return version.group(1)
128-
return None
128+
return ""
129129

130130
def is_version_at_least(self, min_version_tuple):
131131
v1 = []
@@ -291,7 +291,7 @@ def purge_fastly_download_pages(sender, instance, **kwargs):
291291
purge_url('/downloads/source/')
292292
purge_url('/downloads/windows/')
293293
purge_url('/ftp/python/')
294-
if instance.get_version() is not None:
294+
if instance.get_version():
295295
purge_url(f'/ftp/python/{instance.get_version()}/')
296296
# See issue #584 for details
297297
purge_url('/box/supernav-python-downloads/')

downloads/tests/test_models.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def test_get_version_invalid(self):
7474
with self.subTest(name=name):
7575
release = Release.objects.create(name=name)
7676
self.assertEqual(release.name, name)
77-
self.assertIsNone(release.get_version())
77+
self.assertEqual(release.get_version(), "")
7878

7979
def test_is_version_at_least(self):
8080
self.assertFalse(self.release_275.is_version_at_least_3_5)
@@ -87,3 +87,11 @@ def test_is_version_at_least(self):
8787
release_310 = Release.objects.create(name='Python 3.10.0')
8888
self.assertTrue(release_310.is_version_at_least_3_9)
8989
self.assertTrue(release_310.is_version_at_least_3_5)
90+
91+
def test_is_version_at_least_with_invalid_name(self):
92+
"""Test that is_version_at_least returns False for releases with invalid names"""
93+
invalid_release = Release.objects.create(name='Python install manager')
94+
# Should return False instead of raising AttributeError
95+
self.assertFalse(invalid_release.is_version_at_least_3_5)
96+
self.assertFalse(invalid_release.is_version_at_least_3_9)
97+
self.assertFalse(invalid_release.is_version_at_least_3_14)

0 commit comments

Comments
 (0)