From f4e6ffdf6637345924f3e46fcf98fe820bf73840 Mon Sep 17 00:00:00 2001 From: Eric Holscher Date: Thu, 30 Nov 2017 07:49:11 -0800 Subject: [PATCH 1/2] Change stable version switching to respect `active` This previously used the `machine` tag that was turned off when a user de-activated the version, but never turned back on when they re-activated it. This changes to just use the `active` flag on the Version, so we will update the stable version if the existing one is `active`, and not if it isn't, which makes _way_ more sense. --- readthedocs/projects/models.py | 2 +- readthedocs/projects/views/private.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/readthedocs/projects/models.py b/readthedocs/projects/models.py index ac8df36d6ce..a07454f040d 100644 --- a/readthedocs/projects/models.py +++ b/readthedocs/projects/models.py @@ -707,7 +707,7 @@ def update_stable_version(self): if current_stable: identifier_updated = ( new_stable.identifier != current_stable.identifier) - if identifier_updated and current_stable.machine: + if identifier_updated and current_stable.active: log.info( "Update stable version: {project}:{version}".format( project=self.slug, diff --git a/readthedocs/projects/views/private.py b/readthedocs/projects/views/private.py index 6c09304dc62..cf4cac0e968 100644 --- a/readthedocs/projects/views/private.py +++ b/readthedocs/projects/views/private.py @@ -176,7 +176,6 @@ def project_version_detail(request, project_slug, version_slug): log.info('Removing files for version %s', version.slug) broadcast(type='app', task=tasks.clear_artifacts, args=[version.pk]) version.built = False - version.machine = False version.save() url = reverse('project_version_list', args=[project.slug]) return HttpResponseRedirect(url) From 01abd43764ccd396462afd5eaaa0084dcfd7ed84 Mon Sep 17 00:00:00 2001 From: Eric Holscher Date: Thu, 30 Nov 2017 08:01:42 -0800 Subject: [PATCH 2/2] Fix test --- readthedocs/rtd_tests/tests/test_sync_versions.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/readthedocs/rtd_tests/tests/test_sync_versions.py b/readthedocs/rtd_tests/tests/test_sync_versions.py index 79d6caf472f..8e525b06b9e 100644 --- a/readthedocs/rtd_tests/tests/test_sync_versions.py +++ b/readthedocs/rtd_tests/tests/test_sync_versions.py @@ -349,6 +349,9 @@ def test_update_stable_version(self): self.assertEqual(version_stable.identifier, '1.0.0') def test_update_inactive_stable_version(self): + """ + Test that stable doesn't get updated when it isn't active + """ version_post_data = { 'branches': [ { @@ -388,7 +391,7 @@ def test_update_inactive_stable_version(self): version_stable = Version.objects.get(slug=STABLE) self.assertFalse(version_stable.active) - self.assertEqual(version_stable.identifier, '1.0.0') + self.assertEqual(version_stable.identifier, '0.9') def test_stable_version_tags_over_branches(self): version_post_data = {