Rev 1792: Move v3 specific tests to test_mapping3. in file:///data/jelmer/bzr-svn/trunk/

Jelmer Vernooij jelmer at samba.org
Thu Sep 4 06:49:54 BST 2008


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

------------------------------------------------------------
revno: 1792
revision-id: jelmer at samba.org-20080904054951-x4zadoxztxin1wtf
parent: jelmer at samba.org-20080903075007-fhj15mqfiiaiqf3x
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: trunk
timestamp: Thu 2008-09-04 07:49:51 +0200
message:
  Move v3 specific tests to test_mapping3.
modified:
  mapping.py                     mapping.py-20080128201303-6cp01phc0dmc0kiv-1
  revmeta.py                     revmeta.py-20080901215045-n8a6arqybs9ez5hl-1
  tests/mapping3/__init__.py     __init__.py-20080831152358-oy04n53cpnh64aj6-1
  tests/mapping_implementations/__init__.py __init__.py-20080902013845-ity7d1ymye69sobm-1
  tests/mapping_implementations/test_repository.py test_repository.py-20080902013845-ity7d1ymye69sobm-2
  tests/test_mapping.py          test_mapping.py-20080201131338-0zd86eznn4bojtee-1
=== modified file 'mapping.py'
--- a/mapping.py	2008-09-03 01:17:42 +0000
+++ b/mapping.py	2008-09-04 05:49:51 +0000
@@ -490,7 +490,7 @@
         return {}
 
     def get_rhs_parents(self, branch_path, revprops, fileprops):
-        value = fileprops.get("bzr:merge", "")
+        value = fileprops.get(SVN_PROP_BZR_MERGE, "")
         if value == "":
             return ()
         return (value.splitlines()[-1])
@@ -500,6 +500,8 @@
 class BzrSvnMappingv2(BzrSvnMappingv1):
     """The second version of the mappings as used in the 0.3.x series.
 
+    It does not support pushing revisions to Subversion as-is, but only 
+    as part of a merge.
     """
     name = "v2"
 

=== modified file 'revmeta.py'
--- a/revmeta.py	2008-09-02 23:59:15 +0000
+++ b/revmeta.py	2008-09-04 05:49:51 +0000
@@ -433,6 +433,10 @@
             mapping_check_path = lambda x: mapping.is_branch(x) or mapping.is_tag(x)
         # Layout decides which ones to pick up
         # Mapping decides which ones to keep
+        def get_metabranch(bp):
+            if not bp in metabranches:
+                metabranches[bp] = RevisionMetadataBranch(mapping)
+            return metabranches[bp]
         unusual = set()
         for (paths, revnum, revprops) in self._log.iter_changes(None, from_revnum, to_revnum, pb=pb):
             bps = {}
@@ -451,9 +455,7 @@
                             bps[u] = metabranches[u]
                 else:
                     if action != 'D' or ip != "":
-                        if not bp in metabranches:
-                            metabranches[bp] = RevisionMetadataBranch(mapping)
-                        bps[bp] = metabranches[bp]
+                        bps[bp] = get_metabranch(bp)
             
             # Apply renames and the like for the next round
             for new_name, old_name in changes.apply_reverse_changes(metabranches.keys(), paths):
@@ -474,3 +476,8 @@
                 revmeta = self.get_revision(bp, revnum, paths, revprops, metabranch=bps[bp])
                 bps[bp].append(revmeta)
                 yield revmeta
+    
+        # Make sure commit 0 is processed
+        if to_revnum == 0 and layout.is_branch_or_tag(""):
+            bps[""] = get_metabranch("")
+            yield self.get_revision("", 0, {"": ('A', None, -1)}, {}, metabranch=bps[""])

=== modified file 'tests/mapping3/__init__.py'
--- a/tests/mapping3/__init__.py	2008-08-31 19:59:08 +0000
+++ b/tests/mapping3/__init__.py	2008-09-04 05:49:51 +0000
@@ -17,9 +17,10 @@
 
 from bzrlib.plugins.svn.mapping3 import BzrSvnMappingv3FileProps
 from bzrlib.plugins.svn.mapping3.scheme import NoBranchingScheme
-from bzrlib.plugins.svn.tests.test_mapping import MappingTestAdapter, sha1
+from bzrlib.plugins.svn.tests import SubversionTestCase
+from bzrlib.plugins.svn.tests.test_mapping import sha1
 
