diff tests/test_tags.py @ 447:0d3b5acb1d51

tags: handle edits to tags as gracefully as possible
author Augie Fackler <durin42@gmail.com>
date Tue, 23 Jun 2009 21:38:27 -0500
parents f5222d021665
children bda5b47ad2a2
line wrap: on
line diff
--- a/tests/test_tags.py
+++ b/tests/test_tags.py
@@ -86,6 +86,28 @@ class TestTags(test_util.TestBase):
              'versions/branch_version': 'I\x89\x1c>z#\xfc._K#@:\xd6\x1f\x96\xd6\x83\x1b|',
              })
 
+    def test_edited_tag_stupid(self):
+        self.test_edited_tag(True)
+
+    def test_edited_tag(self, stupid=False):
+       repo = self._load_fixture_and_fetch('commit-to-tag.svndump',
+                                           stupid=stupid)
+       self.assertEqual(len(repo.heads()), 2)
+       heads = repo.heads()
+       openheads = [h for h in heads if not repo[h].extra().get('close', False)]
+       closedheads = set(heads) - set(openheads)
+       self.assertEqual(len(openheads), 1)
+       self.assertEqual(len(closedheads), 1)
+       tagged = list(closedheads)[0]
+       self.assertEqual(
+           repo[tagged].extra(),
+           {'close': '1',
+            'branch': 'magic',
+            'convert_revision': 'svn:af82cc90-c2d2-43cd-b1aa-c8a78449440a/tags/will-edit@9'})
+       self.assertEqual(tagged, repo.tags()['will-edit'])
+       self.assertEqual(repo['will-edit'].manifest().keys(), ['beta',
+                                                              'gamma',
+                                                              ])
 
     def test_tags_in_unusual_location(self):
         repo = self._load_fixture_and_fetch('tag_name_same_as_branch.svndump')