comparison tests/test_tags.py @ 453:bb612e625be6

tags: handle copyfrom old versions of tags more correctly
author Augie Fackler <durin42@gmail.com>
date Wed, 01 Jul 2009 14:42:46 -0500
parents ae35c389cdef
children 63cb630d667d
comparison
equal deleted inserted replaced
452:ae35c389cdef 453:bb612e625be6
1 import os
1 import unittest 2 import unittest
2 3
4 from mercurial import commands
3 from mercurial import hg 5 from mercurial import hg
4 from mercurial import node 6 from mercurial import node
5 from mercurial import ui 7 from mercurial import ui
6 8
7 import test_util 9 import test_util
90 self.test_edited_tag(True) 92 self.test_edited_tag(True)
91 93
92 def test_edited_tag(self, stupid=False): 94 def test_edited_tag(self, stupid=False):
93 repo = self._load_fixture_and_fetch('commit-to-tag.svndump', 95 repo = self._load_fixture_and_fetch('commit-to-tag.svndump',
94 stupid=stupid) 96 stupid=stupid)
95 self.assertEqual(len(repo.heads()), 4) 97 self.assertEqual(len(repo.heads()), 5)
96 heads = repo.heads() 98 heads = repo.heads()
97 openheads = [h for h in heads if not repo[h].extra().get('close', False)] 99 openheads = [h for h in heads if not repo[h].extra().get('close', False)]
98 closedheads = set(heads) - set(openheads) 100 closedheads = set(heads) - set(openheads)
99 self.assertEqual(len(openheads), 0) 101 self.assertEqual(len(openheads), 1)
100 self.assertEqual(len(closedheads), 4) 102 self.assertEqual(len(closedheads), 4)
101 closedheads = sorted(list(closedheads), cmp=lambda x,y: cmp(repo[x].rev(), 103 closedheads = sorted(list(closedheads),
102 repo[y].rev())) 104 cmp=lambda x,y: cmp(repo[x].rev(), repo[y].rev()))
105
103 # closeme has no open heads 106 # closeme has no open heads
104 for h in openheads: 107 for h in openheads:
105 self.assertNotEqual('closeme', repo[openheads[0]].branch()) 108 self.assertNotEqual('closeme', repo[openheads[0]].branch())
106 109
107 self.assertEqual(1, len(self.repo.branchheads('magic'))) 110 self.assertEqual(1, len(self.repo.branchheads('magic')))
108 111
109 willedit, alsoedit, editlater, closeme = closedheads 112 alsoedit, editlater, closeme, willedit, = closedheads
110 self.assertEqual( 113 self.assertEqual(
111 repo[willedit].extra(), 114 repo[willedit].extra(),
112 {'close': '1', 115 {'close': '1',
113 'branch': 'magic', 116 'branch': 'magic',
114 'convert_revision': 'svn:af82cc90-c2d2-43cd-b1aa-c8a78449440a/tags/will-edit@9'}) 117 'convert_revision': 'svn:af82cc90-c2d2-43cd-b1aa-c8a78449440a/tags/will-edit@19'})
115 self.assertEqual(willedit, repo.tags()['will-edit']) 118 self.assertEqual(willedit, repo.tags()['will-edit'])
116 self.assertEqual(repo['will-edit'].manifest().keys(), ['beta', 119 self.assertEqual(repo['will-edit'].manifest().keys(), ['alpha',
120 'beta',
117 'gamma', 121 'gamma',
118 ]) 122 ])
119 self.assertEqual( 123 self.assertEqual(
120 repo[alsoedit].extra(), 124 repo[alsoedit].extra(),
121 {'close': '1', 125 {'close': '1',
152 tags, 156 tags,
153 {'magic': '\xa2b\xb9\x03\xc6\xbd\x903\x95\xf5\x0f\x94\xcey\xc4E\xfaE6\xaa', 157 {'magic': '\xa2b\xb9\x03\xc6\xbd\x903\x95\xf5\x0f\x94\xcey\xc4E\xfaE6\xaa',
154 'magic2': '\xa3\xa2D\x86aM\xc0v\xb9\xb0\x18\x14\xad\xacwBUi}\xe2', 158 'magic2': '\xa3\xa2D\x86aM\xc0v\xb9\xb0\x18\x14\xad\xacwBUi}\xe2',
155 }) 159 })
156 160
161 def test_old_tag_map_rebuilds(self):
162 repo = self._load_fixture_and_fetch('tag_name_same_as_branch.svndump')
163 tm = os.path.join(repo.path, 'svn', 'tagmap')
164 open(tm, 'w').write('1\n')
165 commands.pull(repo.ui, repo)
166 self.assertEqual(open(tm).read().splitlines()[0], '2')
167
168
157 def suite(): 169 def suite():
158 return unittest.TestLoader().loadTestsFromTestCase(TestTags) 170 return unittest.TestLoader().loadTestsFromTestCase(TestTags)