|
8 | 8 | from django.test.utils import override_settings
|
9 | 9 | from django_dynamic_fixture import get
|
10 | 10 |
|
11 |
| -from readthedocs.builds.constants import EXTERNAL, LATEST, STABLE |
| 11 | +from readthedocs.builds.constants import EXTERNAL, LATEST, LATEST_VERBOSE_NAME, STABLE, TAG, BRANCH |
12 | 12 | from readthedocs.builds.models import Version
|
13 | 13 | from readthedocs.core.forms import RichValidationError
|
14 | 14 | from readthedocs.oauth.models import RemoteRepository, RemoteRepositoryRelation
|
@@ -419,7 +419,10 @@ def test_set_remote_repository(self):
|
419 | 419 |
|
420 | 420 | class TestProjectAdvancedFormDefaultBranch(TestCase):
|
421 | 421 | def setUp(self):
|
422 |
| - self.project = get(Project) |
| 422 | + self.project = get( |
| 423 | + Project, |
| 424 | + repo="https://github.com/readthedocs/readthedocs.org/", |
| 425 | + ) |
423 | 426 | user_created_stable_version = get(
|
424 | 427 | Version,
|
425 | 428 | project=self.project,
|
@@ -530,6 +533,57 @@ def test_external_version_not_in_default_branch_choices(self):
|
530 | 533 | ],
|
531 | 534 | )
|
532 | 535 |
|
| 536 | + @mock.patch("readthedocs.projects.forms.trigger_build") |
| 537 | + def test_change_default_branch_from_tag_to_branch_and_vice_versa(self, trigger_build): |
| 538 | + branch = get( |
| 539 | + Version, |
| 540 | + project=self.project, |
| 541 | + slug="branch", |
| 542 | + type=BRANCH, |
| 543 | + verbose_name="branch", |
| 544 | + identifier="branch", |
| 545 | + ) |
| 546 | + tag = get( |
| 547 | + Version, |
| 548 | + project=self.project, |
| 549 | + slug="tag", |
| 550 | + type=TAG, |
| 551 | + verbose_name="tag", |
| 552 | + identifier="1234abcd", |
| 553 | + ) |
| 554 | + |
| 555 | + data = { |
| 556 | + "name": self.project.name, |
| 557 | + "repo": self.project.repo, |
| 558 | + "repo_type": self.project.repo_type, |
| 559 | + "default_version": LATEST, |
| 560 | + "versioning_scheme": self.project.versioning_scheme, |
| 561 | + "language": self.project.language, |
| 562 | + "default_branch": branch.verbose_name, |
| 563 | + } |
| 564 | + form = UpdateProjectForm(data, instance=self.project) |
| 565 | + assert form.is_valid() |
| 566 | + form.save() |
| 567 | + |
| 568 | + self.project.refresh_from_db() |
| 569 | + latest = self.project.get_latest_version() |
| 570 | + assert latest.slug == LATEST |
| 571 | + assert latest.verbose_name == LATEST_VERBOSE_NAME |
| 572 | + assert latest.identifier == branch.verbose_name |
| 573 | + assert latest.type == BRANCH |
| 574 | + |
| 575 | + data["default_branch"] = tag.verbose_name |
| 576 | + form = UpdateProjectForm(data, instance=self.project) |
| 577 | + assert form.is_valid() |
| 578 | + form.save() |
| 579 | + |
| 580 | + self.project.refresh_from_db() |
| 581 | + latest = self.project.get_latest_version() |
| 582 | + assert latest.slug == LATEST |
| 583 | + assert latest.verbose_name == LATEST_VERBOSE_NAME |
| 584 | + assert latest.identifier == tag.verbose_name |
| 585 | + assert latest.type == TAG |
| 586 | + |
533 | 587 |
|
534 | 588 | @override_settings(RTD_ALLOW_ORGANIZATIONS=False)
|
535 | 589 | class TestProjectPrevalidationForms(TestCase):
|
|
0 commit comments