Return-Path: X-Original-To: apmail-incubator-allura-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-allura-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 50CEDE416 for ; Wed, 6 Feb 2013 15:42:54 +0000 (UTC) Received: (qmail 85720 invoked by uid 500); 6 Feb 2013 15:42:54 -0000 Delivered-To: apmail-incubator-allura-commits-archive@incubator.apache.org Received: (qmail 85341 invoked by uid 500); 6 Feb 2013 15:42:53 -0000 Mailing-List: contact allura-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: allura-dev@incubator.apache.org Delivered-To: mailing list allura-commits@incubator.apache.org Received: (qmail 85064 invoked by uid 99); 6 Feb 2013 15:42:52 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 Feb 2013 15:42:52 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 39153240EE; Wed, 6 Feb 2013 15:42:52 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: johnsca@apache.org To: allura-commits@incubator.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [41/50] git commit: [#4691] Fixed failing tests due to LCD changes Message-Id: <20130206154252.39153240EE@tyr.zones.apache.org> Date: Wed, 6 Feb 2013 15:42:52 +0000 (UTC) [#4691] Fixed failing tests due to LCD changes Signed-off-by: Cory Johns Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/c97950a6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/c97950a6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/c97950a6 Branch: refs/heads/cj/4691 Commit: c97950a67c5c571e1563cf0dc7bfbf22910d51d7 Parents: ddb3a5a Author: Cory Johns Authored: Tue Jan 22 22:49:42 2013 +0000 Committer: Tim Van Steenburgh Committed: Tue Feb 5 20:22:52 2013 +0000 ---------------------------------------------------------------------- Allura/allura/controllers/repository.py | 2 +- Allura/allura/model/repo.py | 7 +- Allura/allura/model/repo_refresh.py | 3 +- Allura/allura/tests/unit/test_repo.py | 100 ----------------- ForgeGit/forgegit/model/git_repo.py | 12 +-- ForgeGit/forgegit/tests/model/test_repository.py | 26 +++-- ForgeSVN/forgesvn/tests/model/test_repository.py | 20 ---- 7 files changed, 25 insertions(+), 145 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c97950a6/Allura/allura/controllers/repository.py ---------------------------------------------------------------------- diff --git a/Allura/allura/controllers/repository.py b/Allura/allura/controllers/repository.py index 6aeca01..40a9bc3 100644 --- a/Allura/allura/controllers/repository.py +++ b/Allura/allura/controllers/repository.py @@ -433,7 +433,7 @@ class CommitBrowser(BaseController): if path: path = path.lstrip('/') params = dict(path=path, rev=self._commit._id) - commits = c.app.repo.commits(skip=start, limit=limit, **params) + commits = list(c.app.repo.commits(skip=start, limit=limit, **params)) count = c.app.repo.commits_count(**params) revisions = M.repo.Commit.query.find({'_id': {'$in': commits}}).sort('committed.date', -1) c.log_widget = self.log_widget http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c97950a6/Allura/allura/model/repo.py ---------------------------------------------------------------------- diff --git a/Allura/allura/model/repo.py b/Allura/allura/model/repo.py index 81ea0b5..2c5b7e9 100644 --- a/Allura/allura/model/repo.py +++ b/Allura/allura/model/repo.py @@ -464,7 +464,9 @@ class Tree(RepoObject): # look for existing new format first last_commit = LastCommit.get(self, create=True) if last_commit: - session(last_commit).flush(last_commit) + s = session(last_commit) + if s: + s.flush(last_commit) return self._lcd_map(last_commit) # otherwise, try old format old_style_results = self.ls_old() @@ -611,8 +613,7 @@ class Blob(object): def prev_commit(self): lc = LastCommit.get(self.tree) if lc: - entry = lc.by_name[self.name] - last_commit = self.repo.commit(entry.commit_id) + last_commit = self.repo.commit(lc.by_name[self.name]) prev_commit = last_commit.get_parent() try: tree = prev_commit and prev_commit.get_path(self.tree.path().rstrip('/')) http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c97950a6/Allura/allura/model/repo_refresh.py ---------------------------------------------------------------------- diff --git a/Allura/allura/model/repo_refresh.py b/Allura/allura/model/repo_refresh.py index d80b981..48a64e7 100644 --- a/Allura/allura/model/repo_refresh.py +++ b/Allura/allura/model/repo_refresh.py @@ -58,7 +58,7 @@ def refresh_repo(repo, all_commits=False, notify=True): if (i+1) % 100 == 0: log.info('Refresh child info %d for parents of %s', (i+1), ci._id) - if repo.tool.lower() != 'svn': + if repo._refresh_precompute: # Refresh commit runs commit_run_ids = commit_ids # Check if the CommitRuns for the repo are in a good state by checking for @@ -103,6 +103,7 @@ def refresh_repo(repo, all_commits=False, notify=True): cache = ModelCache() for i, oid in enumerate(reversed(commit_ids)): ci = cache.get(Commit, dict(_id=oid)) + ci.set_context(repo) compute_lcds(ci, cache) ThreadLocalORMSession.flush_all() if (i+1) % 100 == 0: http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c97950a6/Allura/allura/tests/unit/test_repo.py ---------------------------------------------------------------------- diff --git a/Allura/allura/tests/unit/test_repo.py b/Allura/allura/tests/unit/test_repo.py index f892875..837d56d 100644 --- a/Allura/allura/tests/unit/test_repo.py +++ b/Allura/allura/tests/unit/test_repo.py @@ -103,106 +103,6 @@ def blob(name, id): return b -class TestRefreshLastCommit(unittest.TestCase): - @patch('allura.model.repo_refresh.TreeDoc.m.get') - @patch('allura.model.repo_refresh.set_last_commit') - def test_no_changes(self, set_last_commit, get): - repo_id = 'repo_1' - path = '/' - lhs_tree = tree('lhs_tree', 'tid1') - rhs_tree = tree('rhs_tree', 'tid1') - parent_tree = Mock() - commit_info = {} - - M.repo_refresh.refresh_last_commit(repo_id, path, rhs_tree, lhs_tree, parent_tree, commit_info) - - self.assertEqual(set_last_commit.call_count, 0) - self.assertEqual(get.call_count, 0) - - @patch('allura.model.repo_refresh.TreeDoc.m.get') - @patch('allura.model.repo_refresh.set_last_commit') - def test_unchanged_blob(self, set_last_commit, get): - repo_id = 'repo_1' - path = '/' - lhs_tree = tree('lhs_tree', 'tid1', blobs=[blob('unchanged_blob', 'bid1')]) - rhs_tree = tree('rhs_tree', 'tid2', blobs=[blob('unchanged_blob', 'bid1')]) - parent_tree = Mock() - commit_info = {} - - M.repo_refresh.refresh_last_commit(repo_id, path, rhs_tree, lhs_tree, parent_tree, commit_info) - - self.assertEqual(set_last_commit.call_count, 0) - self.assertEqual(get.call_count, 0) - - @patch('allura.model.repo_refresh.TreeDoc.m.get') - @patch('allura.model.repo_refresh.set_last_commit') - def test_changed_blob(self, set_last_commit, get): - repo_id = 'repo_1' - path = '/' - lhs_tree = tree('lhs_tree', 'tid1', blobs=[blob('changed_blob', 'bid1')]) - rhs_tree = tree('rhs_tree', 'tid2', blobs=[blob('changed_blob', 'bid2')]) - parent_tree = Mock() - commit_info = {'author': 'Testy'} - - M.repo_refresh.refresh_last_commit(repo_id, path, rhs_tree, lhs_tree, parent_tree, commit_info) - - set_last_commit.assert_called_once_with(repo_id, path, 'changed_blob', 'bid2', commit_info) - self.assertEqual(get.call_count, 0) - - @patch('allura.model.repo_refresh.TreeDoc.m.get') - @patch('allura.model.repo_refresh.set_last_commit') - def test_new_blob(self, set_last_commit, get): - repo_id = 'repo_1' - path = '/' - lhs_tree = tree('lhs_tree', 'tid1', blobs=[blob('old_blob', 'bid1')]) - rhs_tree = tree('rhs_tree', 'tid2', blobs=[blob('new_blob', 'bid2')]) - parent_tree = Mock() - commit_info = {'author': 'Testy'} - - M.repo_refresh.refresh_last_commit(repo_id, path, rhs_tree, lhs_tree, parent_tree, commit_info) - - set_last_commit.assert_called_once_with(repo_id, path, 'new_blob', 'bid2', commit_info) - self.assertEqual(get.call_count, 0) - - @patch('allura.model.repo_refresh.TreeDoc.m.get') - @patch('allura.model.repo_refresh.set_last_commit') - def test_unchanged_subtree(self, set_last_commit, get): - repo_id = 'repo_1' - path = '/' - lhs_tree = tree('lhs_tree', 'tid1', trees=[tree('unchanged_tree', 'tid3')]) - rhs_tree = tree('rhs_tree', 'tid2', trees=[tree('unchanged_tree', 'tid3', blobs=[blob('new_blob', 'bid1')])]) - parent_tree = Mock() - commit_info = {'author': 'Testy'} - get.side_effect = [rhs_tree.tree_ids[0], lhs_tree.tree_ids[0]] - - M.repo_refresh.refresh_last_commit(repo_id, path, rhs_tree, lhs_tree, parent_tree, commit_info) - - self.assertEqual(set_last_commit.call_count, 0) - self.assertEqual(get.call_count, 2) - self.assertEqual(get.call_args_list, [[{'_id': 'tid3'}], [{'_id': 'tid3'}]]) - - @patch('allura.model.repo_refresh.TreeDoc.m.get') - @patch('allura.model.repo_refresh.set_last_commit') - def test_changed_subtree(self, set_last_commit, get): - repo_id = 'repo_1' - path = '/' - lhs_tree = tree('lhs_tree', 'tid1', trees=[tree('changed_tree', 'tid3')]) - rhs_tree = tree('rhs_tree', 'tid2', trees=[tree('changed_tree', 'tid4', blobs=[blob('new_blob', 'bid1')])]) - parent_tree = Mock() - commit_info = {'author': 'Testy'} - get.side_effect = [rhs_tree.tree_ids[0], lhs_tree.tree_ids[0]] - - M.repo_refresh.refresh_last_commit(repo_id, path, rhs_tree, lhs_tree, parent_tree, commit_info) - - self.assertEqual(set_last_commit.call_count, 2) - self.assertEqual(set_last_commit.call_args_list, [ - [(repo_id, '/', 'changed_tree', 'tid4', commit_info)], - [(repo_id, '/changed_tree/', 'new_blob', 'bid1', commit_info)], - ]) - self.assertEqual(get.call_count, 2) - self.assertEqual(get.call_args_list, [[{'_id': 'tid4'}], [{'_id': 'tid3'}]]) - - class TestTree(unittest.TestCase): @patch('allura.model.repo.Tree.__getitem__') http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c97950a6/ForgeGit/forgegit/model/git_repo.py ---------------------------------------------------------------------- diff --git a/ForgeGit/forgegit/model/git_repo.py b/ForgeGit/forgegit/model/git_repo.py index d7409d5..111c863 100644 --- a/ForgeGit/forgegit/model/git_repo.py +++ b/ForgeGit/forgegit/model/git_repo.py @@ -237,18 +237,12 @@ class GitImplementation(M.RepositoryImplementation): return doc def commits(self, path=None, rev=None, skip=None, limit=None): - #params = dict(paths=path) - #if rev is not None: - # params['rev'] = rev - #if skip is not None: - # params['skip'] = skip - #if limit is not None: - # params['max_count'] = limit - #return [c.hexsha for c in self._git.iter_commits(**params)] if rev is None: rev = 'HEAD' if skip is None: skip = 0 + if path is not None: + path = path.strip('/') max = skip + limit if limit is not None else None commit = self.commit(rev) i = 0 @@ -257,7 +251,7 @@ class GitImplementation(M.RepositoryImplementation): if i >= skip: yield commit._id i += 1 - if max is not None and i > max: + if max is not None and i >= max: break commit = commit.get_parent() http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c97950a6/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 fac154e..1c5045b 100644 --- a/ForgeGit/forgegit/tests/model/test_repository.py +++ b/ForgeGit/forgegit/tests/model/test_repository.py @@ -44,6 +44,8 @@ class TestNewGit(unittest.TestCase): # tool = 'git', # status = 'creating') self.repo.refresh() + # refresh sets c.model_cache, which can cause persistence between tests + c.model_cache = None self.rev = M.repo.Commit.query.get(_id=self.repo.heads[0]['object_id']) self.rev.repo = self.repo ThreadLocalORMSession.flush_all() @@ -113,6 +115,8 @@ class TestGitRepo(unittest.TestCase, RepoImplTestBase): tool = 'git', status = 'creating') self.repo.refresh() + # refresh sets c.model_cache, which can cause persistence between tests + c.model_cache = None ThreadLocalORMSession.flush_all() ThreadLocalORMSession.close_all() @@ -256,32 +260,32 @@ class TestGitCommit(unittest.TestCase): def test_commits(self): # path only - commits = self.repo.commits() + commits = list(self.repo.commits()) assert len(commits) == 4, 'Returned %s commits' % len(commits) assert "9a7df788cf800241e3bb5a849c8870f2f8259d98" in commits, commits - commits = self.repo.commits('README') + commits = list(self.repo.commits('README')) assert len(commits) == 2, 'Returned %s README commits' % len(commits) assert "1e146e67985dcd71c74de79613719bef7bddca4a" in commits, commits assert "df30427c488aeab84b2352bdf88a3b19223f9d7a" in commits, commits - assert self.repo.commits('does/not/exist') == [] + assert list(self.repo.commits('does/not/exist')) == [] # with path and start rev - commits = self.repo.commits('README', 'df30427c488aeab84b2352bdf88a3b19223f9d7a') + commits = list(self.repo.commits('README', 'df30427c488aeab84b2352bdf88a3b19223f9d7a')) assert commits == ['df30427c488aeab84b2352bdf88a3b19223f9d7a'], commits # skip and limit - commits = self.repo.commits(None, rev=None, skip=1, limit=2) + commits = list(self.repo.commits(None, rev=None, skip=1, limit=2)) assert commits == ['df30427c488aeab84b2352bdf88a3b19223f9d7a', '6a45885ae7347f1cac5103b0050cc1be6a1496c8'] - commits = self.repo.commits(None, '6a45885ae7347f1cac5103b0050cc1be6a1496c8', skip=1) + commits = list(self.repo.commits(None, '6a45885ae7347f1cac5103b0050cc1be6a1496c8', skip=1)) assert commits == ['9a7df788cf800241e3bb5a849c8870f2f8259d98'] - commits = self.repo.commits('README', 'df30427c488aeab84b2352bdf88a3b19223f9d7a', skip=1) + commits = list(self.repo.commits('README', 'df30427c488aeab84b2352bdf88a3b19223f9d7a', skip=1)) assert commits == [] # path to dir - commits = self.repo.commits('a/b/c/') + commits = list(self.repo.commits('a/b/c/')) assert commits == ['6a45885ae7347f1cac5103b0050cc1be6a1496c8', '9a7df788cf800241e3bb5a849c8870f2f8259d98'] - commits = self.repo.commits('a/b/c/', skip=1) + commits = list(self.repo.commits('a/b/c/', skip=1)) assert commits == ['9a7df788cf800241e3bb5a849c8870f2f8259d98'] - commits = self.repo.commits('a/b/c/', limit=1) + commits = list(self.repo.commits('a/b/c/', limit=1)) assert commits == ['6a45885ae7347f1cac5103b0050cc1be6a1496c8'] - commits = self.repo.commits('not/exist/') + commits = list(self.repo.commits('not/exist/')) assert commits == [] def test_commits_count(self): http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/c97950a6/ForgeSVN/forgesvn/tests/model/test_repository.py ---------------------------------------------------------------------- diff --git a/ForgeSVN/forgesvn/tests/model/test_repository.py b/ForgeSVN/forgesvn/tests/model/test_repository.py index b683fd0..af29b49 100644 --- a/ForgeSVN/forgesvn/tests/model/test_repository.py +++ b/ForgeSVN/forgesvn/tests/model/test_repository.py @@ -619,26 +619,6 @@ class TestRepoObject(_TestWithRepoAndCommit): assert obj0 is obj1 assert isnew0 and not isnew1 - def test_set_last_commit(self): - obj, isnew = M.repo.Tree.upsert('foo1') - M.repo_refresh.set_last_commit( - self.repo._id, '/', 'fakefile', obj._id, - M.repo_refresh.get_commit_info(self.ci)) - - def test_get_last_commit(self): - obj, isnew = M.repo.Tree.upsert('foo1') - lc0 = M.repo_refresh.set_last_commit( - self.repo._id, '/', 'fakefile', obj._id, - M.repo_refresh.get_commit_info(self.ci)) - - lc1 = M.repo.LastCommitDoc.m.get(object_id=obj._id) - assert lc0 == lc1 - - def test_get_last_commit_missing(self): - obj, isnew = M.repo.Tree.upsert('foo1') - lc1 = M.repo.LastCommitDoc.m.get(object_id=obj._id) - assert lc1 is None - def test_artifact_methods(self): assert self.ci.index_id() == 'allura/model/repo/Commit#foo', self.ci.index_id() assert self.ci.primary() is self.ci, self.ci.primary()