summaryrefslogtreecommitdiff
path: root/test/git/test_index.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2009-10-23 17:55:33 +0200
committerSebastian Thiel <byronimo@gmail.com>2009-10-23 18:12:58 +0200
commit13a26d4f9c22695033040dfcd8c76fd94187035b (patch)
treec6211517e1b73d98837b4d04d930fb76a81af4e3 /test/git/test_index.py
parent81d8788d40867f4e5cf3016ef219473951a7f6ed (diff)
downloadgitpython-13a26d4f9c22695033040dfcd8c76fd94187035b.tar.gz
Implemented index.reset method including test
Diffstat (limited to 'test/git/test_index.py')
-rw-r--r--test/git/test_index.py28
1 files changed, 27 insertions, 1 deletions
diff --git a/test/git/test_index.py b/test/git/test_index.py
index 36e57d5c..7236aad9 100644
--- a/test/git/test_index.py
+++ b/test/git/test_index.py
@@ -146,7 +146,33 @@ class TestTree(TestBase):
# against something unusual
self.failUnlessRaises(ValueError, index.diff, int)
- self.fail( "Test IndexFile.reset" )
+ # adjust the index to match an old revision
+ cur_branch = rw_repo.active_branch
+ cur_commit = cur_branch.commit
+ rev_head_parent = 'HEAD~1'
+ assert index.reset(rev_head_parent) is index
+
+ assert cur_branch == rw_repo.active_branch
+ assert cur_commit == rw_repo.head.commit
+
+ # there must be differences towards the working tree which is in the 'future'
+ assert index.diff(None)
+
+ # reset the working copy as well to current head,to pull 'back' as well
+ new_data = "will be reverted"
+ file_path = os.path.join(rw_repo.git.git_dir, "CHANGES")
+ fp = open(file_path, "w")
+ fp.write(new_data)
+ fp.close()
+ index.reset(rev_head_parent, working_tree=True)
+ assert not index.diff(None)
+ assert cur_branch == rw_repo.active_branch
+ assert cur_commit == rw_repo.head.commit
+ fp = open(file_path)
+ try:
+ assert fp.read() != new_data
+ finally:
+ fp.close()
@with_rw_repo('0.1.6')
def test_index_mutation(self, rw_repo):