@@ -43,17 +43,28 @@ def _test_fetch(self,remote, rw_repo, remote_repo):
4343
4444 res = remote .fetch ()
4545 self ._test_fetch_result (res , remote )
46+ # all uptodate
47+ for info in res :
48+ assert info .flags & info .BRANCH_UPTODATE
4649
4750 # rewind remote head to trigger rejection
4851 # index must be false as remote is a bare repo
49- remote_repo .head .reset ("HEAD~2" , index = False )
52+ rhead = remote_repo .head
53+ remote_commit = rhead .commit
54+ rhead .reset ("HEAD~2" , index = False )
5055 res = remote .fetch ()
5156 self ._test_fetch_result (res , remote )
52- master_info = res ["%s/master" % remote ]
57+ mkey = "%s/master" % remote
58+ master_info = res [mkey ]
5359 assert master_info .flags & Remote .FetchInfo .FORCED_UPDATE and master_info .note is not None
5460
55- self .fail ("test parsing of each individual flag" )
56- self .fail ("tag handling" )
61+ # normal fast forward - set head back to previous one
62+ rhead .commit = remote_commit
63+ res = remote .fetch ()
64+ self ._test_fetch_result (res , remote )
65+ assert res [mkey ].flags & Remote .FetchInfo .FAST_FORWARD
66+
67+ self .fail ("tag handling, tag uptodate, new tag, new branch" )
5768
5869 def _test_pull (self ,remote , rw_repo , remote_repo ):
5970 # pull is essentially a fetch + merge, hence we just do a light
0 commit comments