Rev 1748: Add tests for pull. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Mon Sep 1 01:21:05 BST 2008


At file:///data/jelmer/bzr-svn/trunk/

------------------------------------------------------------
revno: 1748
revision-id: jelmer at samba.org-20080901002056-7m001pqzvfiyd0t0
parent: jelmer at samba.org-20080831234020-91a8v5qlrb69wg04
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Mon 2008-09-01 02:20:56 +0200
message:
  Add tests for pull.
modified:
  TODO                           todo-20060729211917-2kpobww0zyvvo0j2-1
  tests/test_branch.py           test_branch.py-20060508162215-74ffeb5d608f8e20
  tests/test_workingtree.py      test_workingtree.py-20060622191524-0di7bc3q1ckdbybb-1
  workingtree.py                 workingtree.py-20060306120941-b083cb0fdd4a69de
=== modified file 'TODO'
--- a/TODO	2008-08-31 23:01:33 +0000
+++ b/TODO	2008-09-01 00:20:56 +0000
@@ -12,7 +12,6 @@
 tests:
 - more blackbox tests
  - svn-import without scheme specified should guess
-- add tests for objects returned by WorkingTree.pull(), Branch.pull()
 
 .svn working trees:
 - implement apply_inventory_delta()

=== modified file 'tests/test_branch.py'
--- a/tests/test_branch.py	2008-08-30 23:45:11 +0000
+++ b/tests/test_branch.py	2008-09-01 00:20:56 +0000
@@ -141,6 +141,30 @@
         self.assertEqual("trunk2", branch.get_branch_path(2))
         self.assertEqual("trunk", branch.get_branch_path(1))
 
+    def test_pull_internal(self):
+        repos_url = self.make_repository("a")
+
+        dc = self.get_commit_editor(repos_url)
+        dc.add_dir("trunk")
+        dc.close()
+
+        dc = self.get_commit_editor(repos_url)
+        branches = dc.add_dir("branches")
+        branches.add_dir("branches/foo", "trunk", 1)
+        dc.close()
+
+        otherbranch = Branch.open(urlutils.join(repos_url, "branches", "foo"))
+        branch = Branch.open(urlutils.join(repos_url, "trunk"))
+        result = branch.pull(otherbranch)
+        self.assertEquals(branch.last_revision(), otherbranch.last_revision())
+        self.assertEquals(result.new_revid, otherbranch.last_revision())
+        self.assertEquals(result.old_revid, branch.revision_history()[0])
+        self.assertEquals(result.old_revno, 1)
+        self.assertEquals(result.new_revno, 2)
+        self.assertEquals(result.master_branch, None)
+        self.assertEquals(result.source_branch, otherbranch)
+        self.assertEquals(result.target_branch, branch)
+
     def test_get_branch_path_subdir(self):
         repos_url = self.make_repository("a")
 

=== modified file 'tests/test_workingtree.py'
--- a/tests/test_workingtree.py	2008-08-31 23:20:29 +0000
+++ b/tests/test_workingtree.py	2008-09-01 00:20:56 +0000
@@ -351,13 +351,28 @@
         repos_url = self.make_client('a', 'dc')
 
         dc = self.get_commit_editor(repos_url)
-        dc.add_dir("bar")
-        dc.close()
-
-        tree = WorkingTree.open("dc")
-        br = Branch.open(repos_url)
-        tree.pull(br)
+        dc.add_dir("trunk")
+        dc.close()
+
+        self.client_update("dc")
+
+        dc = self.get_commit_editor(repos_url)
+        branches = dc.add_dir("branches")
+        foo = branches.add_dir("branches/foo", "trunk")
+        dc.close()
+
+        tree = WorkingTree.open("dc/trunk")
+        old_revid = tree.last_revision()
+        br = Branch.open("%s/branches/foo" % repos_url)
+        result = tree.pull(br)
         self.assertEquals(tree.last_revision(), br.last_revision())
+        self.assertEquals(tree.last_revision(), result.new_revid)
+        self.assertEquals(2, result.new_revno)
+        self.assertEquals(old_revid, result.old_revid)
+        self.assertEquals(1, result.old_revno)
+        self.assertEquals(None, result.master_branch)
+        self.assertEquals(tree.branch, result.target_branch)
+        self.assertEquals(br, result.source_branch)
  
     def test_working_inventory(self):
         self.make_client('a', 'dc')

=== modified file 'workingtree.py'
--- a/workingtree.py	2008-08-31 23:20:29 +0000
+++ b/workingtree.py	2008-09-01 00:20:56 +0000
@@ -520,21 +520,12 @@
         # FIXME: Use delta_reporter
         # FIXME: Use source
         # FIXME: Use overwrite
-        result = PullResult()
-        result.source_branch = source
-        result.master_branch = None
-        result.target_branch = self.branch
-        (result.old_revno, result.old_revid) = self.branch.last_revision_info()
-        if stop_revision is None:
-            stop_revision = self.branch.last_revision()
-        revnumber = self.branch.lookup_revision_id(stop_revision)
-        fetched = self._update(revnumber)
+        result = self.branch.pull(source, overwrite=overwrite, stop_revision=stop_revision)
+        fetched = self._update(self.branch.get_revnum())
         self.base_revnum = fetched
         self.base_revid = self.branch.generate_revision_id(fetched)
         self.base_tree = None
         self.read_working_inventory()
-        result.new_revid = self.base_revid
-        result.new_revno = self.branch.revision_id_to_revno(result.new_revid)
         return result
 
     def get_file_sha1(self, file_id, path=None, stat_value=None):




More information about the bazaar-commits mailing list