diff tests/test_fetch_truncated.py @ 88:3b60f223893a

fetch_command: handle nullid parent in stupid non-diffy mode
author Patrick Mezard <pmezard@gmail.com>
date Fri, 14 Nov 2008 16:18:24 -0600
parents
children 4950b18cf949
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/tests/test_fetch_truncated.py
@@ -0,0 +1,40 @@
+import unittest
+
+from mercurial import hg
+from mercurial import ui
+
+import fetch_command
+import test_util
+
+class TestFetchTruncatedHistory(test_util.TestBase):
+    def test_truncated_history(self, stupid=False):
+        # Test repository does not follow the usual layout
+        test_util.load_svndump_fixture(self.repo_path, 'truncatedhistory.svndump')
+        svn_url = test_util.fileurl(self.repo_path + '/project2')
+        fetch_command.fetch_revisions(ui.ui(),
+                                      svn_url=svn_url,
+                                      hg_repo_path=self.wc_path,
+                                      stupid=stupid)
+        repo = hg.repository(ui.ui(), self.wc_path)
+
+        # We are converting /project2/trunk coming from:
+        #
+        # Changed paths:
+        #     D /project1
+        #     A /project2/trunk (from /project1:2)
+        #
+        # Here a full fetch should be performed since we are starting
+        # the conversion on an already filled branch.
+        tip = repo['tip']
+        files = tip.manifest().keys()
+        files.sort()
+        self.assertEqual(files, ['a', 'b'])
+        self.assertEqual(repo['tip']['a'].data(), 'a\n')
+
+    def test_truncated_history_stupid(self):
+        self.test_truncated_history(True)
+
+def suite():
+    all = [unittest.TestLoader().loadTestsFromTestCase(TestFetchTruncatedHistory),
+          ]
+    return unittest.TestSuite(all)