-class Mappingv3FilePropTests(MappingTestAdapter, TestCase):
+class Mappingv3FilePropTests(TestCase):
     def setUp(self):
         self.mapping = BzrSvnMappingv3FileProps(NoBranchingScheme())
 
@@ -84,3 +85,204 @@
     def test_generate_svn_file_id_nordic_branch(self):
         self.assertEqual("2 at uuid:%C3%A6:%C3%A6%C3%B8%C3%A5", 
                 self.mapping.generate_file_id("uuid", 2, u"\xe6".encode('utf-8'), u"\xe6\xf8\xe5"))
+
+
+class RepositoryTests(SubversionTestCase):
+
+    def setUp(self):
+        super(RepositoryTests, self).setUp()
+        self._old_mapping = mapping_registry._get_default_key()
+        mapping_registry.set_default("v3")
+
+    def tearDown(self):
+        super(RepositoryTests, self).tearDown()
+        mapping_registry.set_default("v3")
+
+    def test_generate_revision_id_forced_revid(self):
+        repos_url = self.make_repository("a")
+
+        dc = self.get_commit_editor(repos_url)
+        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", 
+                             "2 someid\n")
+        dc.close()
+
+        repos = Repository.open(repos_url)
+        mapping = repos.get_mapping()
+        if not mapping.supports_roundtripping():
+            raise TestNotApplicable()
+        revid = repos.generate_revision_id(1, "", mapping)
+        self.assertEquals("someid", revid)
+
+    def test_generate_revision_id_forced_revid_invalid(self):
+        repos_url = self.make_repository("a")
+
+        dc = self.get_commit_editor(repos_url)
+        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", "corrupt-id\n")
+        dc.close()
+
+        repos = Repository.open(repos_url)
+        mapping = repos.get_mapping()
+        if not mapping.supports_roundtripping():
+            raise TestNotApplicable()
+        revid = repos.generate_revision_id(1, "", mapping)
+        self.assertEquals(
+                mapping.revision_id_foreign_to_bzr((repos.uuid, 1, "")),
+                revid)
+
+    def test_revision_ghost_parents(self):
+        repos_url = self.make_repository('d')
+
+        dc = self.get_commit_editor(repos_url)
+        dc.add_file("foo").modify("data")
+        dc.close()
+
+        dc = self.get_commit_editor(repos_url)
+        dc.open_file("foo").modify("data2")
+        dc.change_prop("bzr:ancestry:v3-none", "ghostparent\n")
+        dc.close()
+
+        repository = Repository.open(repos_url)
+        mapping = repository.get_mapping()
+        self.assertEqual((),
+                repository.get_revision(
+                    repository.generate_revision_id(0, "", mapping)).parent_ids)
+        self.assertEqual((repository.generate_revision_id(0, "", mapping),),
+                repository.get_revision(
+                    repository.generate_revision_id(1, "", mapping)).parent_ids)
+        self.assertEqual((repository.generate_revision_id(1, "", mapping),
+            "ghostparent"), 
+                repository.get_revision(
+                    repository.generate_revision_id(2, "", mapping)).parent_ids)
+ 
+    def test_get_revision_id_overriden(self):
+        repos_url = self.make_client('d', 'dc')
+        repository = Repository.open(repos_url)
+        self.assertRaises(NoSuchRevision, repository.get_revision, "nonexisting")
+        self.build_tree({'dc/foo': "data"})
+        self.client_add("dc/foo")
+        self.client_commit("dc", "My Message")
+        self.build_tree({'dc/foo': "data2"})
+        self.client_set_prop("dc", "bzr:revision-id:v3-none", 
+                            "3 myrevid\n")
+        self.client_update("dc")
+        (num, date, author) = self.client_commit("dc", "Second Message")
+        repository = Repository.open(repos_url)
+        mapping = repository.get_mapping()
+        if not mapping.supports_roundtripping():
+            raise TestNotApplicable
+        revid = mapping.revision_id_foreign_to_bzr((repository.uuid, 2, ""))
+        rev = repository.get_revision("myrevid")
+        self.assertEqual((repository.generate_revision_id(1, "", mapping),),
+                rev.parent_ids)
+        self.assertEqual(rev.revision_id, 
+                         repository.generate_revision_id(2, "", mapping))
+        self.assertEqual(author, rev.committer)
+        self.assertIsInstance(rev.properties, dict)
+
+    def test_get_ancestry_merged(self):
+        repos_url = self.make_client('d', 'dc')
+        self.build_tree({'dc/foo': "data"})
+        self.client_add("dc/foo")
+        self.client_commit("dc", "My Message")
+        self.client_update("dc")
+        self.client_set_prop("dc", "bzr:ancestry:v3-none", "a-parent\n")
+        self.build_tree({'dc/foo': "data2"})
+        self.client_commit("dc", "Second Message")
+        repository = Repository.open(repos_url)
+        mapping = repository.get_mapping()
+        self.assertEqual([None, repository.generate_revision_id(0, "", mapping)],
+                repository.get_ancestry(
+                    repository.generate_revision_id(0, "", mapping)))
+        self.assertEqual([None, repository.generate_revision_id(0, "", mapping),
+            repository.generate_revision_id(1, "", mapping)],
+                repository.get_ancestry(
+                    repository.generate_revision_id(1, "", mapping)))
+        self.assertEqual([None, 
+            repository.generate_revision_id(0, "", mapping), "a-parent", 
+            repository.generate_revision_id(1, "", mapping), 
+                  repository.generate_revision_id(2, "", mapping)], 
+                repository.get_ancestry(
+                    repository.generate_revision_id(2, "", mapping)))
+
+    def test_lookup_revision_id_overridden(self):
+        repos_url = self.make_repository('d')
+
+        dc = self.get_commit_editor(repos_url)
+        dc.add_dir("bloe")
+        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", "2 myid\n")
+        dc.close()
+        repository = Repository.open(repos_url)
+        mapping = repository.get_mapping()
+        self.assertEqual(("", 1), repository.lookup_revision_id( 
+            mapping.revision_id_foreign_to_bzr((repository.uuid, 1, "")))[:2])
+        self.assertEqual(("", 1), 
+                repository.lookup_revision_id("myid")[:2])
+
+    def test_lookup_revision_id_overridden_invalid(self):
+        repos_url = self.make_repository('d')
+
+        dc = self.get_commit_editor(repos_url)
+        dc.add_dir("bloe")
+        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", "corrupt-entry\n")
+        dc.close()
+
+        repository = Repository.open(repos_url)
+        mapping = repository.get_mapping()
+        self.assertEqual(("", 1), repository.lookup_revision_id( 
+            mapping.revision_id_foreign_to_bzr((repository.uuid, 1, "")))[:2])
+        self.assertRaises(NoSuchRevision, repository.lookup_revision_id, 
+            "corrupt-entry")
+
+    def test_lookup_revision_id_overridden_invalid_dup(self):
+        repos_url = self.make_client('d', 'dc')
+        self.build_tree({'dc/bloe': None})
+        self.client_add("dc/bloe")
+        self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID+"v3-none", 
+                             "corrupt-entry\n")
+        self.client_commit("dc", "foobar")
+        self.build_tree({'dc/bla': None})
+        self.client_add("dc/bla")
+        self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID+"v3-none", 
+                "corrupt-entry\n2 corrupt-entry\n")
+        self.client_commit("dc", "foobar")
+        repository = Repository.open(repos_url)
+        mapping = repository.get_mapping()
+        self.assertEqual(("", 2), repository.lookup_revision_id( 
+            mapping.revision_id_foreign_to_bzr((repository.uuid, 2, "")))[:2])
+        self.assertEqual(("", 1), repository.lookup_revision_id( 
+            mapping.revision_id_foreign_to_bzr((repository.uuid, 1, "")))[:2])
+        self.assertEqual(("", 2), repository.lookup_revision_id( 
+            "corrupt-entry")[:2])
+
+    def test_lookup_revision_id_overridden_not_found(self):
+        """Make sure a revision id that is looked up but doesn't exist 
+        doesn't accidently end up in the revid cache."""
+        repos_url = self.make_client('d', 'dc')
+        self.build_tree({'dc/bloe': None})
+        self.client_add("dc/bloe")
+        self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID+"v3-none", "2 myid\n")
+        self.client_commit("dc", "foobar")
+        repository = Repository.open(repos_url)
+        self.assertRaises(NoSuchRevision, 
+                repository.lookup_revision_id, "foobar")
+
+    def test_set_branching_scheme_property(self):
+        repos_url = self.make_client('d', 'dc')
+        self.client_set_prop("dc", SVN_PROP_BZR_BRANCHING_SCHEME, 
+            "trunk\nbranches/*\nbranches/tmp/*")
+        self.client_commit("dc", "set scheme")
+        repository = Repository.open(repos_url)
+        self.assertEquals(ListBranchingScheme(["trunk", "branches/*", "branches/tmp/*"]).branch_list,
+                          repository.get_mapping().scheme.branch_list)
+
+    def test_set_property_scheme(self):
+        repos_url = self.make_client('d', 'dc')
+        repos = Repository.open(repos_url)
+        set_property_scheme(repos, ListBranchingScheme(["bla/*"]))
+        self.client_update("dc")
+        self.assertEquals("bla/*\n", 
+                   self.client_get_prop("dc", SVN_PROP_BZR_BRANCHING_SCHEME))
+        self.assertEquals("Updating branching scheme for Bazaar.", 
+                self.client_log(repos_url, 1, 1)[1][3])
+
+

