Add some basic tests of branching.

This commit is contained in:
Augie Fackler 2008-10-07 20:43:44 -05:00
parent e199e56609
commit 5bcc1b653d
3 changed files with 398 additions and 0 deletions

152
tests/fixtures/simple_branch.svndump vendored Normal file
View File

@ -0,0 +1,152 @@
SVN-fs-dump-format-version: 2
UUID: df2126f7-00ab-4d49-b42c-7e981dde0bcf
Revision-number: 0
Prop-content-length: 56
Content-length: 56
K 8
svn:date
V 27
2008-10-07T22:49:12.059692Z
PROPS-END
Revision-number: 1
Prop-content-length: 111
Content-length: 111
K 7
svn:log
V 11
Empty dirs.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-07T22:49:41.118037Z
PROPS-END
Node-path: branches
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: tags
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: trunk
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Revision-number: 2
Prop-content-length: 108
Content-length: 108
K 7
svn:log
V 9
Add alpha
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-07T23:23:02.991743Z
PROPS-END
Node-path: trunk/alpha
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 12
Text-content-md5: 3c72ebf8bbd7fa88b1fdcee5398b5a17
Content-length: 22
PROPS-END
file: alpha
Revision-number: 3
Prop-content-length: 107
Content-length: 107
K 7
svn:log
V 8
Add beta
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-07T23:28:22.651398Z
PROPS-END
Node-path: trunk/beta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 13
Text-content-md5: 981d1eb5fd0bbe05354c292105944863
Content-length: 23
PROPS-END
Data of beta
Revision-number: 4
Prop-content-length: 113
Content-length: 113
K 7
svn:log
V 13
Make a branch
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-08T01:35:39.984789Z
PROPS-END
Node-path: branches/the_branch
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 3
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END

212
tests/fixtures/two_heads.svndump vendored Normal file
View File

@ -0,0 +1,212 @@
SVN-fs-dump-format-version: 2
UUID: df2126f7-00ab-4d49-b42c-7e981dde0bcf
Revision-number: 0
Prop-content-length: 56
Content-length: 56
K 8
svn:date
V 27
2008-10-07T22:49:12.059692Z
PROPS-END
Revision-number: 1
Prop-content-length: 111
Content-length: 111
K 7
svn:log
V 11
Empty dirs.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-07T22:49:41.118037Z
PROPS-END
Node-path: branches
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: tags
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: trunk
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Revision-number: 2
Prop-content-length: 108
Content-length: 108
K 7
svn:log
V 9
Add alpha
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-07T23:23:02.991743Z
PROPS-END
Node-path: trunk/alpha
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 12
Text-content-md5: 3c72ebf8bbd7fa88b1fdcee5398b5a17
Content-length: 22
PROPS-END
file: alpha
Revision-number: 3
Prop-content-length: 107
Content-length: 107
K 7
svn:log
V 8
Add beta
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-07T23:28:22.651398Z
PROPS-END
Node-path: trunk/beta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 13
Text-content-md5: 981d1eb5fd0bbe05354c292105944863
Content-length: 23
PROPS-END
Data of beta
Revision-number: 4
Prop-content-length: 113
Content-length: 113
K 7
svn:log
V 13
Make a branch
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-08T01:35:39.984789Z
PROPS-END
Node-path: branches/the_branch
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 3
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END
Revision-number: 5
Prop-content-length: 123
Content-length: 123
K 7
svn:log
V 23
add delta on the branch
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-08T01:39:05.520779Z
PROPS-END
Node-path: branches/the_branch/delta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 6
Text-content-md5: d2840cc81bc032bd1141b56687d0f93c
Content-length: 16
PROPS-END
delta
Revision-number: 6
Prop-content-length: 119
Content-length: 119
K 7
svn:log
V 19
Add gamma on trunk.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-08T01:39:29.950892Z
PROPS-END
Node-path: trunk/gamma
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 6
Text-content-md5: 303febb9068384eca46b5b6516843b35
Content-length: 16
PROPS-END
gamma

View File

@ -43,3 +43,37 @@ class TestBasicRepoLayout(unittest.TestCase):
self.assertEqual(node.hex(repo['tip'].node()),
'bf3767835b3b32ecc775a298c2fa27134dd91c11')
self.assertEqual(repo['tip'], repo[1])
def test_branches(self):
util.load_svndump_fixture(self.repo_path, 'simple_branch.svndump')
fetch_command.fetch_revisions(ui.ui(),
svn_url='file://%s' % self.repo_path,
hg_repo_path=self.wc_path)
repo = hg.repository(ui.ui(), self.wc_path)
# TODO there must be a better way than repo[0] for this check
self.assertEqual(node.hex(repo[0].node()),
'a47d0ce778660a91c31bf2c21c448e9ee296ac90')
self.assertEqual(node.hex(repo['tip'].node()),
'9dfb0a19494f45c36e22f3c6d1b21d80638a7f6e')
self.assertEqual(len(repo['tip'].parents()), 1)
self.assertEqual(repo['tip'].parents()[0], repo['default'])
self.assertEqual(len(repo.heads()), 1)
def test_two_branches_with_heads(self):
util.load_svndump_fixture(self.repo_path, 'two_heads.svndump')
fetch_command.fetch_revisions(ui.ui(),
svn_url='file://%s' % self.repo_path,
hg_repo_path=self.wc_path)
repo = hg.repository(ui.ui(), self.wc_path)
# TODO there must be a better way than repo[0] for this check
self.assertEqual(node.hex(repo[0].node()),
'a47d0ce778660a91c31bf2c21c448e9ee296ac90')
self.assertEqual(node.hex(repo['tip'].node()),
'a595c77cfcaa3d1ba9e04b2c55c68bc6bf2b0fbf')
self.assertEqual(node.hex(repo['the_branch'].node()),
'8ccaba5f0eae124487e413abd904a013f7f6fdeb')
self.assertEqual(node.hex(repo['the_branch'].parents()[0].node()),
'9dfb0a19494f45c36e22f3c6d1b21d80638a7f6e')
self.assertEqual(len(repo['tip'].parents()), 1)
self.assertEqual(repo['tip'], repo['default'])
self.assertEqual(len(repo.heads()), 2)