You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by jo...@apache.org on 2014/04/01 16:03:11 UTC

[3/3] git commit: [#7207] Fixed some corner cases on default_branch_name logic and bumped version of ForgeHg

[#7207] Fixed some corner cases on default_branch_name logic and bumped version of ForgeHg

Signed-off-by: Cory Johns <cj...@slashdotmedia.com>


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/f72b7fdb
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/f72b7fdb
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/f72b7fdb

Branch: refs/heads/master
Commit: f72b7fdbca7e1f22188966799911147dd19d3471
Parents: 8e075a0
Author: Cory Johns <cj...@slashdotmedia.com>
Authored: Tue Apr 1 00:09:13 2014 +0000
Committer: Cory Johns <cj...@slashdotmedia.com>
Committed: Tue Apr 1 00:09:13 2014 +0000

----------------------------------------------------------------------
 Allura/allura/model/repository.py               | 23 ++++++------
 .../forgegit/tests/model/test_repository.py     | 37 +++++++++++++++++++-
 requirements-sf.txt                             |  2 +-
 3 files changed, 48 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/f72b7fdb/Allura/allura/model/repository.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/repository.py b/Allura/allura/model/repository.py
index 6e63cb3..81b4cd4 100644
--- a/Allura/allura/model/repository.py
+++ b/Allura/allura/model/repository.py
@@ -664,20 +664,19 @@ class Repository(Artifact, ActivityObject):
         self.status = status
         session(self).flush(self)
 
-    def get_default_branch(self, default_name):
-        default_branch_name = getattr(
-            self, 'default_branch_name', None)
-        branch_names = []
-
+    def get_default_branch(self, default_branch_name):
+        branch_name = getattr(self, 'default_branch_name', None) or default_branch_name
+        branches = []
         if not self.is_empty():
-            branch_names = [b.name for b in self.get_branches()]
-        if default_branch_name not in branch_names:
-            if len(branch_names) == 0:
-                default_branch_name = default_name
+            branches = [b.name for b in self.get_branches()]
+
+        if branches and branch_name not in branches:
+            if default_branch_name in branches:
+                branch_name = default_branch_name
             else:
-                default_branch_name = branch_names[0]
-                self.set_default_branch(default_branch_name)
-        return default_branch_name
+                branch_name = branches[0]
+            self.set_default_branch(branch_name)
+        return branch_name
 
 
 class MergeRequest(VersionedArtifact, ActivityObject):

http://git-wip-us.apache.org/repos/asf/allura/blob/f72b7fdb/ForgeGit/forgegit/tests/model/test_repository.py
----------------------------------------------------------------------
diff --git a/ForgeGit/forgegit/tests/model/test_repository.py b/ForgeGit/forgegit/tests/model/test_repository.py
index c283798..34b726b 100644
--- a/ForgeGit/forgegit/tests/model/test_repository.py
+++ b/ForgeGit/forgegit/tests/model/test_repository.py
@@ -470,10 +470,45 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase):
             ThreadLocalORMSession.flush_all()
             assert repo2.is_empty()
 
-    def test_default_branch(self):
+    def test_default_branch_set(self):
         self.repo.default_branch_name = 'zz'
         assert_equal(self.repo.get_default_branch('master'), 'zz')
 
+    def test_default_branch_non_standard_unset(self):
+        with mock.patch.object(self.repo, 'get_branches') as gb,\
+             mock.patch.object(self.repo, 'set_default_branch') as set_db:
+            gb.return_value = [Object(name='foo')]
+            assert_equal(self.repo.get_default_branch('master'), 'foo')
+            set_db.assert_called_once_with('foo')
+
+    def test_default_branch_non_standard_invalid(self):
+        with mock.patch.object(self.repo, 'get_branches') as gb,\
+             mock.patch.object(self.repo, 'set_default_branch') as set_db:
+            self.repo.default_branch_name = 'zz'
+            gb.return_value = [Object(name='foo')]
+            assert_equal(self.repo.get_default_branch('master'), 'foo')
+            set_db.assert_called_once_with('foo')
+
+    def test_default_branch_invalid(self):
+        with mock.patch.object(self.repo, 'get_branches') as gb,\
+             mock.patch.object(self.repo, 'set_default_branch') as set_db:
+            self.repo.default_branch_name = 'zz'
+            gb.return_value = [Object(name='foo'), Object(name='master')]
+            assert_equal(self.repo.get_default_branch('master'), 'master')
+            set_db.assert_called_once_with('master')
+
+    def test_default_branch_no_clobber(self):
+        with mock.patch.object(self.repo, 'get_branches') as gb:
+            gb.return_value = []
+            self.repo.default_branch_name = 'zz'
+            assert_equal(self.repo.get_default_branch('master'), 'zz')
+
+    def test_default_branch_clobber_none(self):
+        with mock.patch.object(self.repo, 'get_branches') as gb:
+            gb.return_value = []
+            self.repo.default_branch_name = None
+            assert_equal(self.repo.get_default_branch('master'), 'master')
+
     def test_clone_url(self):
         assert_equal(
             self.repo.clone_url('rw', 'nobody'),

http://git-wip-us.apache.org/repos/asf/allura/blob/f72b7fdb/requirements-sf.txt
----------------------------------------------------------------------
diff --git a/requirements-sf.txt b/requirements-sf.txt
index 0210873..3edcfa9 100644
--- a/requirements-sf.txt
+++ b/requirements-sf.txt
@@ -4,7 +4,7 @@ akismet==0.2.0
 amqplib==0.6.1
 kombu==1.0.4
 coverage==3.5a1-20110413
-ForgeHg==0.1.21
+ForgeHg==0.1.22
 ForgePastebin==0.3.0
 GoogleCodeWikiImporter==0.5.0
 mechanize==0.2.4