=== modified file 'tests/mapping_implementations/__init__.py'
--- a/tests/mapping_implementations/__init__.py	2008-09-02 01:39:01 +0000
+++ b/tests/mapping_implementations/__init__.py	2008-09-04 05:49:51 +0000
@@ -13,10 +13,106 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-from bzrlib.tests import multiply_tests_from_modules
+from bzrlib.tests import (multiply_tests_from_modules, TestCase, 
+                          TestNotApplicable)
 
 from bzrlib.plugins.svn.mapping import mapping_registry
 
+class RoundtripMappingTests(TestCase):
+
+    def setUp(self):
+        super(RoundtripMappingTests, self).setUp()
+        self._old_mapping = mapping_registry._get_default_key()
+        mapping_registry.set_default(self.mapping_name)
+
+    def tearDown(self):
+        super(RoundtripMappingTests, self).tearDown()
+        mapping_registry.set_default(self._old_mapping)
+
+    def test_roundtrip_revision(self):
+        revid = self.mapping.revision_id_foreign_to_bzr(("myuuid", 42, "path"))
+        (uuid, path, revnum, mapping) = self.mapping.revision_id_bzr_to_foreign(revid)
+        self.assertEquals(uuid, "myuuid")
+        self.assertEquals(revnum, 42)
+        self.assertEquals(path, "path")
+        self.assertEquals(mapping, self.mapping)
+
+    def test_fileid_map(self):
+        if not self.mapping.supports_roundtripping():
+            raise TestNotApplicable
+        fileids = {"": "some-id", "bla/blie": "other-id"}
+        revprops = {}
+        fileprops = {}
+        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", {}, "arevid", 4, ["merge1"], revprops, fileprops)
+        self.mapping.export_fileid_map(fileids, revprops, fileprops)
+        revprops["svn:date"] = "2008-11-03T09:33:00.716938Z"
+        self.assertEquals(fileids, 
+                self.mapping.import_fileid_map(revprops, fileprops))
+
+    def test_text_parents(self):
+        if not self.mapping.supports_roundtripping():
+            raise TestNotApplicable
+        revprops = {}
+        fileprops = {}
+        text_parents = {"bla": "bloe", "ll": "12"}
+        self.mapping.export_text_parents(text_parents, revprops, fileprops)
+        self.assertEquals(text_parents,
+            self.mapping.import_text_parents(revprops, fileprops))
+
+    def test_message(self):
+        if not self.mapping.supports_roundtripping():
+            raise TestNotApplicable
+        revprops = {}
+        fileprops = {}
+        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", 
+                                     {"arevprop": "val"}, "arevid", 4, ["merge1"], revprops, fileprops)
+        revprops["svn:date"] = "2008-11-03T09:33:00.716938Z"
+        try:
+            self.mapping.export_message("My Commit message", revprops, fileprops)
+        except NotImplementedError:
+            raise TestNotApplicable
+        targetrev = Revision(None)
+        self.mapping.import_revision(revprops, fileprops, "someuuid", "somebp", 4, targetrev)
+        self.assertEquals("My Commit message", targetrev.message)
+
+    def test_revision(self):
+        if not self.mapping.supports_roundtripping():
+            raise TestNotApplicable
+        revprops = {}
+        fileprops = {}
+        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", 
+                                     {"arevprop": "val" }, "arevid", 4, ["parent", "merge1"], revprops, fileprops)
+        targetrev = Revision(None)
+        revprops["svn:date"] = "2008-11-03T09:33:00.716938Z"
+        self.mapping.import_revision(revprops, fileprops, "someuuid", "somebp", 4, targetrev)
+        self.assertEquals(targetrev.committer, "somebody")
+        self.assertEquals(targetrev.properties, {"arevprop": "val"})
+        self.assertEquals(targetrev.timestamp, 432432432.0)
+        self.assertEquals(targetrev.timezone, 0)
+
+    def test_revision_id(self):
+        if not self.mapping.supports_roundtripping():
+            raise TestNotApplicable
+        revprops = {}
+        fileprops = {}
+        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", {}, "arevid", 4, ["parent", "merge1"], revprops, fileprops)
+        self.assertEquals((4, "arevid"), self.mapping.get_revision_id("branchp", revprops, fileprops))
+    
+    def test_revision_id_none(self):
+        if not self.mapping.supports_roundtripping():
+            raise TestNotApplicable
+        self.assertEquals((None, None), self.mapping.get_revision_id("bp", {}, dict()))
+
+    def test_parse_revision_id_unknown(self):
+        self.assertRaises(InvalidRevisionId, 
+                lambda: self.mapping.revision_id_bzr_to_foreign("bla"))
+
+    def test_parse_revision_id(self):
+        self.assertEquals(("myuuid", "bla", 5, self.mapping), 
+            self.mapping.revision_id_bzr_to_foreign(
+                self.mapping.revision_id_foreign_to_bzr(("myuuid", 5, "bla"))))
+
+
 def load_tests(basic_tests, module, loader):
     result = loader.suiteClass()
     prefix = "bzrlib.plugins.svn.tests.mapping_implementations"

