Skip to content

Commit de0d86f

Browse files
committed
Add new test
1 parent 2ab9257 commit de0d86f

File tree

1 file changed

+99
-23
lines changed

1 file changed

+99
-23
lines changed

readthedocs/rtd_tests/tests/test_sync_versions.py

+99-23
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import json
77

88
from django.test import TestCase
9-
import pytest
109

1110
from readthedocs.builds.constants import BRANCH, STABLE, TAG
1211
from readthedocs.builds.models import Version
@@ -153,7 +152,7 @@ def test_new_tag_update_inactive(self):
153152
version_8 = Version.objects.get(slug='0.8.3')
154153
self.assertFalse(version_8.active)
155154

156-
def test_stable_stuck(self):
155+
def test_normal_behaviour_for_stable_after_deleting_user_defined_tag(self):
157156
"""
158157
The repository has a tag named ``stable``,
159158
when syncing the versions, the RTD's ``stable`` is lost
@@ -166,6 +165,7 @@ def test_stable_stuck(self):
166165
verbose_name='0.8.3',
167166
type=TAG,
168167
active=False,
168+
machine=True,
169169
)
170170
self.pip.update_stable_version()
171171
current_stable = self.pip.get_stable_version()
@@ -185,6 +185,7 @@ def test_stable_stuck(self):
185185
},
186186
],
187187
'tags': [
188+
# User new stable
188189
{
189190
'identifier': '1abc2def3',
190191
'verbose_name': 'stable',
@@ -203,21 +204,7 @@ def test_stable_stuck(self):
203204
)
204205
self.assertEqual(resp.status_code, 200)
205206

206-
# The new tag is the new stable
207-
version8 = Version.objects.get(slug='0.8.3')
208-
version_stable = Version.objects.get(slug='stable')
209-
current_stable = self.pip.get_stable_version()
210-
self.assertEqual(
211-
version_stable.identifier,
212-
current_stable.identifier,
213-
)
214-
215-
# The current_stable lost its machine property
216-
# it's not automatically updated anymore
217-
self.assertFalse(current_stable.machine)
218-
219-
# Deleting the stable version should
220-
# return the RTD's stable
207+
# Deleting the stable version should return the RTD's stable
221208
version_post_data = {
222209
'branches': [
223210
{
@@ -252,6 +239,7 @@ def test_stable_stuck(self):
252239
'1abc2def3',
253240
current_stable.identifier,
254241
)
242+
self.assertTrue(current_stable.machine)
255243

256244

257245
class TestStableVersion(TestCase):
@@ -570,8 +558,85 @@ def test_unicode(self):
570558
)
571559
self.assertEqual(resp.status_code, 200)
572560

573-
def test_user_defined_stable_version_with_tags(self):
561+
def test_user_defined_stable_version_tag_with_tags(self):
562+
Version.objects.create(
563+
project=self.pip,
564+
identifier='0.8.3',
565+
verbose_name='0.8.3',
566+
active=True,
567+
)
574568

569+
# A pre-existing active stable tag that was machine created
570+
Version.objects.create(
571+
project=self.pip,
572+
identifier='foo',
573+
type=TAG,
574+
verbose_name='stable',
575+
active=True,
576+
machine=True,
577+
)
578+
579+
version_post_data = {
580+
'branches': [
581+
{
582+
'identifier': 'origin/master',
583+
'verbose_name': 'master',
584+
},
585+
],
586+
'tags': [
587+
# A new user-defined stable branch
588+
{
589+
'identifier': '1abc2def3',
590+
'verbose_name': 'stable',
591+
},
592+
{
593+
'identifier': '0.9',
594+
'verbose_name': '0.9',
595+
},
596+
{
597+
'identifier': '0.8.3',
598+
'verbose_name': '0.8.3',
599+
},
600+
],
601+
}
602+
603+
resp = self.client.post(
604+
'/api/v2/project/{}/sync_versions/'.format(self.pip.pk),
605+
data=json.dumps(version_post_data),
606+
content_type='application/json',
607+
)
608+
self.assertEqual(resp.status_code, 200)
609+
610+
# Didn't update to newest tag
611+
version_9 = Version.objects.get(slug='0.9')
612+
self.assertFalse(version_9.active)
613+
614+
# Did update to user-defined stable version
615+
version_stable = Version.objects.get(slug='stable')
616+
self.assertFalse(version_stable.machine)
617+
self.assertTrue(version_stable.active)
618+
self.assertEqual(
619+
'1abc2def3',
620+
self.pip.get_stable_version().identifier
621+
)
622+
623+
# Check that posting again doesn't change anything from current state.
624+
resp = self.client.post(
625+
'/api/v2/project/{}/sync_versions/'.format(self.pip.pk),
626+
data=json.dumps(version_post_data),
627+
content_type='application/json',
628+
)
629+
self.assertEqual(resp.status_code, 200)
630+
631+
version_stable = Version.objects.get(slug='stable')
632+
self.assertFalse(version_stable.machine)
633+
self.assertTrue(version_stable.active)
634+
self.assertEqual(
635+
'1abc2def3',
636+
self.pip.get_stable_version().identifier
637+
)
638+
639+
def test_user_defined_stable_version_branch_with_tags(self):
575640
Version.objects.create(
576641
project=self.pip,
577642
identifier='0.8.3',
@@ -583,7 +648,7 @@ def test_user_defined_stable_version_with_tags(self):
583648
Version.objects.create(
584649
project=self.pip,
585650
identifier='foo',
586-
type='branch',
651+
type=BRANCH,
587652
verbose_name='stable',
588653
active=True,
589654
machine=True,
@@ -613,11 +678,12 @@ def test_user_defined_stable_version_with_tags(self):
613678
],
614679
}
615680

616-
self.client.post(
681+
resp = self.client.post(
617682
'/api/v2/project/{}/sync_versions/'.format(self.pip.pk),
618683
data=json.dumps(version_post_data),
619684
content_type='application/json',
620685
)
686+
self.assertEqual(resp.status_code, 200)
621687

622688
# Didn't update to newest tag
623689
version_9 = Version.objects.get(slug='0.9')
@@ -627,13 +693,23 @@ def test_user_defined_stable_version_with_tags(self):
627693
version_stable = Version.objects.get(slug='stable')
628694
self.assertFalse(version_stable.machine)
629695
self.assertTrue(version_stable.active)
630-
self.assertEqual('origin/stable', self.pip.get_stable_version().identifier)
696+
self.assertEqual(
697+
'origin/stable',
698+
self.pip.get_stable_version().identifier
699+
)
631700

632701
# Check that posting again doesn't change anything from current state.
633-
self.client.post(
702+
resp = self.client.post(
634703
'/api/v2/project/{}/sync_versions/'.format(self.pip.pk),
635704
data=json.dumps(version_post_data),
636705
content_type='application/json',
637706
)
707+
self.assertEqual(resp.status_code, 200)
638708

639-
self.assertEqual('origin/stable', self.pip.get_stable_version().identifier)
709+
version_stable = Version.objects.get(slug='stable')
710+
self.assertFalse(version_stable.machine)
711+
self.assertTrue(version_stable.active)
712+
self.assertEqual(
713+
'origin/stable',
714+
self.pip.get_stable_version().identifier
715+
)

0 commit comments

Comments
 (0)