Skip to content

Commit 6374d2a

Browse files
committed
fix: handle release objects with 'invalid' names
1 parent b9f398c commit 6374d2a

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

downloads/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,11 @@ def get_version(self):
128128
return None
129129

130130
def is_version_at_least(self, min_version_tuple):
131+
version = self.get_version()
132+
if version is None:
133+
return False
131134
v1 = []
132-
for b in self.get_version().split('.'):
135+
for b in version.split('.'):
133136
try:
134137
v1.append(int(b))
135138
except ValueError:

downloads/tests/test_models.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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)