=== modified file 'tests/mapping_implementations/test_repository.py'
--- a/tests/mapping_implementations/test_repository.py	2008-09-03 01:07:13 +0000
+++ b/tests/mapping_implementations/test_repository.py	2008-09-04 05:49:51 +0000
@@ -92,37 +92,6 @@
             raise TestNotApplicable()
         self.assertEqual({u"": (mapping.generate_file_id(repos.uuid, 0, "", u""), mapping.revision_id_foreign_to_bzr((repos.uuid, 0, "")))}, repos.get_fileid_map(0, "", mapping))
 
-    def test_generate_revision_id_forced_revid(self):
-        repos_url = self.make_repository("a")
-
-        dc = self.get_commit_editor(repos_url)
-        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", 
-                             "2 someid\n")
-        dc.close()
-
-        repos = Repository.open(repos_url)
-        mapping = repos.get_mapping()
-        if not mapping.supports_roundtripping():
-            raise TestNotApplicable()
-        revid = repos.generate_revision_id(1, "", mapping)
-        self.assertEquals("someid", revid)
-
-    def test_generate_revision_id_forced_revid_invalid(self):
-        repos_url = self.make_repository("a")
-
-        dc = self.get_commit_editor(repos_url)
-        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", "corrupt-id\n")
-        dc.close()
-
-        repos = Repository.open(repos_url)
-        mapping = repos.get_mapping()
-        if not mapping.supports_roundtripping():
-            raise TestNotApplicable()
-        revid = repos.generate_revision_id(1, "", mapping)
-        self.assertEquals(
-                mapping.revision_id_foreign_to_bzr((repos.uuid, 1, "")),
-                revid)
-
     def test_add_revision(self):
         repos_url = self.make_repository("a")
         repos = Repository.open(repos_url)
