Skip to content

Commit f50003e

Browse files
authored
Version sync: exclude external versions when deleting (#7742)
We weren't hitting this before bc we were excluding active versions. But now, external versions can also be inactive.
1 parent 481fd85 commit f50003e

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

readthedocs/api/v2/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from readthedocs.builds.constants import (
99
BRANCH,
10+
INTERNAL,
1011
LATEST,
1112
LATEST_VERBOSE_NAME,
1213
NON_REPOSITORY_VERSIONS,
@@ -176,7 +177,7 @@ def _get_deleted_versions_qs(project, version_data):
176177
]
177178

178179
to_delete_qs = (
179-
project.versions
180+
project.versions(manager=INTERNAL)
180181
.exclude(uploaded=True)
181182
.exclude(slug__in=NON_REPOSITORY_VERSIONS)
182183
)

readthedocs/rtd_tests/tests/test_sync_versions.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from django.urls import reverse
88
from django_dynamic_fixture import get
99

10-
from readthedocs.builds.constants import BRANCH, LATEST, STABLE, TAG
10+
from readthedocs.builds.constants import BRANCH, EXTERNAL, LATEST, STABLE, TAG
1111
from readthedocs.builds.models import (
1212
RegexAutomationRule,
1313
Version,
@@ -183,6 +183,15 @@ def test_delete_version(self):
183183
verbose_name='0.8.3',
184184
active=False,
185185
)
186+
187+
Version.objects.create(
188+
project=self.pip,
189+
identifier='external',
190+
verbose_name='external',
191+
type=EXTERNAL,
192+
active=False,
193+
)
194+
186195
self.pip.update_stable_version()
187196

188197
version_post_data = {
@@ -209,6 +218,11 @@ def test_delete_version(self):
209218
Version.objects.filter(slug='0.8.3').exists(),
210219
)
211220

221+
# The inactive external version isn't deleted
222+
self.assertTrue(
223+
Version.objects.filter(slug='external').exists(),
224+
)
225+
212226
def test_machine_attr_when_user_define_stable_tag_and_delete_it(self):
213227
"""
214228
The user creates a tag named ``stable`` on an existing repo,

0 commit comments

Comments
 (0)