Merge ~pappacena/launchpad:forked-repo-owner-default into launchpad:master

Proposed by Thiago F. Pappacena
Status: Merged
Approved by: Thiago F. Pappacena
Approved revision: 59de4d866dfefce283c01145a09feae3348d14a5
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~pappacena/launchpad:forked-repo-owner-default
Merge into: launchpad:master
Diff against target: 50 lines (+23/-0)
2 files modified
lib/lp/code/model/gitrepository.py (+7/-0)
lib/lp/code/model/tests/test_gitrepository.py (+16/-0)
Reviewer Review Type Date Requested Status
Colin Watson (community) Approve
Review via email: mp+392381@code.launchpad.net

Commit message

Setting forked repo as owner-default if no other repo is set that way.

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Needs Information
59de4d8... by Thiago F. Pappacena

Marking repository as owner-default when forking, not confirming

Revision history for this message
Thiago F. Pappacena (pappacena) :
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/lib/lp/code/model/gitrepository.py b/lib/lp/code/model/gitrepository.py
index 44b9315..f7a2a0b 100644
--- a/lib/lp/code/model/gitrepository.py
+++ b/lib/lp/code/model/gitrepository.py
@@ -1772,6 +1772,13 @@ class GitRepositorySet:
1772 date_created=UTC_NOW, description=origin.description,1772 date_created=UTC_NOW, description=origin.description,
1773 with_hosting=True, async_hosting=True,1773 with_hosting=True, async_hosting=True,
1774 status=GitRepositoryStatus.CREATING)1774 status=GitRepositoryStatus.CREATING)
1775 try:
1776 # Try to set the new repo as owner-default.
1777 repository.setOwnerDefault(True)
1778 except GitDefaultConflict:
1779 # If there is already a owner-default for this owner/target,
1780 # just move on.
1781 pass
1775 return repository1782 return repository
17761783
1777 def getByPath(self, user, path):1784 def getByPath(self, user, path):
diff --git a/lib/lp/code/model/tests/test_gitrepository.py b/lib/lp/code/model/tests/test_gitrepository.py
index 6f65250..7d7464e 100644
--- a/lib/lp/code/model/tests/test_gitrepository.py
+++ b/lib/lp/code/model/tests/test_gitrepository.py
@@ -2750,6 +2750,21 @@ class TestGitRepositoryFork(TestCaseWithFactory):
2750 repo, another_person, another_team)2750 repo, another_person, another_team)
2751 self.assertEqual(another_team, forked_repo.owner)2751 self.assertEqual(another_team, forked_repo.owner)
2752 self.assertEqual(another_person, forked_repo.registrant)2752 self.assertEqual(another_person, forked_repo.registrant)
2753 self.assertTrue(forked_repo.owner_default)
2754 self.assertEqual(1, self.hosting_fixture.create.call_count)
2755
2756 def test_fork_not_owner_default(self):
2757 repo = self.factory.makeGitRepository()
2758 # The person forking the repo already has another repo which is the
2759 # owner-default for that owner & target.
2760 previous_repo = self.factory.makeGitRepository(target=repo.target)
2761 previous_repo.setOwnerDefault(True)
2762
2763 forked_repo = getUtility(IGitRepositorySet).fork(
2764 repo, previous_repo.owner, previous_repo.owner)
2765 self.assertEqual(previous_repo.owner, forked_repo.owner)
2766 self.assertEqual(previous_repo.owner, forked_repo.registrant)
2767 self.assertFalse(forked_repo.owner_default)
2753 self.assertEqual(1, self.hosting_fixture.create.call_count)2768 self.assertEqual(1, self.hosting_fixture.create.call_count)
27542769
2755 def test_fork_same_name(self):2770 def test_fork_same_name(self):
@@ -2762,6 +2777,7 @@ class TestGitRepositoryFork(TestCaseWithFactory):
27622777
2763 forked_repo = getUtility(IGitRepositorySet).fork(repo, person, person)2778 forked_repo = getUtility(IGitRepositorySet).fork(repo, person, person)
2764 self.assertEqual(forked_repo.target, repo.target)2779 self.assertEqual(forked_repo.target, repo.target)
2780 self.assertTrue(forked_repo.owner_default)
2765 self.assertEqual(forked_repo.name, "%s-1" % same_name_repo.name)2781 self.assertEqual(forked_repo.name, "%s-1" % same_name_repo.name)
27662782
27672783