changeset 15:db32dee803a8

Add some basic tests of branching.
author Augie Fackler <durin42@gmail.com>
date Tue, 07 Oct 2008 20:43:44 -0500
parents d78dbf88c13d
children 48a44546c12f
files tests/fixtures/simple_branch.svndump tests/fixtures/two_heads.svndump tests/test_fetch_command.py
diffstat 3 files changed, 398 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/tests/fixtures/simple_branch.svndump
@@ -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
+
+
new file mode 100644
--- /dev/null
+++ b/tests/fixtures/two_heads.svndump
@@ -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
+
+
--- a/tests/test_fetch_command.py
+++ b/tests/test_fetch_command.py
@@ -43,3 +43,37 @@ class TestBasicRepoLayout(unittest.TestC
         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)