Skip to content

Commit b8a06f1

Browse files
committed
Filtered inactive releases in get_latest_micro_release().
Fixes #2481.
1 parent 1c1cc43 commit b8a06f1

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

releases/templatetags/release_notes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def get_latest_micro_release(version):
4343
"""
4444
major, minor = version.split(".")
4545
release = (
46-
Release.objects.filter(major=major, minor=minor, status="f")
46+
Release.objects.filter(major=major, minor=minor, status="f", is_active=True)
4747
.order_by("-micro")
4848
.first()
4949
)

releases/tests.py

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,38 @@
2222

2323
class TestTemplateTags(TestCase):
2424
def test_get_latest_micro_release(self):
25-
Release.objects.create(major=1, minor=8, micro=0, is_lts=True, version="1.8")
26-
Release.objects.create(major=1, minor=8, micro=1, is_lts=True, version="1.8.1")
25+
Release.objects.create(
26+
major=1, minor=8, micro=0, is_lts=True, version="1.8", is_active=True
27+
)
28+
Release.objects.create(
29+
major=1, minor=8, micro=1, is_lts=True, version="1.8.1", is_active=True
30+
)
2731

2832
self.assertEqual(get_latest_micro_release("1.8"), "1.8.1")
2933
self.assertEqual(get_latest_micro_release("1.4"), None)
3034

35+
def test_get_latest_micro_release_excludes_inactive(self):
36+
Release.objects.create(major=5, minor=2, micro=0, version="5.2", is_active=True)
37+
Release.objects.create(
38+
major=5, minor=2, micro=1, version="5.2.1", is_active=True
39+
)
40+
# Create a newer release that is not yet active.
41+
Release.objects.create(
42+
major=5, minor=2, micro=2, version="5.2.2", is_active=False
43+
)
44+
45+
self.assertEqual(get_latest_micro_release("5.2"), "5.2.1")
46+
47+
def test_get_latest_micro_release_no_active_releases(self):
48+
Release.objects.create(
49+
major=4, minor=1, micro=0, version="4.1", is_active=False
50+
)
51+
Release.objects.create(
52+
major=4, minor=1, micro=1, version="4.1.1", is_active=False
53+
)
54+
55+
self.assertIsNone(get_latest_micro_release("4.1"))
56+
3157
def test_release_notes(self):
3258
output = release_notes("1.8")
3359
self.assertIsInstance(output, SafeString)

0 commit comments

Comments
 (0)