@@ -651,31 +620,6 @@
         self.assertEquals("foo", d2.modified[0][0])
         self.assertEquals(0, len(d2.removed))
 
-    def test_revision_ghost_parents(self):
-        repos_url = self.make_repository('d')
-
-        dc = self.get_commit_editor(repos_url)
-        dc.add_file("foo").modify("data")
-        dc.close()
-
-        dc = self.get_commit_editor(repos_url)
-        dc.open_file("foo").modify("data2")
-        dc.change_prop("bzr:ancestry:v3-none", "ghostparent\n")
-        dc.close()
-
-        repository = Repository.open(repos_url)
-        mapping = repository.get_mapping()
-        self.assertEqual((),
-                repository.get_revision(
-                    repository.generate_revision_id(0, "", mapping)).parent_ids)
-        self.assertEqual((repository.generate_revision_id(0, "", mapping),),
-                repository.get_revision(
-                    repository.generate_revision_id(1, "", mapping)).parent_ids)
-        self.assertEqual((repository.generate_revision_id(1, "", mapping),
-            "ghostparent"), 
-                repository.get_revision(
-                    repository.generate_revision_id(2, "", mapping)).parent_ids)
- 
     def test_revision_svk_parent(self):
         repos_url = self.make_client('d', 'dc')
         self.build_tree({'dc/trunk/foo': "data", 'dc/branches/foo': None})
