@@ -106,14 +106,22 @@ def get_info(res, remote, name):
106106 # add new tag reference
107107 rtag = TagReference .create (remote_repo , "1.0-RV_hello.there" )
108108 res = fetch_and_test (remote , tags = True )
109- ltag = res [str (rtag )]
110- assert isinstance (ltag .ref , TagReference )
111-
112- # delete tag
109+ tinfo = res [str (rtag )]
110+ assert isinstance (tinfo .ref , TagReference ) and tinfo .ref .commit == rtag .commit
111+ assert tinfo .flags & tinfo .NEW_TAG
113112
114113 # adjust tag commit
114+ rtag .object = rhead .commit .parents [0 ].parents [0 ]
115+ res = fetch_and_test (remote , tags = True )
116+ tinfo = res [str (rtag )]
117+ assert tinfo .commit == rtag .commit
118+ assert tinfo .flags & tinfo .TAG_UPDATE
119+
120+ # delete remote tag - local one will stay
121+ TagReference .delete (remote_repo , rtag )
122+ res = fetch_and_test (remote , tags = True )
123+ self .failUnlessRaises (IndexError , get_info , res , remote , str (rtag ))
115124
116- self .fail ("tag handling, tag uptodate, new tag, new branch" )
117125
118126 def _test_pull (self ,remote , rw_repo , remote_repo ):
119127 # pull is essentially a fetch + merge, hence we just do a light
0 commit comments