diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/git/test_commit.py | 16 | ||||
-rw-r--r-- | test/git/test_performance.py | 38 |
2 files changed, 38 insertions, 16 deletions
diff --git a/test/git/test_commit.py b/test/git/test_commit.py index 1966d198..a95fb675 100644 --- a/test/git/test_commit.py +++ b/test/git/test_commit.py @@ -230,19 +230,3 @@ class TestCommit(object): assert_equal(commit1, commit2) assert_not_equal(commit2, commit3) - def test_iteration(self): - root = self.repo.tree() - head = self.repo.active_branch - head_commit = self.repo.active_branch.object - num_objs = 0 - - # find the first commit containing the given path - always do a full - # iteration ( restricted to the path in question ), but in fact it should - # return quite a lot of commits, we just take one and hence abort the operation - - for obj in root.traverse(): - num_objs += 1 - del( head_commit.tree ) # force it to clear the cache, just to make it harder - assert obj in head_commit.tree.traverse() - # END for each object - diff --git a/test/git/test_performance.py b/test/git/test_performance.py new file mode 100644 index 00000000..96f13a2e --- /dev/null +++ b/test/git/test_performance.py @@ -0,0 +1,38 @@ +# test_performance.py +# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors +# +# This module is part of GitPython and is released under +# the BSD License: http://www.opensource.org/licenses/bsd-license.php + +from test.testlib import * +from git import * +from time import time + +class TestPerformance(object): + def setup(self): + self.repo = Repo(GIT_REPO) + + def test_iteration(self): + num_objs = 0 + num_commits = 0 + + # find the first commit containing the given path - always do a full + # iteration ( restricted to the path in question ), but in fact it should + # return quite a lot of commits, we just take one and hence abort the operation + + st = time() + for c in self.repo.commits(): + num_commits += 1 + c.author + c.authored_date + c.committer + c.committed_date + c.message + for obj in c.tree.traverse(): + obj.size + num_objs += 1 + # END for each object + # END for each commit + elapsed_time = time() - st + print "Traversed %i Trees and a total of %i unchached objects in %s [s] ( %f objs/s )" % (num_commits, num_objs, elapsed_time, num_objs/elapsed_time) + |