@@ -717,31 +661,6 @@
         self.assertEqual(author, rev.committer)
         self.assertIsInstance(rev.properties, dict)
 
-    def test_get_revision_id_overriden(self):
-        repos_url = self.make_client('d', 'dc')
-        repository = Repository.open(repos_url)
-        self.assertRaises(NoSuchRevision, repository.get_revision, "nonexisting")
-        self.build_tree({'dc/foo': "data"})
-        self.client_add("dc/foo")
-        self.client_commit("dc", "My Message")
-        self.build_tree({'dc/foo': "data2"})
-        self.client_set_prop("dc", "bzr:revision-id:v3-none", 
-                            "3 myrevid\n")
-        self.client_update("dc")
-        (num, date, author) = self.client_commit("dc", "Second Message")
-        repository = Repository.open(repos_url)
-        mapping = repository.get_mapping()
-        if not mapping.supports_roundtripping():
-            raise TestNotApplicable
-        revid = mapping.revision_id_foreign_to_bzr((repository.uuid, 2, ""))
-        rev = repository.get_revision("myrevid")
-        self.assertEqual((repository.generate_revision_id(1, "", mapping),),
-                rev.parent_ids)
-        self.assertEqual(rev.revision_id, 
-                         repository.generate_revision_id(2, "", mapping))
-        self.assertEqual(author, rev.committer)
-        self.assertIsInstance(rev.properties, dict)
-
     def test_get_revision_zero(self):
         repos_url = self.make_client('d', 'dc')
         repository = Repository.open(repos_url)
@@ -823,31 +742,6 @@
                 repository.get_ancestry(
                     repository.generate_revision_id(2, "", mapping)))
 
-    def test_get_ancestry_merged(self):
-        repos_url = self.make_client('d', 'dc')
-        self.build_tree({'dc/foo': "data"})
-        self.client_add("dc/foo")
-        self.client_commit("dc", "My Message")
-        self.client_update("dc")
-        self.client_set_prop("dc", "bzr:ancestry:v3-none", "a-parent\n")
-        self.build_tree({'dc/foo': "data2"})
-        self.client_commit("dc", "Second Message")
-        repository = Repository.open(repos_url)
-        mapping = repository.get_mapping()
-        self.assertEqual([None, repository.generate_revision_id(0, "", mapping)],
-                repository.get_ancestry(
-                    repository.generate_revision_id(0, "", mapping)))
-        self.assertEqual([None, repository.generate_revision_id(0, "", mapping),
-            repository.generate_revision_id(1, "", mapping)],
-                repository.get_ancestry(
-                    repository.generate_revision_id(1, "", mapping)))
-        self.assertEqual([None, 
-            repository.generate_revision_id(0, "", mapping), "a-parent", 
-            repository.generate_revision_id(1, "", mapping), 
-                  repository.generate_revision_id(2, "", mapping)], 
-                repository.get_ancestry(
-                    repository.generate_revision_id(2, "", mapping)))
-
     def test_get_inventory(self):
         repos_url = self.make_client('d', 'dc')
         repository = Repository.open(repos_url)
@@ -913,87 +807,6 @@
             repository.lookup_revision_id(
                 repository.generate_revision_id(1, "bloe", mapping))[:2])
 
