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