-    def test_lookup_revision_id_overridden(self):
-        repos_url = self.make_repository('d')
-
-        dc = self.get_commit_editor(repos_url)
-        dc.add_dir("bloe")
-        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", "2 myid\n")
-        dc.close()
-        repository = Repository.open(repos_url)
-        mapping = repository.get_mapping()
-        self.assertEqual(("", 1), repository.lookup_revision_id( 
-            mapping.revision_id_foreign_to_bzr((repository.uuid, 1, "")))[:2])
-        self.assertEqual(("", 1), 
-                repository.lookup_revision_id("myid")[:2])
-
-    def test_lookup_revision_id_overridden_invalid(self):
-        repos_url = self.make_repository('d')
-
-        dc = self.get_commit_editor(repos_url)
-        dc.add_dir("bloe")
-        dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", "corrupt-entry\n")
-        dc.close()
-
-        repository = Repository.open(repos_url)
-        mapping = repository.get_mapping()
-        self.assertEqual(("", 1), repository.lookup_revision_id( 
-            mapping.revision_id_foreign_to_bzr((repository.uuid, 1, "")))[:2])
-        self.assertRaises(NoSuchRevision, repository.lookup_revision_id, 
-            "corrupt-entry")
-
-    def test_lookup_revision_id_overridden_invalid_dup(self):
-        repos_url = self.make_client('d', 'dc')
-        self.build_tree({'dc/bloe': None})
-        self.client_add("dc/bloe")
-        self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID+"v3-none", 
-                             "corrupt-entry\n")
-        self.client_commit("dc", "foobar")
-        self.build_tree({'dc/bla': None})
-        self.client_add("dc/bla")
-        self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID+"v3-none", 
-                "corrupt-entry\n2 corrupt-entry\n")
-        self.client_commit("dc", "foobar")
-        repository = Repository.open(repos_url)
-        mapping = repository.get_mapping()
-        self.assertEqual(("", 2), repository.lookup_revision_id( 
-            mapping.revision_id_foreign_to_bzr((repository.uuid, 2, "")))[:2])
-        self.assertEqual(("", 1), repository.lookup_revision_id( 
-            mapping.revision_id_foreign_to_bzr((repository.uuid, 1, "")))[:2])
-        self.assertEqual(("", 2), repository.lookup_revision_id( 
-            "corrupt-entry")[:2])
-
-    def test_lookup_revision_id_overridden_not_found(self):
-        """Make sure a revision id that is looked up but doesn't exist 
-        doesn't accidently end up in the revid cache."""
-        repos_url = self.make_client('d', 'dc')
-        self.build_tree({'dc/bloe': None})
-        self.client_add("dc/bloe")
-        self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID+"v3-none", "2 myid\n")
-        self.client_commit("dc", "foobar")
-        repository = Repository.open(repos_url)
-        self.assertRaises(NoSuchRevision, 
-                repository.lookup_revision_id, "foobar")
-
-    def test_set_branching_scheme_property(self):
-        repos_url = self.make_client('d', 'dc')
-        self.client_set_prop("dc", SVN_PROP_BZR_BRANCHING_SCHEME, 
-            "trunk\nbranches/*\nbranches/tmp/*")
-        self.client_commit("dc", "set scheme")
-        repository = Repository.open(repos_url)
-        self.assertEquals(ListBranchingScheme(["trunk", "branches/*", "branches/tmp/*"]).branch_list,
-                          repository.get_mapping().scheme.branch_list)
-
-    def test_set_property_scheme(self):
-        repos_url = self.make_client('d', 'dc')
-        repos = Repository.open(repos_url)
-        set_property_scheme(repos, ListBranchingScheme(["bla/*"]))
-        self.client_update("dc")
-        self.assertEquals("bla/*\n", 
-                   self.client_get_prop("dc", SVN_PROP_BZR_BRANCHING_SCHEME))
-        self.assertEquals("Updating branching scheme for Bazaar.", 
-                self.client_log(repos_url, 1, 1)[1][3])
-
     def test_lookup_revision_id_invalid_uuid(self):
         repos_url = self.make_client('d', 'dc')
         repository = Repository.open(repos_url)

=== modified file 'tests/test_mapping.py'
--- a/tests/test_mapping.py	2008-09-03 01:04:06 +0000
+++ b/tests/test_mapping.py	2008-09-04 05:49:51 +0000
@@ -139,124 +139,30 @@
         self.assertEqual(("bla", "bloe"), parse_merge_property("bla\tbloe"))
 
 
-class MappingTestAdapter(object):
-    def test_roundtrip_revision(self):
-        revid = self.mapping.revision_id_foreign_to_bzr(("myuuid", 42, "path"))
-        (uuid, path, revnum, mapping) = self.mapping.revision_id_bzr_to_foreign(revid)
-        self.assertEquals(uuid, "myuuid")
-        self.assertEquals(revnum, 42)
-        self.assertEquals(path, "path")
-        self.assertEquals(mapping, self.mapping)
-
-    def test_fileid_map(self):
-        if not self.mapping.supports_roundtripping():
-            raise TestNotApplicable
-        fileids = {"": "some-id", "bla/blie": "other-id"}
-        revprops = {}
-        fileprops = {}
-        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", {}, "arevid", 4, ["merge1"], revprops, fileprops)
-        self.mapping.export_fileid_map(fileids, revprops, fileprops)
-        revprops["svn:date"] = "2008-11-03T09:33:00.716938Z"
-        self.assertEquals(fileids, 
-                self.mapping.import_fileid_map(revprops, fileprops))
-
-    def test_text_parents(self):
-        if not self.mapping.supports_roundtripping():
-            raise TestNotApplicable
-        revprops = {}
-        fileprops = {}
-        text_parents = {"bla": "bloe", "ll": "12"}
-        self.mapping.export_text_parents(text_parents, revprops, fileprops)
-        self.assertEquals(text_parents,
-            self.mapping.import_text_parents(revprops, fileprops))
-
-    def test_message(self):
-        if not self.mapping.supports_roundtripping():
-            raise TestNotApplicable
-        revprops = {}
-        fileprops = {}
-        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", 
-                                     {"arevprop": "val"}, "arevid", 4, ["merge1"], revprops, fileprops)
-        revprops["svn:date"] = "2008-11-03T09:33:00.716938Z"
-        try:
-            self.mapping.export_message("My Commit message", revprops, fileprops)
-        except NotImplementedError:
-            raise TestNotApplicable
-        targetrev = Revision(None)
-        self.mapping.import_revision(revprops, fileprops, "someuuid", "somebp", 4, targetrev)
-        self.assertEquals("My Commit message", targetrev.message)
-
-    def test_revision(self):
-        if not self.mapping.supports_roundtripping():
-            raise TestNotApplicable
-        revprops = {}
-        fileprops = {}
-        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", 
-                                     {"arevprop": "val" }, "arevid", 4, ["parent", "merge1"], revprops, fileprops)
-        targetrev = Revision(None)
-        revprops["svn:date"] = "2008-11-03T09:33:00.716938Z"
-        self.mapping.import_revision(revprops, fileprops, "someuuid", "somebp", 4, targetrev)
-        self.assertEquals(targetrev.committer, "somebody")
-        self.assertEquals(targetrev.properties, {"arevprop": "val"})
-        self.assertEquals(targetrev.timestamp, 432432432.0)
-        self.assertEquals(targetrev.timezone, 0)
-
-    def test_revision_id(self):
-        if not self.mapping.supports_roundtripping():
-            raise TestNotApplicable
-        revprops = {}
-        fileprops = {}
-        self.mapping.export_revision("branchp", 432432432.0, 0, "somebody", {}, "arevid", 4, ["parent", "merge1"], revprops, fileprops)
-        self.assertEquals((4, "arevid"), self.mapping.get_revision_id("branchp", revprops, fileprops))
-    
-    def test_revision_id_none(self):
-        if not self.mapping.supports_roundtripping():
-            raise TestNotApplicable
-        self.assertEquals((None, None), self.mapping.get_revision_id("bp", {}, dict()))
-
-    def test_parse_revision_id_unknown(self):
-        self.assertRaises(InvalidRevisionId, 
-                lambda: self.mapping.revision_id_bzr_to_foreign("bla"))
-
-    def test_parse_revision_id(self):
-        self.assertEquals(("myuuid", "bla", 5, self.mapping), 
-            self.mapping.revision_id_bzr_to_foreign(
-                self.mapping.revision_id_foreign_to_bzr(("myuuid", 5, "bla"))))
-
-
-class Mappingv1Tests(MappingTestAdapter, TestCase):
-    def setUp(self):
-        self.mapping = BzrSvnMappingv1()
-
-
-class Mappingv2Tests(MappingTestAdapter, TestCase):
-    def setUp(self):
-        self.mapping = BzrSvnMappingv2()
-
 
 def sha1(text):
     return sha.new(text).hexdigest()
 
 
-class Mappingv4TestAdapter(MappingTestAdapter, TestCase):
-    def setUp(self):
-        self.mapping = BzrSvnMappingv4()
-
-
 class ParseRevisionIdTests(object):
-    def test_current(self):
+
+    def test_v4(self):
+        self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv4()), 
+                parse_revision_id("svn-v3:uuid:trunk:1"))
+
+    def test_v3(self):
         self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv3FileProps(TrunkBranchingScheme())), 
                 parse_revision_id("svn-v3-trunk0:uuid:trunk:1"))
 
-    def test_current_undefined(self):
+    def test_v3_undefined(self):
         self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv3FileProps(TrunkBranchingScheme())), 
                 parse_revision_id("svn-v3-undefined:uuid:trunk:1"))
 
-    def test_legacy2(self):
+    def test_v2(self):
         self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv2()), 
                          parse_revision_id("svn-v2:1 at uuid-trunk"))
 
-    def test_legacy(self):
+    def test_v1(self):
         self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv1()), 
                          parse_revision_id("svn-v1:1 at uuid-trunk"))
 




More information about the bazaar-commits mailing list